2014-04-13 36 views
0

R:獲取p值在多次線性迴歸的所有係數

我有一個線性迴歸,這適合用3個說明因子變量的數值因變量(包括基準電平)。每個因子變量都有2個等級。

install.packages("robustbase") 
install.packages("MASS") 
require(robustbase) 
require(MASS) 

# Example data 
data(npk) 
df= npk[,-1] 
str(df) 

# 'data.frame': 24 obs. of 4 variables: 
# $ N : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ... 
# $ P : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ... 
# $ K : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ... 
# $ yield: num 49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ... 

set.seed(0) 
model <- lmrob(yield ~ N + P + K - 1, data= df) 

任務

我要訪問的p值用於model對象的每個係數。爲了避免不必要的攔截,我已經在公式中使用了- 1

summary(model)$coefficients 

# Estimate Std. Error t value  Pr(>|t|) 
# N0 54.644672 2.400075 22.7678995 8.972084e-16 
# N1 60.166737 1.966661 30.5933467 2.858276e-18 
# P1 -1.059299 2.139443 -0.4951286 6.259053e-01 
# K1 -3.905052 2.226012 -1.7542822 9.469295e-02 

似乎基線(基準)水平PK被隱藏。

問題

如何更改代碼還可以訪問的p值P0K0作爲係數爲model對象?

注:我不知道,如果它使解決方案的差異,那我其實用我的實際問題作爲lmrob穩健迴歸的功能,所以我決定將它更好地保持在這個重複的例子。

+0

p值用於因子值與參考值之間的對比。當使用治療對比度作爲R的默認值時,因子係數的參考水平是第一水平。 「截距」是一個假設情況下的估計水平,其中所有因子值均處於其基準水平。因此,你幾乎不可能稱這種估計「不必要」。 –

回答

1

被估計的p-值是:

coef(summary(model))[, 4] 

關於參考水平,該模型使用治療對比因此參考電平的值均爲零因而其意義不大,要求它們的p - 值。