R中线性模型的总体方差分析

时间:2014-12-20 19:32:36

标签: r statistics regression lm anova

我可以使用anova函数来获取线性模型的ANOVA表。然而,这给出了每个解释变量对响应变量的单独影响。我想知道R中是否有任何函数可以获得overall ANOVA我们可以获得所有解释变量对响应变量的总体影响。在此先感谢您的帮助。

MWE

set.seed(12345)
X1 <- 10*abs(rnorm(n=10, mean = 5, sd = 1))
X2 <- 20*abs(rnorm(n=10, mean = 4, sd = 2))
Y <- 50*abs(rnorm(n=10, mean = 10, sd = 4))

df <- data.frame(X1, X2, Y)

fm1 <- lm(formula=Y~X1+X2, data=df)
anova(fm1)

Analysis of Variance Table

Response: Y
          Df Sum Sq Mean Sq F value Pr(>F)
X1         1  37842   37842  0.7815  0.406
X2         1 115774  115774  2.3910  0.166
Residuals  7 338941   48420  

已编辑(2017-10-23)

所需的输出是

Analysis of Variance Table

Response: Y
           Df Sum Sq      Mean Sq      F value  Pr(>F)
Regression 2  153616.587  76808.293    1.586    0.2703
Residuals  7  338940.570  48420.081  

1 个答案:

答案 0 :(得分:5)

好的,让我们试试这个:拟合的F统计量比较拟合与没有预测因子的拟合,例如:适合Y~1。所以

anova(lm(Y~1,df),lm(Y~X1+X2,df))
# Analysis of Variance Table
#
# Model 1: Y ~ 1
# Model 2: Y ~ X1 + X2
#   Res.Df    RSS Df Sum of Sq      F Pr(>F)
# 1      9 492557                           
# 2      7 338941  2    153617 1.5863 0.2703

为您提供拟合的F统计量的组成部分:

summary(lm(Y~X1+X2,df))$fstatistic
#   value   numdf   dendf 
# 1.58629 2.00000 7.00000