轉(zhuǎn):關(guān)于SPSS不能給出嶺回歸顯著性檢驗(yàn)(t,p)的解決方案
轉(zhuǎn):關(guān)于SPSS不能給出嶺回歸顯著性檢驗(yàn)(t,p)的解決方案
2013-06-13 08:45閱讀:
大家在計(jì)算嶺回歸的時(shí)候是不是都遇到了這樣的問題:最后的k值都定了,標(biāo)準(zhǔn)線性回歸系數(shù)和非標(biāo)準(zhǔn)線性回歸系數(shù)都算出來了,但是就是沒有t檢驗(yàn)值和顯著性概率?我也很困擾,而且困擾了我好幾天,這幾天把整個(gè)論壇都找遍了也沒找到想要的信息,二是看到一位腦殘的同志狂發(fā)SPSS
18.0可以直接計(jì)算嶺回歸,但是我用何曉群的《應(yīng)用回歸分析》里面的數(shù)值代進(jìn)去是不對(duì),這對(duì)于我們SPSS的菜鳥來說是個(gè)悲劇。。!
好在狗屎運(yùn),在百度找了好久,終于功夫不負(fù)有心人,找到了,現(xiàn)在我把原文章和文章出處貼上來,至于大家會(huì)問,這段代碼可行嗎?放心,我試過了!感謝這位好老師!淚奔!我知道板上有很多更我一樣的菜鳥,每次遇到這類問題都是束手無策,有的時(shí)候還是要靠自己啊,誒!
具體做法就是在你的SPSS的安裝文件中找到ridge
regression.sps這個(gè)文件,雙擊打開,看到里面很多代碼,是的。然后找到和下面代碼一樣的那段代碼,將褐色的那部分加進(jìn)去。保存(ms不能直接保存),那就另存到非安裝文件夾里面,比如桌面,然后拷回來。這就是可以計(jì)算t和p值的ridge
regression.sps插件了。你可以用下面的進(jìn)行計(jì)算了
INCLUDE'ridge regression文件的路徑\ridge regression.sps'.
ridgereg enter=自變量
/dep=應(yīng)變量
/start=
/stop=
/inc=
我自己安裝的SPSS不能給出嶺回歸的顯著性檢驗(yàn),也不知道是什么原因。代06級(jí)統(tǒng)計(jì)學(xué)專業(yè)的實(shí)用回歸分析時(shí)就遇到了這個(gè)問題。SPSS的教程關(guān)于這個(gè)部分并未作詳細(xì)描述,在網(wǎng)上搜索也沒找到解決方案。所以當(dāng)時(shí)就把這個(gè)問題忽略了。今年又代07級(jí)統(tǒng)計(jì)學(xué),再次遭遇這個(gè)問題,經(jīng)過多方嘗試與摸索,終于找到一個(gè)簡單可行的解決方案!先說發(fā)現(xiàn)這個(gè)方法的過程。
最開始想的是通過syntax窗口編程,在原有嶺回歸語句上添加上給出顯著性檢驗(yàn)的語句。對(duì)SPSS程序語法不是太熟,但是SPSS有個(gè)特點(diǎn)是,對(duì)于窗口化操作的命令,最后不選“OK”而選“Paste”的話,就能夠進(jìn)入syntax窗口,看到具體的程序;谶@點(diǎn),可以仿造相應(yīng)程序編一個(gè)顯著性檢驗(yàn)的語句。但是,這個(gè)想法失敗了。
看來要對(duì)嶺回歸的程序包添加相應(yīng)語句才行。打開Ridge
regression.sps,里面是密密麻麻關(guān)于嶺回歸的程序。還好,每個(gè)主要步驟都作了說明。查找一下,找到了嶺回歸系數(shù)估計(jì)的部分,果然沒有顯著性檢驗(yàn)的語句。
還好,通過原有語句不難得到檢驗(yàn)統(tǒng)計(jì)量的值。但是僅僅給出這個(gè)值,,對(duì)于做檢驗(yàn)而言,很不方便。跟一般回歸一樣,要給出顯著性P值才好。這個(gè)關(guān)系不難根據(jù)P值意義得到,關(guān)鍵是相應(yīng)的程序語句怎么寫。對(duì)照系數(shù)估計(jì)上面方差分析的部分(方差分析部分給出了F檢驗(yàn)顯著性P值),嘗試著寫程序,終于成功!保存之后,再做嶺回歸就能給出顯著性檢驗(yàn)的P值了!
沒用過別的SPSS版本,有的版本好像沒這個(gè)問題。提出這個(gè)方法,希望可以幫到有同樣問題的人。
附:在Ridge
regression.sps中添加的語句(紅色傾斜的部分,就是添加的語句,當(dāng)然,為了給出相應(yīng)結(jié)果,原有語句作了少許改動(dòng)。)
*---------------------------------------------------------------------------.
* 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.
*---------------------------------------------------------------------------(從這里開始是給出系數(shù)估計(jì))
. 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.
分享
N
同時(shí)轉(zhuǎn)發(fā)到微博本文編號(hào):2129004
本文鏈接:http://sikaile.net/wenshubaike/dxkc/2129004.html