【问题标题】:Robust Independent T-test稳健的独立 T 检验
【发布时间】:2020-07-26 16:35:22
【问题描述】:

这是我第一次提出问题,因此对于任何格式问题或任何难以回答的问题,我深表歉意。请让我知道我需要添加什么才能回答问题。

我正在尝试比较 2 个不相等的组大小之间的差异(一个 ~ 97 另一个 ~ 714)。差异很大的原因是我正在查看一个班级完成的程序,以查看它是否与以前班级中发生的情况有显着不同。我最近一直在阅读可靠的统计数据,并决定在 R-Studio 中使用 WRS2 包中的 yuen bootstrap 进行更有效的比较,尤其是在样本量不同的情况下。

我的公式是

yuenbt(DataExample$PT500 ~ DataExample3$ClassPT500, tr = 0.2, nboot = 599, side = TRUE)

然后它返回

Call:
yuenbt(formula = DataExample$PT500 ~ DataExample$ClassPT500,
tr = 0.2, nboot = 599, side = TRUE)

Test statistic: NA (df = NA), p-value = 0

Trimmed mean difference: -65
95 percent confidence interval:
NA NA

NA 对我也尝试过的其他变量的回报,或者在某些情况下置信区间将显示 INF。任何想法为什么会发生这种情况(样本量差异如此之大?)以及关于下一步最佳步骤的建议将不胜感激。

这是一个数据示例:

structure(list(PrePT500 = c(74, 105, 121, 128), PostPT500 = c(191, 
264, 327, 314), PT500 = c(117, 159, 206, 186), PrePullups = c(0, 
NA, NA, 2), PostPullups = c(3, NA, NA, 3), Pullups = c(3, NA, 
NA, 1), PreSitups = c(46, 40, 25, 33), PostSitups = c(41, 61, 
39, 49), Situps = c(-5, 21, 14, 16), PreMC = c(8, 16, 29, 19), 
    PostMC = c(41, 45, 60, 60), MC = c(33, 29, 31, 41), PrePushups = c(20, 
    16, 28, 30), PostPushups = c(40, 47, 50, 50), Pushups = c(20, 
    31, 22, 20), Pre1.5 = c(1048, 917, 902, 905), Post1.5 = c(846, 
    748, 696, 760), X1.5 = c(-202, -169, -206, -145), Pre220 = c(43, 
    50, 41, 45), Post220 = c(39, 40, 32, 34), X220 = c(-4, -10, 
    -9, -11), PreAgility = c(20.96, NA, 21.1, 19.88), PostAgility = c(19.69, 
    NA, 18.8, 20.79), Agility = c(-1.27, NA, -2.3, 0.91), PreBD = c(6.17, 
    7.82, 5.08, 7), PostBD = c(5, 4.87, 4.68, 6.2), BD = c(-1.17, 
    -2.95, -0.4, -0.8), PreCL = c(7.05, 13.6, 14.4, 8.8), PostCL = c(8.1, 
    8.9, 8.27, 7.6), CL = c(1.05, -4.7, -6.13, -1.2), PreSW = c(10.2, 
    NA, 20.34, 8), PostSW = c(11.4, NA, 9.3, 7.4), SW = c(1.2, 
    NA, -11.04, -0.6), Pre500 = c(115, 128, 107, 114), Post500 = c(105, 
    112, 93, 99), X500 = c(-10, -16, -14, -15), PreTotal = c(446, 
    91, 255, NA), PostTotal = c(493, 439, 503, NA), Total = c(47, 
    348, 248, NA), ClassPrePT500 = c(338, 213, 215, 243), ClassPostPT500 = c(430, 
    396, 333, 314), ClassPT500 = c(92, 183, 118, 71), ClassPrePullups = c(6, 
    5, 2, 0), ClassPostPullups = c(13, 7, 15, 0), ClassPullups = c(7, 
    2, 13, 0), ClassPreSitups = c(59, 42, 45, 53), ClassPostSitups = c(75, 
    70, 51, 53), ClassSitups = c(16, 28, 6, 0), ClassPreMC = c(60, 
    43, 31, 48), ClassPostMC = c(60, 60, 31, 60), ClassMC = c(0, 
    17, 0, 12), ClassPrePushups = c(50, 37, 26, 30), ClassPostPushups = c(50, 
    50, 47, 34), ClassPushups = c(0, 13, 21, 4), ClassPre1.5 = c(803, 
    810, 803, 741), ClassPost1.5 = c(700, 690, 664, 661), Class1.5 = c(-103, 
    -120, -139, -80), ClassPre220 = c(32, 41, 31, 40), ClassPost220 = c(31, 
    33, 30, 37), Class220 = c(-1, -8, -1, -3), ClassPreAgility = c(19, 
    23, 18, 22.1), ClassPostAgility = c(16.4, 18, 16.5, 20.3), 
    ClassAgility = c(-2.6, -5, -1.5, -1.8), ClassPreBD = c(6.4, 
    8.5, 5.8, 11.2), ClassPostBD = c(5.3, 5.8, 5.5, 7.5), ClassBD = c(-1.1, 
    -2.7, -0.3, -3.7), ClassPreCL = c(7.8, 9.3, 7.3, 9.6), ClassPostCL = c(7.6, 
    7.4, 7.4, 9.2), ClassCL = c(-0.2, -1.9, 0.100000000000001, 
    -0.4), ClassPreSW = c(8.5, 8.4, 7.7, NA), ClassPostSW = c(7.8, 
    8.1, 7.6, 8), ClassSW = c(-0.7, -0.300000000000001, -0.100000000000001, 
    NA), ClassPre500 = c(102, 104, 100, 108), ClassPost500 = c(94, 
    88, 98, 101), Class500 = c(-8, -16, -2, -7), ClassPreTotal = c(495, 
    418, 528, 264), ClassPostTotal = c(561, 539, 562, 482), ClassTotal = c(66, 
    121, 34, 218)), row.names = c(NA, -4L), class = c("tbl_df", 
"tbl", "data.frame"))

提前感谢您的帮助。

【问题讨论】:

  • 您好 Tibial,欢迎来到 Stack Overflow。如果您使用dput(DataExample[1:10,]) 为每个组提供至少一个数据样本,那么提供帮助会容易得多。您可以编辑您的问题并粘贴输出。您可以用三个反引号 (```) 将其括起来以获得更好的格式。请参阅How to make a reproducible example 了解更多信息。
  • @Ian Campbell,根据您的要求更新了帖子。如果还有其他事情,请告诉我!
  • 当您执行 yuenbt(DataExample$PT500 ~ DataExample3$ClassPT500 ...) 时,右侧的变量需要成为一个因素,将您的因变量分组
  • 在您提供的示例数据集中,DataExample3$ClassPT500 看起来是连续的,您无法对其进行测试。你测试错列了吗?
  • @StupidWolf 您的两个回复都为我解决了这个问题!我没有发现它必须是右边的一个因素,谢谢你的帮助!

标签: r statistics t-test


【解决方案1】:

R 函数 yuenbt(x, y, tr=0.2, alpha=0.05, nboot=599, side=F) 使用 bootstrap-t 方法计算 μt 1 − μt 21 − α 置信区间,其中默认修剪量 (tr) 为 0.2α 的默认值为 0.05,并且默认值 对于nboot (B) 是 599。到目前为止,模拟表明在概率覆盖率方面,使用 B > 599 时使用 α = 0.05 几乎没有优势。但是,当α < 0.05 时没有推荐的B 选择,因为对于这种特殊情况下bootstrap-t 的执行情况知之甚少。最后,side 的默认值为FALSE,表示要使用等尾双边置信区间。使用side=TRUE 会得到对称的两侧置信区间。

试试:

yuenbt(DataExample$PT500, DataExample3$ClassPT500, tr = 0.2, nboot = 599, side = TRUE)

【讨论】:

  • 嗨@supcumps,OP 得到一个 NA,因为连续变量被错误地用作分组因子。见 cmets。设置参数如何解决问题?
  • 嗨,将比较模式从“~”更改为“,”。似乎可以比较两组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2022-11-02
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
相关资源
最近更新 更多