全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SPSS论坛
8625 13
2014-02-24
试过spss19和20,前者勉强能用,只是t检验的P值算不出来,加上算法代码也不行;后者运行完全混乱。

卸载别的版本,又试spss16,岭回归基本实现。
可是忽然发现,调用的路径不对啊,如下:
INCLUDE 'C:\Program Files (x86)\IBM\SPSS\Statistics\19\Samples\English\ridge regression.sps'.
而且,找路径,发现spss16根本就没有ridge regression.sps  那岭回归怎么出来的??


               
运行输出如下:
…………………………
DATASET NAME DataSet1 WINDOW=FRONT.
INCLUDE 'C:\Program Files (x86)\IBM\SPSS\Statistics\19\Samples\English\ridge regression.sps'.
  15  0  preserve.
  16  0  set printback=off.
376  0  restore.
377  0  
379  0  * End of INSERT and INCLUDE nesting level 01.
ridgereg dep=lny/enter lnk lnkk lnl lnll lnklnl t tt tlnk tlnl.
NOTE: ALL OUTPUT INCLUDING ERROR MESSAGES HAVE BEEN TEMPORARILY
SUPPRESSED. IF YOU EXPERIENCE UNUSUAL BEHAVIOR, RERUN THIS
MACRO WITH AN ADDITIONAL ARGUMENT /DEBUG='Y'.
BEFORE DOING THIS YOU SHOULD RESTORE YOUR DATA FILE.
THIS WILL FACILITATE FURTHER DIAGNOSIS OF ANY PROBLEMS.     

后面还有参数估计、岭迹图、RSQ。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-2-24 17:56:41
OK  只要含有网上流传的代码的ridge regression.sps
加到ridgespss16   
岭回归 可以得到t检验的P值。  而spss19、20不可以
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-25 09:39:37
按楼主所说的那样去做,16.0版本(全功能、免注册、版本)并不能“得到t检验的p值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-25 21:00:54
说过了是含有网上流传的代码的ridge regression.sps
加到ridgespss16


那个代码很容易搜到
如下:
附: 粗体部分 是在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.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-26 11:25:38
小农民工 发表于 2014-2-25 21:00
说过了是含有网上流传的代码的ridge regression.sps
加到ridgespss16
按照您说的,将粗体部分copy进去,运行,没有错误提示,但依旧不能输出在output里面。不知道问题在哪里。看得出,ppp即是计算的sig.,bevc是一个向量。但找不到。也许过程计算了,但就是不知道在哪里找到。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-26 17:49:01
我用的是   SPSS v16.0  ,本身不含ridge regression.sps
压缩包为199M。

如果程序安装无误,除P值外其他的都能输出,我也不知道为什么。
我曾经用spss19 输出过一次带P值的,后来再也无法输出P值,才改成spss v16.0
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群