使用宽数据 table 格式的方差分析

ANOVA using wide data table format

我的原始数据是 Table A 中显示的宽格式。

假设我想研究经历过不同兵役的退伍军人是否患有不同程度的抑郁症。

我决定 运行 对数据进行单向方差分析测试,其中 Depression_Score 作为标准和“任职时间”作为因素。我知道我可以将数据重塑为长格式,如 Table B,然后 运行 方差分析。

但这是我的问题:是否可以直接在 Table A 上 运行 进行方差分析测试,而无需将数据重塑为 TableB?

如果是,那么我将使用哪些 R 命令来对此进行编程?

Table答:

ArmyVet_ID  Served_WW2  Served_KoreanWar    Served_VietnamWar   Depression_Score
110001          1              0                    0                3
110002          1              0                    0                1
110004          0              1                    0                4
110005          0              1                    0                3
110009          0              0                    1                7
110010          0              0                    1                5

Table乙:

ArmyVet_ID    Served            Depression_Score
110001          WW2                    3
110002          WW2                    1
110004          KoreanWar              4
110005          KoreanWar              3
110009          VietnamWar             7
110010          VietnamWar             5

如果您删除其中一列并将其提供给 as.matrix,您可以获得与传递组合因子相同的结果:

anova(lm(Depression_Score ~ as.matrix(A[3:4]), data=A))
#Analysis of Variance Table
#
#Response: Depression_Score
#                  Df Sum Sq Mean Sq F value Pr(>F)
#as.matrix(A[3:4])  2 16.333  8.1667  5.4444 0.1004
#Residuals          3  4.500  1.5000 

与您示例中 table B 的因子结果相比:

anova(lm(Depression_Score ~ I(factor(c(1,1,2,2,3,3))), data=A))
#Analysis of Variance Table
#
#Response: Depression_Score
#                               Df Sum Sq Mean Sq F value Pr(>F)
#I(factor(c(1, 1, 2, 2, 3, 3)))  2 16.333  8.1667  5.4444 0.1004
#Residuals                       3  4.500  1.5000