当前位置:首页 > 经验 >

python寻找波峰波谷算法(python 自动找曲线规律)

来源:原点资讯(www.yd166.com)时间:2022-11-03 06:27:27作者:YD166手机阅读>>

其中,w是均值为0,方差为1的独立同分布时间序列,

python寻找波峰波谷算法,python 自动找曲线规律(5)

,且满足一定条件使得的无条件方差有限。ARCH(p)模型能够很好地刻画金融资产收益率序列的波动特性和厚尾现象,但是其本身并不能用来解释金融资产收益率为何有这样的特征。关于ARCH模型的估计此处不详细展开,感兴趣的可以参见Ruey S. Tray的《金融时间序列分析》和计量经济学教材。下面简要介绍ARCH模型的建模步骤:

(1)检验收益率序列是否平稳,根据自相关性建立合适的均值方程,如ARMA模型,描述收益率如何随时间变化,根据拟合的模型和实际值,得到残差序列。

(2)对拟合的均值方程得到的残差序列进行ARCH效应检验,即检验收益率围绕均值的偏差是否时大时小。检验序列是否具有ARCH效应的方法有两种:Ljung-Box检验和LM检验。

(3)若ARCH效应在统计上显著,则需要再设定一个波动率模型来刻画波动率的动态变化。

(4)对均值方差和波动率方差进行联合估计,即假设实际数据服从前面设定的均值方差和波动率方差后,对均值方差和波动率方差中的参数进行估计,并得到估计的误差。

(5)对拟合的模型进行检验。如果估计结果(残差项)不满足模型本身的假设,则模型的可用性较差。

下面使用Python模拟ARCH模型并对沪深300收益率的ARCH效应进行统计检验。

# 模拟ARCH时间序列 np.random.seed(2) a0 = 2 a1 = .5 y = w = np.random.normal(size=1000) Y = np.empty_like(y) for t in range(1,len(y)): Y[t] = w[t] * np.sqrt((a0 a1*y[t-1]**2)) ts_plot(Y, lags=30,title='模拟ARCH')

python寻找波峰波谷算法,python 自动找曲线规律(6)

def ret_plot(ts, title=''): ts1=ts**2 ts2=np.abs(ts) with plt.style.context('ggplot'): fig = plt.figure(figsize=(12, 6)) layout = (2, 1) ts1_ax = plt.subplot2grid(layout, (0, 0), colspan=2) ts2_ax = plt.subplot2grid(layout, (1, 0)) ts1.plot(ax=ts1_ax) ts1_ax.set_title(title '日收益率平方') ts2.plot(ax=ts2_ax) ts2_ax.set_title(title '日收益率绝对值') plt.tight_layout() return ret_plot(df.ret.dropna(), title='沪深300')

python寻找波峰波谷算法,python 自动找曲线规律(7)

从沪深300的日收益平方和绝对值走势图可以看出,存在较明显的波动聚集的现象,初步可以判断出沪深300日收益序列存在ARCH效应。下面使用Ljung-Box统计量对收益率平方的自相关性进行统计检验。计算Q统计量和LB统计量都是用python中statsmodels模块acorr_ljungbox方法. 默认情况下, acorr_ljungbox只计算LB统计量, 只有当参数boxpierce=True时, 才会输出Q统计量。由LB白噪声检验可以看出,Q统计量的p值都在0.05以下, 表明原假设成立的概率极小, 可以拒绝沪深300收益率的平方是白噪音序列的原假设,说明原序列(沪深300收益率)存在ARCH效应。

def whitenoise_test(ts): '''计算box pierce 和 box ljung统计量''' from statsmodels.stats.diagnostic import acorr_ljungbox q,p=acorr_ljungbox(ts) with plt.style.context('ggplot'): fig = plt.figure(figsize=(10, 4)) axes = fig.subplots(1,2) axes[0].plot(q, label='Q统计量') axes[0].set_ylabel('Q') axes[1].plot(p, label='p值') axes[1].set_ylabel('P') axes[0].legend() axes[1].legend() plt.tight_layout() return ret=df.ret.dropna() whitenoise_test(ret**2)

python寻找波峰波谷算法,python 自动找曲线规律(8)

栏目热文

python算法实例精讲(python编程100个经典算法)

python算法实例精讲(python编程100个经典算法)

前言:这篇文章主要介绍了Python集合常见运算,结合具体实例形式分析了Python使用集合生成随机数的几种常用算法的效...

2022-11-03 06:16:49查看全文 >>

python三种算法(python算法基本步骤)

python三种算法(python算法基本步骤)

1.KNN 分类算法由于knn算法涉及到距离的概念,KNN 算法需要先进行归一化处理1.1 归一化处理 scalerfr...

2022-11-03 06:34:30查看全文 >>

python必背100源代码(编程必背50个代码)

python必背100源代码(编程必背50个代码)

对于大部分Python学习者来说,核心知识基本已经掌握了,但"纸上得来终觉浅,绝知此事要躬行",要想完全...

2022-11-03 06:06:55查看全文 >>

python编写计算公式(python编辑计算公式)

python编写计算公式(python编辑计算公式)

《GitHub精选》是我们分享GitHub中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个可以生...

2022-11-03 06:11:05查看全文 >>

python算法的四个步骤(python入门学习算法)

python算法的四个步骤(python入门学习算法)

CDA数据分析师 出品相信大家在做一些算法经常会被庞大的数据量所造成的超多计算量需要的时间而折磨的痛苦不已,接下来我们围...

2022-11-03 06:31:09查看全文 >>

python算法详细图解(python三种算法)

python算法详细图解(python三种算法)

作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/本文版权归作者和博客园共有为啥会有上述...

2022-11-03 06:28:27查看全文 >>

python学习经典算法(python初学者必备十大算法)

python学习经典算法(python初学者必备十大算法)

一般应用分类分析用于提炼应用规则利用构建算法过程中的分类规则;以决策树为例:决策树分类节点表示局部最优化的显著特征值,每...

2022-11-03 06:41:03查看全文 >>

Python常用算法(python常见算法库)

Python常用算法(python常见算法库)

来源:博客园 链接:http://kb.cnblogs.com/page/210687/算法一:快速排序算法快速排序是由...

2022-11-03 06:15:01查看全文 >>

python算法大全(python必背100例)

python算法大全(python必背100例)

导读:本文是一些机器人算法(特别是自动导航算法)的Python代码合集。其主要特点有以下三点:选择了在实践中广泛应用的算...

2022-11-03 06:20:29查看全文 >>

python算法入门实例(python初学者必备十大算法)

python算法入门实例(python初学者必备十大算法)

1.猜数字 1到4能组成多少个互不相同且不重复数字的三位数?分别是?分析:可填在百位、十位、个位的数字都是1、2、3、4...

2022-11-03 06:09:52查看全文 >>

文档排行