【问题标题】:ANOVA using wide data table format使用宽数据表格式的方差分析
【发布时间】:2016-10-21 04:13:37
【问题描述】:

我的原始数据采用 表 A 中显示的宽格式。

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

我决定以 Depression_Score 作为标准和“履行职责对数据进行单向方差分析测试>' 作为因素。我知道我可以将数据重新整形为 表 B 中的长格式,然后运行 ​​ANOVA。

这是我的问题:是否可以直接在 Table A 上运行 ANOVA 测试而不将数据重新整形为 Table B

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

表 A:

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

表 B:

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

【问题讨论】:

    标签: r reshape reshape2 anova tidyr


    【解决方案1】:

    如果您删除其中一列并将其提供给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 
    

    与您的示例中的表 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
    

    【讨论】:

    • 第二种情况应该是data=B吧?另一项澄清。如果有 4 列因子(而不是在本例中为 3 列),我会提供其中的 3 列 as.matrix,依此类推吗?
    • @user1883050 - 它没有任何区别 - 在您的示例中,Depression_ScoreAB 中是相同的。是的,我相信您需要始终使用n-1 列,因为您只能进行n-1 比较而不会加倍。请参阅Df 列并注意在方差分析结果中始终为2
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    相关资源
    最近更新 更多