实验四异方差性的检验与处理
- 格式:docx
- 大小:46.65 KB
- 文档页数:14
实验四异方差性的检验及处理(2学时)一、实验目的
(1)、掌握异方差检验的基本方法;
(2)、掌握异方差的处理方法。
二、实验学时:2学时
三、实验要求
(1)掌握用MATLAB软件实现异方差的检验和处理;
(2)掌握异方差的检验和处理的基本步骤。
四、实验原理
1、异方差检验的常用方法
(1) 用X-Y的散点图进行判断
(2).
22ˆ
(,)(,)
e x e y
%%
或的图形,),x)
i i
y
%%
i i
((e或(e的图形)
(3) 等级相关系数法(又称Spearman检验)
是一种应用较广的方法,既可以用于大样本,也可与小样本。
检验的三个步骤
①
ˆ
t t
y y
=-%
i
e
②|i x %%i i 将e 取绝对值,并把|e 和按递增或递减次序排序,
计算Spearman 系数rs ,其中:21n i i d =∑s 26r =1-n(n -1)
③ 做等级相关系数的显着性检验。n>8时,
/2(2),t t n α>-反之,若||i i e x %说明与之间存在系统关系,异方差问题存在。
(4) 帕克(Park)检验
帕克检验常用的函数形式:
若?在统计上是显着的,表明存在异方差性。
2、异方差性的处理方法: 加权最小二乘法
如果在检验过程中已经知道:222()()()i i i ji u Var u E u f x σσ===
则将原模型变形为:
121i i p pi i y x x u βββ=+⋅+⋅+L 在
该模型中: 即满足同方差性。于是可以用OLS 估计其参数,得到关于参数
12,,,p βββL 的无偏、有
效估计量。
五、实验举例
例1、某地区居民的可支配收入x(千元)与居民消费支出y(千元)的数据如下:
01i i i y x u ββ=++若用线性模型,研究不同收入家庭的消费情况,试问原数据有无异方差性?如果存在异方差性,应如何处理?
解:(一)编写程序如下:
(1)等级相关系数法(详见test4_1.m 文件)
%%%%%%%%%%%%%%% 用等级相关系数法来检验异方差性 %%%%%%%%
[data,head]=xlsread('test4.xlsx');
x=data(:,1); %提取第一列数据,即可支配收入x
y=data(:,2); %提取第二列数据,即居民消费支出y
plot(x,y,'k.'); % 画x和y的散点图
xlabel('可支配收入x(千元)') % 对x轴加标签
ylabel('居民消费支出y(千元)') % 对y轴加标签
%%%%%%%% 调用regres函数进行一元线性回归 %%%%%%%%%%%%
xdata=[ones(size(x,1),1),x]; %在x矩阵最左边加一列1,为线性回归做准备
[b,bint,r,rint,s]=regress(y,xdata);
yhat=xdata*b; %计算估计值y
% 定义元胞数组,以元胞数组形式显示系数的估计值和估计值的95%置信区间
head1={'系数的估计值','估计值的95%置信下限','估计值的95%置信上限'};
[head1;num2cell([b,bint])]
% 定义元胞数组,以元胞数组形式显示y的真实值,y的估计值,残差和残差的95%置信区间head2={'y的真实值','y的估计值','残差','残差的95%置信下限','残差的95%置信上限'};
[head2;num2cell([y,yhat,r,rint])]
% 定义元胞数组,以元胞数组形式显示判定系数,F统计量的观测值,检验的P值和误差方差的估计值
head3={'判定系数','F统计量的观测值','检验的P值','误差方差的估计值'}; [head3;num2cell(s)]
%%%%%%%%%%%%% 残差分析 %%%%%%%%%%%%%%%%%%
figure;
rcoplot(r,rint) % 按顺序画出各组观测值对应的残差和残差的置信区间%%% 画估计值yhat与残差r的散点图
figure;
plot(yhat,r,'k.') % 画散点图
xlabel('估计值yhat') % 对x轴加标签
ylabel('残差r') % 对y轴加标签
%%%%%%%%%%%% 调用corr函数计算皮尔曼等级相关系数
res=abs(r); % 对残差r取绝对值
[rs,p]=corr(x,res,'type','spearman')
disp('其中rs为皮尔曼等级相关系数,p为p值');
(2)帕克(park)检验法(详见test4_2.m文件)%%%%%%%%%%%%%%% 用帕克(park)检验法来检验异方差性 %%%%%%%
[data,head]=xlsread('test4.xlsx'); %导入数据
x=data(:,1);
y=data(:,2);
%%%%%% 调用regstats函数进行一元线性回归,linear表带有常数项的线性模型,r表残差ST=regstats(y,x,'linear',{'yhat','r','standres'});
scatter(x,(ST.r).^2) % 画x与残差平方的散点图
xlabel('可支配收入(x)') % 对x轴加标签
ylabel('残差的平方') %对y轴加标签
%%%%%%% 对原数据x和残差平方r^2取对数,并对log(x)和log(r^2)进行一元线性回归ST1=regstats(log((ST.r).^2),log(x),'linear',{'r','beta','tstat','fstat'})
ST1.tstat.beta % 输出参数的估计值
ST1.tstat.pval % 输出回归系数t检验的P值
ST1.fstat.pval % 输出回归模型显着性检验的P值
(3)加权最小二乘法(详见test4_3.m文件)
%%%%%%%%%%% 调用robustfit函数作稳健回归 %%%%%%%%%%%%
[data,head]=xlsread('test4.xlsx'); % 导入数据