Anova在R和重复

  • 本文关键字:Anova r statistics anova
  • 更新时间 :
  • 英文 :


好的,所以我正在上统计学课程(我是一名博士生(,在R中执行方差分析时遇到了一些问题。代码如下:

df <- data.frame(
x1 = c(-1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1),
x2 = c(-1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1),
x3 = c(-1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1),
y = c(59, 74, 50, 69, 50, 81, 46, 79, 61, 70, 58, 67, 54, 85, 44, 81)
)

我知道我可以用进行方差分析

summary(aov(y ~ x1 + x2 + x3, data = df))

问题是残差分析是错误的。它给了我474和12个自由度的SQR,但它应该分别是64和8。我确信这一点,因为我们不仅在课堂上与教授手工完成了这项工作(花了一段时间(,而且我们还在Matlab中通过多种方法完成了这一工作,并获得了相同的结果。知道R为什么给我一个错误的答案吗?我试着用另一种方法,比如anova.lme,但没有奏效。只要看看自由度,如果我有16个实验,我计算8个平均值,就得到了8个dfs。换句话说,我有16个实验和8个不同的组(每个归一化交互一个(,这也给了我8个dfs。SQR的自由度公式是N-k,k是不同的群。在这种情况下,这些群都是可能的相互作用,所以16个实验-8个可能的相互影响=8个自由度。这已经证明12 dfs是错误的(我不知道这12是从哪里来的(。下面是我从R得到的答案,x1,x2,x3的SQG都是正确的,它们的自由度也是正确的。但由于残差是错误的,我的F值也都不正确

我所说的互动(群体(是:

x1 x2 x3
-1 -1 -1;
1 -1 -1;
-1  1 -1;
1  1 -1;
-1 -1  1;
1 -1  1;
-1  1  1;
1  1  1;

下面是我从R 得到的答案

Df Sum Sq Mean Sq F value   Pr(>F)    
x1           1   2116  2116.0  53.570 9.23e-06 ***
x2           1    100   100.0   2.532    0.138    
x3           1      9     9.0   0.228    0.642    
Residuals   12    474    39.5 

谢谢你的帮助,并对任何错误表示歉意,英语不是我的主要语言。

在这里,您将x1x2x3建模为单独的协变量,但您似乎希望将其组合为一个因子。您可以使用R中的interaction()函数来执行此操作。例如

summary(aov(y ~ interaction(x1, x2, x3), data = df))
#                         Df Sum Sq Mean Sq F value   Pr(>F)    
# interaction(x1, x2, x3)  7   2635   376.4   47.05 7.07e-06 ***
# Residuals                8     64     8.0                     
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

它似乎给出了你期望的值基本上它为你创建了一个新的变量,有8个不同的值

with(df, table(interaction(x1, x2, x3)))
# -1.-1.-1  1.-1.-1  -1.1.-1   1.1.-1  -1.-1.1   1.-1.1   -1.1.1    1.1.1 
#        2        2        2        2        2        2        2        2 

相关内容

  • 没有找到相关文章

最新更新