FRM的Python应用
文章平均质量分 94
金融风险管理中各种金融产品、模型和风险分析方法等的python应用
小粉桥反手王
这个作者很懒,什么都没留下…
展开
-
(六十七)神经网络——MLP
MLP模型使用sklearn.neural_network.MLPClassifier来实现。模型的复杂程度调节,可以通过修改隐藏层上的节点数、隐藏层的层数、activation的方式和alpha值来完成。原创 2021-01-04 23:43:06 · 52542 阅读 · 1 评论 -
(六十六)支持向量机
SVM可分为SVC和SVR,建模重点是核函数的选择(首选RBF)、核函数参数和正则化参数C的选择,RBF内核的gamma和C一起控制模型的复杂度,数值越大模型越复杂。数据标准化可以提升高斯核SVM的表现。原创 2020-12-29 18:14:39 · 1318 阅读 · 0 评论 -
(六十五)基于决策树的信用评级
度量决策树结点的"纯度"指标有信息增益、增益率和基尼系数;连续属性划分思路是二分法;决策树分类使用sklearn.tree.DecisionTreeClassifier;graphviz库对决策树可视化;GridSearchCV搜索模型的最优超参数。原创 2020-12-28 11:32:38 · 2383 阅读 · 2 评论 -
(六十四)朴素贝叶斯算法
贝努利朴素贝叶斯适合于二项式分布的数据集,高斯朴素贝叶斯适用于任何连续数值型的数据集,多项式朴素贝叶斯适合非负、离散数值的数据集。使用的类为sklearn.naive_bayes.BernoulliNB,GaussianNB,MultinomialNB。原创 2020-12-24 13:56:23 · 1532 阅读 · 1 评论 -
(六十三)KNN算法
KNN算法的思路是新数据点离谁最近,就和谁属于同一类。可使用KNeighborsClassifier和KNeighborsRegressor进行分类和回归,增大n_neighbors参数可以提高模型得分。原创 2020-12-23 13:54:47 · 435 阅读 · 0 评论 -
(六十二)基于logistic回归的信用评级和分类模型评估
本文基于汽车贷款案例介绍了逻辑回归的原理和常用的两个函数LogisticRegression和LogisticRegressionCV,以及分类模型通用的评估方法(查准率、查全率、F1值、ROC和AUC等)。原创 2020-12-21 14:16:56 · 4225 阅读 · 2 评论 -
(六十一)线性模型:线性回归、岭回归和套索回归
线性回归难以控制模型的复杂度;如果特征过多且只有一小部分是重要的,那么套索回归更好,alpha降低,欠拟合降低;如果特征不多且每一个都有重要作用,那么就应该使用岭回归,alpha增加,过拟合降低。原创 2020-12-18 23:41:37 · 3343 阅读 · 0 评论 -
(五十一)时间序列分析二:平稳时间序列分析(ARMA)
本文介绍了给平稳时间序列建立ARMA模型的过程。步骤为平稳性检验→模型定阶→ARMA建模→模型预测→残差白噪声检验,用到的方法主要为statsmodels.api中的各种模块与函数。原创 2020-06-27 19:20:31 · 20466 阅读 · 2 评论 -
(五十)时间序列分析一:效应分解法
本文介绍了时间序列的效应分解方法,主要是对趋势和周期进行建模并预测。用到的库为fbprophet,其只能处理加法效应,如果出现季节效应随着趋势增加(乘法效应),就需要对数据取对数处理再建模。原创 2020-06-27 12:35:19 · 2264 阅读 · 0 评论 -
(五十七)方差分析与相关分析
单因素方差分析适用于连续变量与一个多分类变量,主要用到的函数为stats.f_oneway();多因素方差分析可以检验多个分类变量与一个连续变量的关系,函数为sm.stats.anova_lm(smf.ols().fit());相关分析可用相关系数corr和散点矩阵图sns.pairplot()。原创 2020-06-20 12:15:19 · 8027 阅读 · 0 评论 -
(五十六)假设检验(t检验、卡方检验)
对总体均值的单样本t检验用到的函数为sm.stats.DescrStatsW(列).ttest_mean();双样本t检验用于检验两个样本均值的差异是否显著,使用stats.levene()函数和stats.stats.ttest_ind()函数;两个分类变量之间的相关关系可用列联表和卡方检验,函数为pd.crosstab和stats.chi2_contingency()。原创 2020-06-19 22:54:47 · 8875 阅读 · 1 评论 -
(五十五)数据查询、整合、清理进阶与数据探索
本文介绍了pandas库下的数据查询、整合与清理进阶方法(按条件读取文件,用between、isin和str.contains条件查询和条件赋值方法)、异常值处理的盖帽法和分箱法以及toad.detector.detect函数探索数据。原创 2020-06-09 22:48:05 · 529 阅读 · 0 评论 -
(五十四)Merton模型与KMV模型预测违约概率
Merton模型将违约概率与期权定价公式结合,PD=N(-d2);KMV模型在Merton模型的基础上提出了违约距离dd的概念,并且将债务价值改进为违约实施点,期望违约概率EDF=N(-dd),dd是一个很好的相对指标。原创 2020-05-07 16:15:29 · 48189 阅读 · 11 评论 -
(四十二)利率互换与货币互换的定价
利率互换的价值为固定利率债券与浮动利率债券价值之差,注意支付日要找准;求互换的固定利率时要根据利率的期限结构求出远期利率,令互换价值为零求解;货币互换的价值也是根据本国和外国的债券价值之差来确定。原创 2020-04-21 17:54:47 · 13209 阅读 · 2 评论 -
(一)Python基础知识复习
1、字符串的截取与替换;2、列表的添加、修改、删除、排序和计数;3、集合的添加和删除;4、字典的添加、修改、访问和删除;5、金融领域常用内置函数;6、自定义函数;7、循环控制语句复习;8、math模块;9、try…except…结构。原创 2020-01-03 22:57:33 · 1230 阅读 · 1 评论 -
(二)NumPy的N维数组与数组的索引、切片和排序
1、数组的结构(创建、维度转换等);2、数组的生成(整数、等差数列、全0/1、单位矩阵);3、数组的索引(简单索引与条件索引)、切片与排序。原创 2020-01-03 22:57:22 · 743 阅读 · 0 评论 -
(三)NumPy数组的运算
1、数组内的运算(求和、求积、描述性指标、开平方、求幂与对数);2、数组间的运算(基本运算符、取最大生成新数组);3、矩阵(相关系数、转置、内积、linalg)。原创 2020-01-04 12:17:50 · 472 阅读 · 0 评论 -
(四)用random模块生成各种分布的随机数
random模块中金融领域常用分布函数(β分布、卡方分布、F分布、对数正态分布、正态分布与标准正态分布、t分布、均匀分布)。原创 2020-01-04 18:25:05 · 3842 阅读 · 0 评论 -
(五)Pandas的数据结构及可视化
1、序列(Series)的生成(array、字典);2、数据框(DataFrame)的建立和导出、外部数据导入生成数据框、数据框的可视化“x.plot()”。原创 2020-01-04 23:46:59 · 774 阅读 · 0 评论 -
(六)DataFrame的操作
1、基本性质(描述、索引名、列名);2、索引与切片(loc与iloc、条件筛选);3、排序(sort_index、sort_values);4、修改和删除(改列名,删除列或行);5、缺失值和重复值(isnull、dropna、fillna、duplicated、drop_duplicates);6、数据框的合并(concat、merge、join);7、reduce函数。原创 2020-01-07 17:29:22 · 1353 阅读 · 0 评论 -
(七)Pandas的统计函数
1、静态统计函数(如df.pct_change()、df.corr()等);2、动态统计函数(移动平均、移动波动率、移动相关系数,用rolling函数)。原创 2020-01-08 21:46:44 · 918 阅读 · 0 评论 -
(八)用Matplotlib画曲线图
1、准备工作(过滤警告、显示中文、引入pyplot模块);2、绘制单个曲线图(plot函数、添加注释);3、绘制多个曲线图(增加subplot函数)。原创 2020-01-17 19:30:47 · 1790 阅读 · 0 评论 -
(九)用Matplotlib画直方图和条形图
1、根据不同分布的随机数绘制直方图(hist函数);2、同一坐标系下比较不同分布的直方图(基于array数组);3、垂直条形图(bar函数)。原创 2020-01-17 22:38:19 · 470 阅读 · 1 评论 -
(十)用Matplotlib画散点图、饼图及绘图函数总结
1、散点图(scatter函数);2、饼图(pie函数);3、pyplot绘图函数总结(五种图及其附属函数)。原创 2020-01-18 16:44:12 · 554 阅读 · 0 评论 -
(十一)用SciPy模块求积分、插值与解方程组
1、integrate子模块求积分(quad);2、interpolate子模块插值运算(interp1d);3、求解方程组(linalg.solve、optimize.fsolve)。原创 2020-01-19 19:45:00 · 1108 阅读 · 0 评论 -
(十二)用SciPy模块求解最优化问题
运用子模块optimize中的minimize函数求解最优化,给出两个示例:1、多参数最优化求极值问题;2、最大化投资组合收益率求每个资产配置权重的问题。原创 2020-01-20 16:22:26 · 3643 阅读 · 0 评论 -
(十三)用SciPy模块进行概率分析和正态性检验
使用scipy中的统计分析子模块stats分析描述性统计函数describe、概率分析函数(rvs、pdf、cdf、ppf)以及分布函数(主要是正态性)检验(normaltest、shapiro、anderson、kstest)。原创 2020-01-21 12:45:06 · 1906 阅读 · 0 评论 -
(十四)用StatsModels模块建立线性回归模型
使用StatsModels中的api子模块建立OLS模型,以螺纹钢期货和现货收益率数据为例。主要函数是api.OLS(y,x).fit(),可视化时取参数用x.params[i]函数。原创 2020-01-22 13:39:29 · 1871 阅读 · 0 评论 -
(十五)从外部网站导入金融数据
导入金融数据的方法有:1、使用quandl包,格式为quandl.get();2、使用pandas_datareader.data里的DataReader函数,格式为DataReader(name,data_source,start,end);3、Tushare包,完全免费数据丰富;4、其他方法如baostock、akshare等。原创 2020-01-23 15:08:12 · 2589 阅读 · 1 评论 -
(十六)股票数据的正态性检验、QQ图的绘制
本文介绍了股票收益率数据的生成以及正态性检验,通过QQ图来验证,主要使用的函数有:stats.norm.ppf()生成分位点,plt.scatter()画样本数据分位点图,stats.probplot(x,dist='norm',plot=plt)画QQ图。原创 2020-01-23 23:09:11 · 4762 阅读 · 0 评论 -
(十七)权益证券估值模型:股息/现金流折现法、市盈率法
普通股的估值方法主要有:1、股息/现金流折现模型(统称为现值法,有零增长模型、稳定增长模型、多阶段增长模型和现金流定价模型);2、市盈率法。原创 2020-01-27 18:27:54 · 5821 阅读 · 0 评论 -
(十八)利率的度量
利率的python应用:1、单利或复利计息的终值和现值;2、复利频次与多期复利终值、现值(年实际利率与每年复利n次的名义利率之间的换算);3、连续复利以及其与一般复利的关系。原创 2020-01-28 12:57:07 · 1128 阅读 · 0 评论 -
(十九)债券定价与债券收益率的计算
债券的定价和YTM的计算:1、基于单一贴现率和不同贴现率下求债券价格(后者要先用scipy.optimize中的fsolve函数算零息利率,缺少的插值,定价多一个append函数);2、YTM的计算,fsolve函数。原创 2020-01-29 19:05:26 · 10743 阅读 · 1 评论 -
(二十)久期与凸性
1、久期:麦考利久期、修正久期、美元久期和有效久期的计算;2、凸性的计算以及久期、凸性和债券价格波动关系;注意付息频率的影响和单位换算。原创 2020-01-30 20:40:49 · 12491 阅读 · 1 评论 -
(二十一)资产(组合)的预期收益率和风险
资产组合的收益率:对各资产收益率加权平均;资产组合的方差需要知道协方差矩阵v和权重矩阵x,根据x.T*v*x来算。注意列的命名格式、收益率序列的生成方法和数据的年化处理。原创 2020-01-31 14:32:09 · 7241 阅读 · 0 评论 -
(二十二)资产组合的有效边界、CML与最优配置
本文介绍了投资组合理论的可行集、有效边界和资本市场线的绘制,以及根据效用函数求解最优资产配置,主要使用scipy.optimize中的minimize函数,以及绘图函数。搞清楚求最值的函数、约束条件以及各变量之间的关系是关键。原创 2020-02-01 17:53:56 · 18157 阅读 · 5 评论 -
(二十三)用几何布朗运动模拟股价走势
几何布朗运动认为股价的变化可分为非随机部分和随机部分。python应用时先根据历史数据计算年收益率和收益率的年波动率,然后在n次for循环中代入GBM公式进行模拟。注意pandas的DatetimeIndex函数的使用。原创 2020-02-02 19:59:08 · 14487 阅读 · 9 评论 -
(二十四)资本资产定价模型
介绍了系统性风险与非系统性风险,演示了分散化对降低非系统性风险的好处;CAPM表达式的简单应用与SML的绘制;CAPM的实证检验(估计β)。注意多个矩阵的乘法以及statsmodels.api模块的使用。原创 2020-02-03 18:11:41 · 2235 阅读 · 0 评论 -
(二十五)套利定价理论(APT)
套利定价理论的介绍——单因素模型和多因素模型,并通过一个例子来分析套利机会,构建套利组合。本节引入了scipy.optimize的linprog函数来求解线性规划问题,适用于线性方程的最优化求解。原创 2020-02-05 20:01:54 · 6500 阅读 · 3 评论 -
(二十六)Fama-French三因素模型及应用
建立Fama-French三因素模型的思路是根据某区间所有股票数据分为6组,然后加权平均求得SMB和HML,最后挑选合适的市场指数计算Rf,与研究对象的Ri一起回归即可。注意df.query()、df.map()、df.apply()函数的使用。原创 2020-02-06 23:09:37 · 12204 阅读 · 0 评论