正态分布检验-NormalTest m sci代码

// .m  .sci 文件 代码

 

function [Res,u1,u2]=NormalTest(x,alpha)

//u1=g1/sig1    ~ N(0,1)   偏度

//u2=(g2-mu2)/sig2 ~ N(0,1) 峰度

//N>=100.  当N<100时检验准确性较低

Mean=0;
Std=1;
Q=(1-alpha)/4;
P=1-Q;

uu=cdfnor("X",Mean,Std,P,Q);

N=length(x);
sig1=sqrt(6*(N-2)/(N+1)/(N+3));
sig2=sqrt(4*N*(N-3)/(N+1)/(N+5))*sig1;
mu1=0;
mu2=3-6/(N+1);
A1=sum(x)/N;
A2=sum(x.*x)/N;

A3=sum(x.*x.*x)/N;
A4=sum(x.*x.*x.*x)/N;

B2=A2-A1*A1;
B3=A3-3*A2*A1+2*A1*A1*A1;
B4=A4-4*A3*A1+6*A2*A1*A1-3*A1*A1*A1*A1;
g1=B3/B2/sqrt(B2);
g2=B4/B2/B2;
u1=g1/sig1;
u2=(g2-mu2)/sig2;

b1=abs(u1)-uu;
b2=abs(u2)-uu;
c=[b1,b2];
if sum(c>0) then
Res=0;
else
Res=1;
end
endfunction

 

 

调用示例:

 

N=1000;

z=grand(1,N,"nor",0,1);

bRes=0;

alpha=0.1;
[bRes,u1,u2]=NormalTest(z,1-alpha);

 

bRes=1 是通过检验,数据正态分布,置信度1-alpha。

N<100时 检验准确性较低

 

转载于:https://www.cnblogs.com/JkReader/p/4356997.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值