时间序列数据的正态性检验

正态分布

请添加图片描述
y1中100是μ,5是σ而不是平方
请添加图片描述
请添加图片描述
请添加图片描述

Matlab中legend的用法总结https://blog.csdn.net/qq_37692302/article/details/92845567

柯尔莫可洛夫-斯米洛夫检验

Kolmogorov-Smirnov检验原理

	通过样本的经验分布函数与给定分布函数的比较,推断该样本是否来自给定分布函数的总体。

容量n的样本的经验分布函数记为Fn(x),可由样本中小于X的数据所占的比例得到,给定分布函数记为G(x),构造的统计量为,即两个分布函数之差的最大值.

对假设H0:总体服从给定的分布G(x),根据Dn的极限分布确定统计量关于是否接受H0的数量界限。

原假设H0:数据服从正态分布N(mu,sigma),其中mu用样本均值代替,sigma用数据的样本修正标准差代替。

将数据从小到大排列,在原假设的条件下计算每一个数据的分布函数P1.

计算每一个数据的累计频率P2进行比较,如果两者之间没有显著性差异,就认为H0成立。

这种思想就是该检验的原理,它不仅可以检验正态分布,也可以检验其他分布。

注意:matlab中是sigma不是其平方

工具箱介绍

H=kstest(X,cdf,alpha)
%alpha为指定测试水平
H=kstest(X,cdf,alpha,tail)
%tail = 0为双侧检验,tail=1是单侧(<)检验,tail=-1是单侧(>)检验
[H,P,KS,CV]=kstest(X,cdf,alpha)
%cdf就是分布函数,P为原假设成立的概率,KS为测试统计量的值,CV为是否接受假设的临界值

cdf分布函数值
alpha显著性水平
H判断的结果
当H为0是表面接受原假设,当H为1时就拒绝原假设。
请添加图片描述
matlab也可以进行其他分布的检验。只需要把其他分布的分布函数求出来就可以了。其他分布的分布函数MATLAB代码如下:

二项分布 
binopdf(x,n,p), binocdf(x,n,p), binoinv(x,n,p)这里的P*指概率
泊松分布 
poisspdf(x,lamda),poiss(x,lamda),poissinv(x,lamda)
指数分布
exppdf(x,lamda),expcdf(x,lamda),expinv(x,lamda)
均匀分布
unifpdf(x,a,b), unifcdf(x,a,b) 
t分布
tpdf(x,n),tcdf(x,n) ,tinv(p,n)
卡方分布
chi2pdf(x,n),chi2cdf(x,n),chi2inv(p,n)
F分布
fpdf(x,m,n),fcdf(x,m,n),finv(p,m,n)

请添加图片描述
请添加图片描述
随机优化,假定分布,可以用这个去检验,总可以找到适合的分布
请添加图片描述

x=[ 97 130 156.6 135.2 137.7 180.5 205.2 190 188.6 196.7 180.3 210.8 196 223 238.2 263.5 292.6 317 335.4 327 321.9 353.5 397.8 436.8 465.7 476.7 462.6 460.8 501.8 501.5 489.5 542.3 512.2 559.8 542 567];
x=x';
alpha=0.05;
[mu,sigma]=normfit(x);%获取分布的参数
p1=normcdf(x,mu,sigma);%计算分布函数
plot(x,p1)
[muhat,sigmahat,muci,sigmaci]=normfit(x)

[h0,s1,ks,cv]=kstest(x,[x,p1],alpha)

请添加图片描述
请添加图片描述
muci和sigmaci是95%的置信上限和下限。
mu得到的是327.5861,muci是95%的把握,mu在276.9890~378.1832之间。点估计和区间估计都得到了。

指数估计是

[muhat,muci]=expfit(X)

便于进行参数范围的检验

Lilliefors检验

它将Kolmogorov-Smirnov检验改进,用于一般的正态性检验,即H0:总体服从正态分布,其中mu和sigma分别有样品均值和方差估计。服从正态分布更加严格了MATLAB命令为:

[h,p,lstat,cv]=lillietest(x,alpha)

请添加图片描述
有一些边缘上的,用KS检验或许就通过了,但lilliefors可能就无法通过。

雅各-贝拉检验

利用正态分布的偏度g1和峰度g2,构造一个包含g1、g2的分布统计量(自由度n=2),对于显著性水平,当分布统计量小于分布的分位数时,接受H0;总体服从正态分布;否则拒绝H0,即总体不服从正态分布。

这个检验适用于大样本,当样本容量n较小时慎用

Matlab命令:

h=jbtest(x)
[h,p,jbstat,cv] = jbtest(x,alpha)

安得森-达令检验

h=adtest(x)%x为向量数据。
h=1则说明数据不服从正态分布,h=0则服从。
默认显著性水平为0.05

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在R中,可以使用rugarch包中的函数进行GARCH模型的残差序列的诊断检验。其中,常用的检验方法包括LM检验、ARCH效应检验和残差序列的正态性检验等。可以使用函数ugarchfit中的参数fit.control中的diagnostics参数来进行。 下面是一个示例代码,演示如何进行GARCH模型的残差序列的诊断检验: ``` library(rugarch) # 生成模拟数据 set.seed(123) n <- 200 eps <- rnorm(n) y <- rep(NA, n) y[1] <- eps[1] for (i in 2:n) { y[i] <- 0.5 * y[i-1] + eps[i] } # 拟合GARCH模型 fit <- ugarchfit(data = y, spec = ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,1)))) # 进行LM检验 fit@fit$lmtest # 进行ARCH效应检验 fit@fit$archtest # 进行正态性检验 jarque.bera.test(fit@residuals) ``` 在这个示例代码中,我们首先使用rnorm函数生成一个长度为200的标准正态分布随机数向量eps,然后通过AR(1)模型生成一个长度为200的时间序列y。接着,我们使用ugarchfit函数拟合一个GARCH(1,1)模型,将其结果保存在fit对象中。在拟合模型时,我们使用fit.control参数中的diagnostics参数进行LM检验、ARCH效应检验和残差序列的正态性检验。最后,我们分别使用fit@fit$lmtest、fit@fit$archtest和jarque.bera.test函数进行LM检验、ARCH效应检验和残差序列的正态性检验。其中,fit@fit$lmtest和fit@fit$archtest分别表示LM检验和ARCH效应检验的检验结果,jarque.bera.test函数可以进行残差序列的正态性检验

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值