CoVaR计算手册-动态CoVaR模型-数据、代码、步骤

1、数据来源:自主整理

2、时间跨度:无

3、区域范围:无

4、指标说明:

里面包含了数据、代码、步骤,可以方便的利用这个手册解决大部分利用分位数回归计算(时变)动态CoVaR的论文的模型实现问题。即从数据下载到模型实现一整条操作步骤

5、文件说明:

① dynamiccovar.xlsx为可实验的原始数据。其相关变量名解释可在手册上了解

② dynamiccovar.wfl已经导入了数据,可以直接打开并在里面运行代码文件dynamiccovar.prg测试结果。

③ 打开dynamiccovar.wfl时注意更换工作路径

包含案例:

以研究商业银行系统新风险以及溢出效应为目标,以我国16个主要上市银行和申万银行指数作为样本,运用分位数回归,引入状态变量,构建商业银行与系统间的动态CoVaR模型。

相关研究:

[1]刘改芳, 杨威. 基于DEA的文化旅游业投资效率模型及实证分析[J]. 旅游学刊, 2013, 28(001):77-84.

[2]李春好. 先进制造技术选择的多目标广义投资效率模型[J]. 中国软科学, 2002, 000(008):73-76.

[3]沈磊, 刘园丽. 融资约束、企业异质性与我国A上市公司投资效率——基于异质性随机边界投资模型[J]. 世界经济情况, 2014.

[4]王坚强, 阳建军. 基于DEA模型的企业投资效率评价[J]. 科研管理, 2010, 031(004):73-80.

下载链接基于分位数回归的动态CoVaR计算操作手册.zip-数据集文档类资源-CSDN下载

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
March-Copula-CoVaR 模型是一个基于 Copula 函数的风险测度模型,适用于金融领域的风险分析和预测。以下是 Python 实现的代码示例: 首先需要安装相关依赖: ```python !pip install numpy !pip install scipy !pip install pandas !pip install matplotlib !pip install seaborn !pip install statsmodels ``` 接下来是代码实现: ```python import numpy as np import pandas as pd from scipy.stats import norm from scipy.optimize import minimize import statsmodels.api as sm def march_copula_covar(data, alpha=0.05, window=250, method='MLE'): """ 计算 March-Copula-CoVaR :param data: pd.DataFrame, 包含各资产收益率的数据 :param alpha: float, 置信水平 :param window: int, 窗口长度 :param method: str, 优化方法,可选 'MLE' 或 'CML' :return: pd.Series,各资产的 CoVaR 值 """ # 计算对数收益率 log_returns = np.log(data / data.shift(1)).dropna() # 计算协方差矩阵和相关系数矩阵 cov_matrix = log_returns.rolling(window=window).cov().dropna() corr_matrix = log_returns.rolling(window=window).corr().dropna() # 计算 VaR variances = [] for i in range(len(log_returns.columns)): log_returns_ = log_returns.iloc[:, i] variances.append(np.var(log_returns_)) variances = np.array(variances) variances /= np.sum(variances) variances = pd.Series(variances, index=log_returns.columns) var = norm.ppf(alpha) * np.sqrt(np.dot(variances, np.dot(cov_matrix, variances))) # 计算 CoVaR def obj_fun(weights): return -1 * np.dot(weights, log_returns.tail(1)) if method == 'MLE': # 极大似然估计 def log_likelihood(theta): u = norm.cdf(np.dot(log_returns.tail(1), theta)) copula_density = np.prod(np.power(u, theta) / np.power(u, theta - 1)) return np.log(copula_density) def obj_fun(weights): return -1 * log_likelihood(weights) res = minimize(obj_fun, [1.0] * len(log_returns.columns), method='Nelder-Mead') theta = res.x else: # 伪最小二乘估计 model = sm.OLS(log_returns.tail(1), sm.add_constant(log_returns[:-1])) res = model.fit() theta = res.params[1:] u = norm.cdf(np.dot(log_returns.tail(1), theta)) d_u = norm.pdf(norm.ppf(alpha)) / alpha covar = [] for i in range(len(log_returns.columns)): log_returns_ = log_returns.iloc[:, i] rho = corr_matrix.iloc[i].loc[log_returns.columns != log_returns.columns[i]].values w = np.dot(np.linalg.inv(cov_matrix.iloc[i].values[np.newaxis]), rho) w /= np.sum(w) covar_i = np.dot(w, log_returns.tail(1).iloc[0, log_returns.columns != log_returns.columns[i]]) covar.append(covar_i) covar = np.array(covar) covar /= np.sum(covar) covar = pd.Series(covar, index=log_returns.columns) covar *= d_u * var / np.sqrt(np.dot(covar, np.dot(cov_matrix, covar))) return covar ``` 该函数输入一个包含各资产收益率的数据框 `data`,并返回一个 `pd.Series` 类型的结果,包含各资产的 CoVaR 值。其中,`alpha` 参数表示置信水平,默认为 0.05;`window` 参数表示窗口长度,默认为 250;`method` 参数表示优化方法,可选 'MLE' 或 'CML',默认为 'MLE'。 使用示例: ```python # 读取数据 data = pd.read_csv('data.csv', index_col=0) data.index = pd.to_datetime(data.index) # 计算 CoVaR covar = march_copula_covar(data) print(covar) ``` 以上代码仅作为示例供参考,实际应用中需要根据数据情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成长之路514

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值