我自己安装的SPSS不能给出岭回归的显著性检验,也不知道是什么原因。 打开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.