(转)我自己安装的SPSS不能给出岭回归的显著性检验,也不知道是什么原因。代06级统计学专业的实用回归分析时就遇到了这个问题。SPSS的教程关于这个部分并未作详细描述,在网上搜索也没找到解决方案。所以当时就把这个问题忽略了。今年又代07级统计学,再次遭遇这个问题,经过多方尝试与摸索,终于找到一个简单可行的解决方案!先说发现这个方法的过程。
最开始想的是通过syntax窗口编程,在原有岭回归语句上添加上给出显著性检验的语句。对SPSS程序语法不是太熟,但是SPSS有个特点是,对于窗口化操作的命令,最后不选“OK”而选“Paste”的话,就能够进入syntax窗口,看到具体的程序。基于这点,可以仿造相应程序编一个显著性检验的语句。但是,这个想法失败了。
看来要对岭回归的程序包添加相应语句才行。打开Ridge regression.sps,里面是密密麻麻关于岭回归的程序。还好,每个主要步骤都作了说明。查找一下,找到了岭回归系数估计的部分,果然没有显著性检验的语句。
还好,通过原有语句不难得到检验统计量的值。但是仅仅给出这个值,对于做检验而言,很不方便。跟一般回归一样,要给出显著性P值才好。这个关系不难根据P值意义得到,关键是相应的程序语句怎么写。对照系数估计上面方差分析的部分(方差分析部分给出了F检验显著性P值),尝试着写程序,终于成功!保存之后,再做岭回归就能给出显著性检验的P值了!
没用过别的SPSS版本,有的版本好像没这个问题。提出这个方法,希望可以帮到有同样问题的人。
附:在Ridge regression.sps中添加的语句(红色倾斜的部分,就是添加的语句,当然,为了给出相应结果,原有语句作了少许改动。)
*---------------------------------------------------------------------------.
* Calculate raw coefficients from standardized ones, compute standard errors
* of coefficients, and an intercept term with standard error. Then print
* out similar to REGRESSION output.
*---------------------------------------------------------------------------(从这里开始是给出系数估计)
. compute beta={b;0}.
. compute b= ( b &/ std ) * sy.
. compute intercpt=ybar-t(b)*t(xmean).
. compute b={b;intercpt}.
. compute xpx=(sse/(sst*(n-nv-1)))*inv(xpx+(k &* ident(nv,nv)))*xpx*
inv(xpx+(k &* ident(nv,nv))).
. compute xpx=(sy*sy)*(mdiag(1 &/ std)*xpx*mdiag(1 &/ std)).
. compute seb=sqrt(diag(xpx)).
. compute seb0=sqrt( (sse)/(n*(n-nv-1)) + xmean*xpx*t(xmean)).
. compute seb={seb;seb0}.
. compute rnms={varname,'Constant'}.
. compute ratio=b &/ seb.
. compute ppp=2*(1-tcdf(abs(ratio),n-nv-1)).
. compute bvec={b,seb,beta,ratio,ppp}.
. print bvec/title='--------------Variables in the Equation----------------'
/rnames=rnms /clabels='B' 'SE(B)' 'Beta' 'T' 'sig'.
. print /space=newpage.
end if.
http://spirit7744.blog.163.com/b ... 961201004114319340/