在R中的回归模型中的因子内和之间

时间:2017-10-03 02:15:36

标签: r linear-regression anova

我正在尝试运行rmANOVA和相应的回归模型。在实验中,参与者正在完成一份调查问卷,该调查问卷正在评估他们拥有的特质X(得分)。然后他们正在执行一项任务,其中每个参与者都接触到三个条件(COND-nSCM,SCM,SC)。测量他们的大脑反应(ERP)。

这就是它的样子:

 > head(df)
    code    SEX AGE SCORE COND        ERP
1 AA1407   male  29    14 nSCM -3.0348373
2 AN0312   male  26    13 nSCM -1.8799240
3 BR1410   male  23    30 nSCM  0.4284033
4 EZ2404   male  23    23 nSCM -0.7615117
5 HA1012 female  27    22 nSCM -2.9301698
6 HS3004   male  30    16 nSCM -0.5468492

由于我对如何在R中使用不同类型的变量感到有点困惑,也许有人也可以向我保证以下内容:

> sapply(df,class)
     code       SEX       AGE     SCORE      COND       ERP 
 "factor"  "factor" "numeric" "numeric"  "factor" "numeric" 

根据实验设计,ANOVA设计有一个主体间IV:SCORE,一个主体内IV:COND,DV是ERP(右?)。

这是我使用的模型和摘要:

> anERP <- aov(ERP ~ COND*SCORE, data = df)
> summary(anERP)
            Df Sum Sq Mean Sq F value Pr(>F)  
COND         2   0.21   0.105   0.027 0.9736  
SCORE        1  16.87  16.868   4.297 0.0419 *
COND:SCORE   2   0.58   0.289   0.074 0.9291  
Residuals   69 270.85   3.925                 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

所以,如果这是对的(请告诉我,如果有什么事情似乎不对),我还应该在构建回归模型时找到对SCORE的影响,对吗?另外,我不确定如何解释这种效果,因为AQ是一个区间变量(分数在6-35范围内)。我很感激这里的帮助。

现在我对这个模型的回归看起来很困惑。我从简单的lm模型入手,将SCORE和COND作为固定效果:

> lmERP <- lm(ERP ~ SCORE*COND, data = df)
> summary(lmERP)

Call:
lm(formula = ERP ~ SCORE * COND, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.2554 -1.0916  0.1975  1.4582  3.3097 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)   
(Intercept)    -3.04269    1.06193  -2.865  0.00552 **
SCORE           0.06458    0.05229   1.235  0.22108   
CONDSCM        -0.08141    1.50180  -0.054  0.95693   
CONDnSCM        0.36646    1.50180   0.244  0.80795   
SCORE:CONDSCM   0.01111    0.07396   0.150  0.88104   
SCORE:CONDnSCM -0.01707    0.07396  -0.231  0.81814   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.981 on 69 degrees of freedom
Multiple R-squared:  0.0612,    Adjusted R-squared:  -0.006827 
F-statistic: 0.8997 on 5 and 69 DF,  p-value: 0.4864

然而,这里SCORE的主要作用并没有达到显着性。这怎么可能?不应该rmANOVA和回归显示大致相似的结果(或至少是主效应)? 我想我不是在这里应用正确的线性模型,因为它似乎没有认识到设计中的主题因素内部和之间都有。

我已经阅读了数百个网页,教程和论坛,我仍然对这些模型感到困惑。提前感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

使用R的基础aov函数指定重复测量或混合模型设计可能会非常混乱。例如,在您编写的代码中,aov会将所有指定因素视为独立因素(即主体间)。我强烈建议使用一个库,以便更容易地指定这些类型的设计。

ez 库包含ezANOVA,这使得这些测试很容易执行,前提是所有情况都已完成(所有因素都完全交叉,没有丢失数据)。假设您的CODE列唯一标识了每个主题,并且您想要包含数据集中的所有因子,那么测试将如下所示:

my.aov <- ezANOVA(data = df, dv = ERP, wid = CODE, between = .(SEX, AGE, SCORE), within = COND).

也可以使用 lme4 包实现这些设计(事实上,ezANOVA是lme4函数的包装器)。虽然lme4允许更灵活的模型规范并且可以容忍不完整的数据,但其语法更难。 Bodo Winter's tutorial on lme4是一个好的开始,如果你想深入了解。

顺便说一句,执行ANOVA和线性回归通常没什么意义。除非以对待不同因素的方式指定两个测试,否则结果将是等效的。