[英]R - How to Extract T-Statistics From Ridge Regression Results
我正在使用R中的嶺回歸軟件包 ,但是在提取系數列表中的T統計量p值時遇到了麻煩。
下面是一些示例代碼在這里 ;
data(GenCont)
mod <- linearRidge(Phenotypes ~ ., data = as.data.frame(GenCont))
summary(mod)
這返回
Call:
linearRidge(formula = Phenotypes ~ ., data = as.data.frame(GenCont))
Coefficients:
Estimate Scaled estimate Std. Error (scaled) t value (scaled) Pr(>|t|)
(Intercept) 1.533386 NA NA NA NA
SNP1 0.277296 4.045409 0.266120 15.201 < 2e-16 ***
SNP2 -0.110458 -1.256154 0.216332 5.807 6.38e-09 ***
但是我想以編程方式訪問“系數”中的數據。 我了解,如果我使用lm,則類似
coef(summary(mod))
應該可以工作,但這似乎並不能滿足我的要求。 我只是得到一個NULL。
請問有關如何訪問此數據的任何想法?
要獲得針對自動選擇了脊參數的情況的系數表,您應該將summary()
結果存儲為某個對象,然后訪問列表元素summaries$summary1$coefficients
。 您可以使用功能str(sumar)
看到summary()
對象的整個結構。
sumar<-summary(mod)
sumar$summaries$summary1$coefficients
Estimate Scaled estimate Std. Error (scaled) t value (scaled) Pr(>|t|)
(Intercept) 1.533385893 NA NA NA NA
SNP1 0.277296215 4.045408706 0.2661197 15.20146202 0.000000e+00
SNP2 -0.110457822 -1.256153622 0.2163319 5.80660491 6.375233e-09
SNP3 -0.110457822 -1.256153622 0.2163319 5.80660491 6.375233e-09
SNP4 0.005229639 0.011635212 0.3716925 0.03130332 9.750276e-01
SNP5 0.531172545 6.323006229 0.3153685 20.04958196 0.000000e+00
SNP6 -0.119163534 -1.373227248 0.2230470 6.15667175 7.428960e-10
SNP7 0.113843942 0.113730041 0.3721807 0.30557749 7.599264e-01
SNP8 -0.099148877 -1.028580596 0.3558067 2.89084074 3.842128e-03
SNP9 -0.008320553 -0.008312229 0.3723863 0.02232152 9.821915e-01
SNP10 0.058562323 0.101128163 0.3715670 0.27216670 7.854938e-01
SNP11 -0.096526424 -1.495698673 0.3292496 4.54275034 5.552500e-06
SNP12 -0.334279101 -0.333944654 0.3722483 0.89710186 3.696646e-01
要僅獲取t值,請選擇此表的第四列。
> sumar$summaries$summary1$coefficients[,4]
(Intercept) SNP1 SNP2 SNP3 SNP4 SNP5 SNP6 SNP7 SNP8 SNP9
NA 15.20146202 5.80660491 5.80660491 0.03130332 20.04958196 6.15667175 0.30557749 2.89084074 0.02232152
SNP10 SNP11 SNP12
0.27216670 4.54275034 0.89710186
要訪問由summary()函數產生的其他元素,您只需選擇適當的列表元素。 摘要對象的結構顯示要選擇的元素。
str(sumar$summaries$summary1)
List of 4
$ coefficients: num [1:13, 1:5] 1.53339 0.2773 -0.11046 -0.11046 0.00523 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:13] "(Intercept)" "SNP1" "SNP2" "SNP3" ...
.. ..$ : chr [1:5] "Estimate" "Scaled estimate" "Std. Error (scaled)" "t value (scaled)" ...
$ df : Named num [1:3] 3.12 1.21 5.04
..- attr(*, "names")= chr [1:3] "model" "variance" "residual"
$ nPCs : int 1
$ lambda : num 2.21
例如獲取df
sumar$summaries$summary1$df
model variance residual
3.120934 1.205412 5.036457
也可以選擇結果而無需創建新對象-只需使用summary(mod)
而不是對象名稱sumar
。
summary(mod)$summaries$summary1$df
model variance residual
3.120934 1.205412 5.036457
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.