资源简介
逐步回归的基本思想是将变量逐个引入模型,每引入一个解释变量后都要进行F检验,并对已经选入的解释变量逐个进行t检验,当原来引入的解释变量由于后面解释变量的引入变得不再显著时,则将其删除。以确保每次引入新的变量之前回归方程中只包含显著性变量。这是一个反复的过程,直到既没有显著的解释变量选入回归方程,也没有不显著的解释变量从回归方程中剔除为止。以保证最后所得到的解释变量集是最优的。本文件结合实例利用MATLAB实现逐步回归法
代码片段和文件信息
clear
clc
data=xlsread(‘week10_eg9_data‘);
[nm]=size(data);
y=data(:m);
z=(y.^0.07-1)/0.07;
X=cell(m-11);
for i=1:m-1
X{i}=data(:i);
end
aE=0.05;
aD=0.05;
%--------------------------------------------------------------------------
fprintf(‘Statistics for Entry:Step 1\n‘);
%--------------------------------------------------------------------------
p=2;
b_2=cell(41);
s_2=ones(41);
F=ones(41);
Prob=ones(41);
for j=1:m-1
x=[ones(n1)X{j}];
[b_2{j}bintrrintstats]=regress(zx0.05);
zHat=x*b_2{j};
aver_z=mean(z);
sigma_2=stats(4);
C=inv(x‘*x);
s_2(j)=sqrt(sigma_2*C(22));
F(j)=(b_2{j}(2)/s_2(j))^2;
Prob(j)=1-fcdf(F(j)1n-2);
end
fprintf(‘Variable|F |Prob>F \n‘);
V={‘ X1 ‘‘ X2 ‘‘ X3 ‘‘ X4 ‘};
for i=1:4
fprintf(‘%s|%-7.4f|%-10.4f‘V{i}F(i)Prob(i));
fprintf(‘\n‘);
end
f=1;
for k=1:3
if F(k+1)>F(f)&&Prob(k+1) f=k+1;
end
end
if Prob(f) u=1;
else
u=0;
end
if u==1
fprintf(‘添加X%d\n‘f);
else
fprintf(‘不添加\n‘);
end
%--------------------------------------------------------------------------
x=[ones(n1)X{f}];
[b_fbintrrintstats]=regress(zx0.05);
PE=b_f;
C=inv(x‘*x);
SE=ones(21);
F_f=ones(21);
Prob_f=ones(21);
sigma_2=stats(4);
for l=1:2
SE(l)=sqrt(sigma_2*C(ll));
F_f(l)=(b_f(l)/SE(l))^2;
Prob_f(l)=1-fcdf(F_f(l)1n-2);
end
fprintf(‘回归模型参数:\n‘)
fprintf(‘ Variable |Parameter Estimate |Standard Error |F |Prob>F \n‘);
fprintf(‘ INTERCEP |%-20.4f|%-16.4f|%-9.4f|%-7.4f\n‘b_f(1)SE(1)F_f(1)Prob_f(1));
fprintf(‘ X4 |%-20.4f|%-16.4f|%-9.4f|%-7.4f\n‘b_f(2)SE(2)F_f(2)Prob_f(2));
if Prob_f(2)>aD
fprintf(‘出错,aE应小于或等于aD‘);
end
%--------------------------------------------------------------------------
fprintf(‘Statistics for Entry:Step 2\n‘);
%--------------------------------------------------------------------------
p=3;
b_3=cell(31);
s_3=ones(31);
F=ones(31);
Prob=ones(31);
for j=1:m-2
x=[ones(n1)X{j}X{4}];
[b_3{j}bintrrintstats]=regress(zx0.05);
zHat=x*b_3{j};
aver_z=mean(z);
sigma_2=stats(4);
C=inv(x‘*x);
s_3(j)=sqrt(sigma_2*C(22));
F(j)=(b_3{j}(2)/s_3(j))^2;
Prob(j)=1-fcdf(F(j)1n-3);
end
fprintf(‘Variable|F |Prob>F \n‘);
V={‘ X1 ‘‘ X2 ‘‘ X3 ‘};
for i=1:3
fprintf(‘%s|%-7.4f|%-10.4f‘V{i}F(i)Prob(i));
fprintf(‘\n‘);
end
f=1;
for k=1:2
if F(k+1)>F(f)&&Prob(k+1) f=k+1;
end
end
if Prob(f) u=1;
else
u=0;
end
if u==1
fprintf(‘添加X%d\n‘f);
else
fprintf(‘不添加\n‘);
end
%--------------------------------------------------------------------------
x=[ones(n1)X{f}X{4}];
[b_fbintrrintstats]=regress(zx0.05);
PE=b_f;
C=inv(x‘*x);
SE=ones(31);
F_f=ones(31);
Prob_f=ones(31);
sigma_2=stats(4);
for l=1:3
SE(l)=sqrt(sigma_2*C(ll));
F_f(l)=(b_f(l)/SE(l))^
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10709 2017-11-07 11:49 week10_eg9_data.xlsx
文件 8466 2017-11-21 13:04 week11_eg10_1.m
- 上一篇:主动悬架系统模糊PID控制器的仿真英文
- 下一篇:熵权法求权重MATLAB源码
评论
共有 条评论