我尝试对4个不同组的描述性变量进行ANOVA检验,这4组根据是否存在2种并发症进行分组。
我的数据
structure(list(values = c("F", "F", "M", "F", "F", "M", "F",
"F", "F", "F", "F", "F", "F", "M", "M", "F", "F", "F", "F", "M"
), ind = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Group 1",
"Group 2 ", "Group 3", "Group 4"), class = "factor")), row.names = c(NA,
20L), class = "data.frame")
我尝试了下面的代码来运行anova测试
anovaresult= aov(data_new$values ~ data_new$ind, data=data_new)
我收到了下面的错误消息:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
NA/NaN/Inf in 'y'
In addition: Warning message:
In storage.mode(v) <- "double" : NAs introduced by coercion
>
非常感谢,请注意,我的df是通过函数stacked()
将4个组堆叠在一起创建的
1条答案
按热度按时间vuv7lop31#
当您有一个分类自变量,并且要检验正态分布的连续因变量均值之间的差异时,可以使用ANOVA。因变量是二分的(M/F),因此不适合使用ANOVA。
假设您有与您的数据类似的分类数据,如下所示:
由于数据是从均匀分布中随机抽取的,因此我们不期望组间有任何差异。我们可以使用卡方检验(一种常用的方法)进行统计检验。在R中,这可以实现为:
这里你可以看到p值远高于标准值0.05,所以我们可以得出结论,没有差异。
如果这些数据是非参数的(即Likert风格的数据),我们可以使用一个非参数的类比,称为Kruskal-Wallace,在R中它被实现为:
你也可以使用逻辑回归来检验关联的强度,在R中,这可以通过以下方式实现:
请注意,在逻辑回归中,您可能希望转换这些系数和标准误差以给予比值比(OR)。在R中,您可以通过以下方式进行转换:
如您所见,OR置信区间包含空值(无差异)-正如预期。
这些只是一些例子,说明如何在您的数据类型中实现统计检验和效果度量,但并不全面。祝你好运!