一、实验数据
需要考察多个变量的边缘正态性
二、考察边缘正态性
1.原理
可以通过对每个变量的样本观测值的边缘分布作Q_Q图和计算相关系数 r_Q 来考察。
Matlab自带有作Q_Q图的函数qqplot() ,但是并没有计算相关系数 r_Q 的函数。参考实用多元统计分析的4.6节,用其中作Q_Q图的步骤和 r_Q 的公式自编Matlab程序进行求解,并且封装成函数。自编程序中用到了Matlab的norminv(probability,mean,standard_dev)函数,令mean = 0,standard_dev = 1 可以得到对应概率probability的标准正态分布的下侧分位数。
function[r]= Q_Q (x)
x1=sort(x); %对原矩阵每列进行升序排列
[n,m]=size(x1); %返回维数
p=ones(n,1)./n; %生成相同维数的1/n矩阵
for i=1:n %循环n个观测值
p(i,1)=(i-0.5)*p(i,1); %构造p(j)矩阵
end
q=ones(n,1);
for i=1:n %循环n个观测值
q(i,1)=norminv(p(i,1),0,1); %得到标准正态分位数
end
r=ones(1,m);
for i=1:m %循环m个变量,画m*2个Q-Q图
subplot(m,2,2*i-1); %用2*i-1(奇数)选中左边一竖列
plot(q,x1(:,i)); %用自己处理的数据画Q-Q图
subplot(m,2,2*i); %用2*i(偶数)选中右边一竖列
qqplot(x1(:,i)); %用matlab自带的qqplot命令画Q-Q图
r(:,i)=corr(q,x1(:,i)); %计算rQ相关系数
end
2.结果
右边一列是用Matlab自带的qqplot() 画的,左边是自编程序画的。右边还有拟合的直线,画的也更好看,但是我Matlab入门还不会做拟合。
相关系数 r
可以观察到,相关系数r 依次降低,Q_Q图越来越不趋近于直线。