使用方差分析或r中的另一种测试方法将两个具有多个变量的组进行比较

问题描述 投票:0回答:1

现在正在研究我的硕士论文。我分为2组:照常淋浴和冷水淋浴组。变量包括年龄,性别,体重,心理健康,生理健康,睡眠质量,运动行为,皮肤质地,淋浴行为等。

Head(data1)

Code Gruppe StudentBasel Alter Grösse Gewicht0W Gewicht12W 1 TURN12 2 Ja 50 159 70 72 2 AMMN17 1 Nein 26 164 52 50 3 LKPG08 2 Nein 19 167 54 NA 4 LJRn05 2 Nein 22 180 60 NA 5 AGBD08 1 Nein 24 165 49 NA 6 IUGH20 2 Nein 32 168 54 NA Geschlecht WHO1W WHO4W WHO8W WHO12W FEW1W FEW4W FEW8W FEW12W 1 w 6 21 24 25 87 70 80 75 2 w 24 22 25 22 77 78 83 74 3 w 16 NA NA NA 65 NA NA NA 4 w 19 NA NA NA 61 NA NA NA 5 w 23 18 22 NA 61 61 56 NA 6 w 22 NA NA NA 66 NA NA NA SchlafA1W SchlafA4W SchlafA8W SchlafA12W SchlafWT1W SchlafWT4W 1 32 25 25 30 49 32 2 35 31 35 28 46 43 3 28 NA NA NA 31 NA 4 23 NA NA NA 32 NA 5 27 28 26 NA 35 34 6 27 NA NA NA 41 NA

所以我有两个组,分别是第4、8和12周的数据。我想通过第4周的方式比较各组。不建议为每个变量运行t检验,因为我没有考虑某些错误。所以我想,我将使用像这样的方差分析

CSSAUW4 <- aov(formula = Gruppe ~ WHO4W + FEW4W + Dauer4W + SchlafA4W + SchlafWT4W + Einschlafzeit4W + Schwitzen + Haut4W + KHaut4W + Abwesenheit4W + Krankheitssymptome4W + Duschhäufigkeit4W, data = Group4W)

所以我得到了所有结果,并感到非常高兴,但是我无法进行TukeyHSD()测试,因为“组”不是一个因素。因此,使用as.factor()将其更改为一个因数,但是现在我不再能够计算ANOVA。显然我做错了所有事情,应该使用aov(数字变量〜组)比较所有内容,但是后来我遇到了同样的问题,如带有t检验的变量,它为每个变量编写了每个代码。

所以我读了一些有关lme4 ANOVA的文章,但是我发现很难理解如何为我的数据编码,因为我成功地躲过了我大学的每门R课程。我想要一些简单的编码,例如:Test(Group〜variable1,variable2,variable3,data = data1)就是这样。对于第4周,第8周,第12周。

我当时正在考虑使用lm(group〜variable1,variable2等)。这对我的数据是否可行并有意义?我怀疑我的统计信息是否正确:D

第二个问题:我的问题是数据集太少(第12周的随访损失为90%)。因此,目前每个小组只有8名参与者。我可以在第12周做与第4周相同的均值比较吗(每个参与者25人)?

非常感谢您的帮助!

问候基督徒

r variables comparison mean multiple
1个回答
0
投票

示例数据:

COLS = c("WHO4W", "FEW4W", "Dauer4W", "SchlafA4W", "SchlafWT4W", "Einschlafzeit4W", 
"Schwitzen", "Haut4W", "KHaut4W", "Abwesenheit4W", "Krankheitssymptome4W", 
"Duschhäufigkeit4W")

set.seed(100)
df = data.frame(Gruppe=sample(1:2,100,replace=TRUE),
matrix(rpois(100*length(COLS),100),nrow=100))
colnames(df)[-1] = COLS

由于您正在两组之间进行方差分析,因此等效于对所有可能的对进行t.test。您也可以尝试以下操作:

library(tidyr)
aov_df = pivot_longer(df,-Gruppe)
aov_df$Gruppe = factor(aov_df$Gruppe)
aov_df$grp = paste0(aov_df$name,aov_df$Gruppe)
pairwise.t.test(aov_df$value,aov_df$grp)

并根据您要进行的比较将其子集化,优点是方差被估计为一个池。

© www.soinside.com 2019 - 2024. All rights reserved.