【问题标题】:Running a two-sample t.test with unequal sample size in R在 R 中运行样本量不等的两样本 t.test
【发布时间】:2018-10-15 07:27:38
【问题描述】:

我正在尝试对治疗组和对照组之间的差异进行双样本 t 检验。数据未配对。当我对原始数据框进行子集化时,我发现我的样本量不相等(手动不是问题,但 R 似乎使它成为问题)。这是我的代码:

CG<-subset(data,treat=="Control")
TG<-subset(data,treat!="Control")
agep <-t.test(CG$age~TG$age)$p.value

我得到的错误如下:

Error in model.frame.default(formula = CG$age ~ TG$age) : 
variable lengths differ (found for 'TG$age')

是的!长度确实不同。如果我不运行配对测试,不确定为什么会出现问题?提前感谢您的帮助。

【问题讨论】:

  • 您使用的公式界面不正确。用逗号代替~
  • 谢谢!就是这样!我不敢相信我已经盯着这个逗号看了好几个小时。我很感激!
  • 如果您只有两个组,您可以使用公式界面,但您不想先对数据进行子集化。 t.test(age~treat, data=data) 应该做同样的事情。

标签: r t-test


【解决方案1】:

如果不相等的样本大小是独立组,则可以通过不成对的两样本 t 检验在 R 中解析均值。

首先,确保您的数据通过同方差性测试——方差是否同质?我们在 R 中使用 Fisher 的 F 检验var.test(x, y)

CG <- subset(data, treat == "Control")
TG <- subset(data, treat != "Control")
var.test(CG, TG)

如果您的 p > 0.05,那么您可以假设两个样本的方差是同质的。在这种情况下,我们通过设置参数 var.equal = TRUE 来运行经典的学生两样本 t 检验。

agep <- t.test(CG$age, TG$age, var.equal = TRUE)

如果 F 检验返回 p 异方差)。在这种情况下,您可以运行 Welch t 统计量。只需设置var.equal = FALSE

agep <- t.test(CG$age, TG$age, var.equal = FALSE)

【讨论】:

    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多