【问题标题】:Student t.test for the median (not the mean)学生 t.test 中位数(不是平均值)
【发布时间】:2019-01-08 00:01:06
【问题描述】:

我有一个包含工资列的数据框。我想计算中值附近 97% 的置信区间。 t.test 计算平均值而不是中位数。 你知道我该怎么做吗? 这是我的专栏中 t.test 的输出:

t.test(Salary)
One Sample t-test
data:  Salary
t = 26.131, df = 93, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
37235.65 43360.56
sample estimates:
mean of x 
40298.1 

虽然中位数是:

median(na.omit(Salary))
[1] 36000

谢谢

【问题讨论】:

  • 所以您想要总体中位数的置信区间为 97%?或者您是否正在寻找一个包含 97% 的数据的区间,这些数据以某种方式使用了中位数?
  • @Dason 第一个,这是流行中位数的 97% 置信区间
  • rcompanion.org/handbook/E_04.html 在谷歌搜索“R 置信区间中位数”后
  • 你假设一个正态分布;总体中位数与总体均值相同。
  • 我建议查看Cross Validated,这是一个统计 SE 站点,那里有很多关于非参数检验(例如 Wilcoxon 或置换检验)的帖子。这是从那里搜索的一篇文章:stats.stackexchange.com/questions/81864/…

标签: r statistics analysis median


【解决方案1】:

如果您的数据是成对的,您可以进行简单的符号检验,这本质上是一个二项式检验。您会看到有多少对中一个群体的样本大于另一个群体,然后对成功/失败率进行测试。

set.seed(1)

x2 <- runif(30, 0.5, 2)^2
y2 <- runif(30, 0.5, 2)^2 + 0.5

bino <- x2 < y2

binom.test(sum(bino), length(bino), conf.level=0.97)

如果您的数据未配对,您可以执行 Mann-Whitney 检验,这是对等级的检验。您会看到一个总体中有多少样本大于另一总体中的多少样本,反之亦然。

x <- c(80, 83, 189, 104, 145, 138, 191, 164, 73, 146, 124, 181)*1000
y <- c(115, 88, 90, 74, 121, 133, 97, 101, 81)*1000

wilcox.test(x, y, conf.int=TRUE, conf.level=0.97)

Mann-Whitney 检验还有一个配对变体,称为 Wilcoxon 符号秩检验,它可以替代简单符号检验。

wilcox.test(x2, y2, paired=TRUE, conf.int=TRUE, conf.level=0.97)

Wilcoxon 假设围绕中位数对称,而简单符号检验则不然。要记住的事情。此外,如果您想将 Mann-Whitney 检验解释为中位数的差异,您必须假设两个总体具有相同的形状,并且只有位置发生了变化。


一种完全不同的方法是引导中位数的差异。
一个幼稚的实现:

set.seed(1)
rr <- replicate(
  1e3, 
  median(sample(x, length(x), replace=TRUE)) -
  median(sample(y, length(y), replace=TRUE))
)

rr <- jitter(rr, 50)
plot(density(rr))
qu <- quantile(rr, probs=c((1-0.97)/2, 1 - (1-0.97)/2))
abline(v=qu, col="blue")

【讨论】:

    猜你喜欢
    • 2021-03-16
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多