从 R 中的方差分析中获取平均值

问题描述 投票:0回答:2

我正在使用R来运行ANOVA(通常的aov代码,它提供了这些信息:Df、Sum Sq、Mean Sq、F值、Pr(>F)),还有一条信息我没有能够从这些表中得到:因变量的估计边际均值。

我知道可以从 SPSS 中的方差分析中获取这些附加信息,但我无法在 R 中复制它。

我使用 dput() 的最少数据:

因变量(连续):结构(c(0.5092,0.6965,0.4308,0.634,0.4258)

自变量(分类,因子):结构(c(3L,3L,4L,1L,2L)

控制变量#1(分类,因子):结构(c(1L,2L,2L,2L,2L)

控制变量#2(分类,因子):结构(c(2L,2L,5L,3L,2L)

ANOVA公式:aov(dep.variable ~ indep.variablecntrl#1cntrl#2, data = data)

我的自变量是一个有4个水平的因素。在控制 cntrl #1 和 #2 后,我需要自变量每个级别的因数值的平均值。

我会很感激你的帮助。

r mean anova
2个回答
0
投票

所以在查看 this 教程时,R 似乎没有给您平均值,就像您在查看 SPSS 时那样。也许你想尝试一个不同的图书馆来为你提供更多信息?您也可以像 this 教程中那样手动完成。他们只是得到每组的平均值:

PlantGrowth %>%
  group_by(group) %>%
  get_summary_stats(weight, type = "mean_sd")

请注意,您的分类变量需要是二元的,以单独识别每个类别的影响。 (如果需要创建虚拟变量)


-1
投票

aov()
lm()
的包装器,专为提供方差分析预期的通常输出而量身定制。您可以像使用
coef()
输出一样使用
lm()
获得系数,或者直接使用
lm()

x = data.frame(
  y = c(
    rnorm(10, 5, 2),
    rnorm(10, 8, 2)
  ),
  g = rep(letters[1:2], each = 10)
)

aov(y ~ g, data = x)
Call:
   aov(formula = y ~ g, data = x)

Terms:
                       g Residuals
Sum of Squares  33.06216  81.16610
Deg. of Freedom        1        18

Residual standard error: 2.123494
Estimated effects may be unbalanced

使用

coef()
获取组意味着:

aov(y ~ g, data = x) |> coef()
(Intercept)          gb 
   5.784686    2.571465 

或直接致电

lm()

lm(y ~ g, data = x)
Call:
lm(formula = y ~ g, data = x)

Coefficients:
(Intercept)           gb  
      5.785        2.571  

请注意,第一组

'a'
的平均值在
(Intercept)
项中,而
'b'
的效果是与此截距的差异。实际组均值是
'a'
的截距和
'b'
的两个系数之和。

© www.soinside.com 2019 - 2024. All rights reserved.