R:获得多元线性回归中所有系数的p值(包括参考水平)

时间:2014-04-13 15:54:20

标签: r regression p-value

示例

我有一个线性回归,它适用于具有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)

任务

我想访问model对象的每个系数的p值。为了避免不必要的拦截,我已在公式中使用- 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的基线(参考)级别。

问题

如何更改代码以访问P0K0的p值作为model对象的系数?

注意:我不确定它是否会对解决方案产生影响,我实际上在我的实际问题中使用lmrob作为强大的回归函数,所以我决定更好地保留在这个可重复的例子中。

1 个答案:

答案 0 :(得分:1)

估计的p值是:

coef(summary(model))[, 4]

关于参考水平,模型使用治疗对比,因此参考水平的值都为零,因此询问它们的p值没有意义。