我在 R 中运行了双向重复测量方差分析,残差的自由度似乎已关闭。
我的数据集如下所示:Behavioral Intox Data
**和我的方差分析代码:
behint_rm_anova <- aov(Intox_score ~ Point * Condition + Error(ID/Point), data = Behavioral_intox_data_v4_for_R)`
summary(behint_rm_anova)
**产生这些结果:
> Error: Within
> Df Sum Sq Mean Sq F value Pr(>F)
> Point 11 55.82 5.075 6.626 5.81e-10 ***
> Condition 2 36.82 18.410 24.036 1.96e-10 ***
> Point:Condition 22 29.18 1.326 1.732 0.0232 *
> Residuals 312 238.97 0.766
如果我没记错的话,残差 df 应该是:总观测值 (360) - 因子 A 的水平 (3) x 因子 B 的水平 (12)。 360-36 = 324。
我在这里查看了过去的帖子,我相信我已经包含了正确的错误术语。我还使用以下方法将“点”更改为一个因子:
Behavioral_intox_data_v4_for_R$Point <- as.factor(Behavioral_intox_data_v4_for_R$Point)
将其更改为一个因子解决了我最初遇到的“Point”的 df 问题,但没有解决此问题。
我还尝试使用与上面相同的代码将“ID”更改为因子以及“日”,但是当我尝试此操作时,它生成了一个完全缺少“条件”的方差分析表:
Error: ID:Point
Df Sum Sq Mean Sq F value Pr(>F)
Point 11 114.93 10.448 13.942 <2e-16 ***
Point:Condition 22 30.32 1.378 1.839 0.0135 *
Residuals 297 222.58 0.749
我不确定为什么将“ID”更改为因子会一起删除输出的“条件”部分。也不确定如何重组我的 r 代码以产生正确的残差 df。
无法访问您的数据,我创建了一个示例数据框。现在,我认为这是错误:
您已将预期残差 df 计算为 324(360−36=324),从而假设数据集中没有缺失值且完美平衡。以下是通常如何考虑这种故障:
观察总数:
360
因子 A 水平(点):12
因子 B 水平(条件):3
互动:12*3=36
重复测量设计中残差的自由度将通过调整每个受试者内的所有这些影响来计算。假设
𝑛=30
受试者,每人在3种条件下测量12次。您计算的数字 (324) 似乎没有考虑减去每个主题的自由度,如典型的 RM 方差分析设置中所做的那样:
Residual df=(n−1)*(levels of Point*levels of Condition−1)
Residual df=(30−1)*(36−1)=29*35=1015
尝试这样做:
set.seed(123)
ID <- rep(1:30, each=36) ditions)
Condition <- rep(c("T", "F", "M"), each=12, times=30)
Point <- rep(1:12, times=90)
Intox_score <- sample(1:100, 1080, replace=TRUE)
Behavioral_intox_data <- data.frame(ID, Condition, Point, Intox_score)
str(Behavioral_intox_data)
Behavioral_intox_data$ID <- as.factor(Behavioral_intox_data$ID)
Behavioral_intox_data$Condition <- as.factor(Behavioral_intox_data$Condition)
Behavioral_intox_data$Point <- as.factor(Behavioral_intox_data$Point)
if (!("stats" %in% .packages(TRUE))) {
library(stats)
}
behint_rm_anova <- aov(Intox_score ~ Point * Condition + Error(ID/(Point * Condition)), data = Behavioral_intox_data)
summary(behint_rm_anova)
这给出了
Error: ID
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 29 12639 435.8
Error: ID:Point
Df Sum Sq Mean Sq F value Pr(>F)
Point 11 17310 1573.7 1.828 0.0485 *
Residuals 319 274567 860.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: ID:Condition
Df Sum Sq Mean Sq F value Pr(>F)
Condition 2 1068 533.8 0.662 0.519
Residuals 58 46740 805.9
Error: ID:Point:Condition
Df Sum Sq Mean Sq F value Pr(>F)
Point:Condition 22 22946 1043.0 1.283 0.174
Residuals 638 518647 812.9
记住:这是我创建的数据。检查您的实际数据。