学生 t.test 为中位数(不是平均数)
Student t.test for the median (not the mean)
我有一个包含一列工资的数据框。我想计算中值附近 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
谢谢
如果你的数据是成对的,你可以做一个简单的符号测试,这本质上是一个二项式测试。您会看到有多少对中一个群体的样本大于另一个群体的样本,然后对 success/failure 比率进行测试。
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 检验解释为中位数的差异,则必须假设这两个总体具有相同的形状,并且只是位置发生了变化。
一种完全不同的方法是 bootstrap 中位数的差异。
天真的实现:
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")
我有一个包含一列工资的数据框。我想计算中值附近 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
谢谢
如果你的数据是成对的,你可以做一个简单的符号测试,这本质上是一个二项式测试。您会看到有多少对中一个群体的样本大于另一个群体的样本,然后对 success/failure 比率进行测试。
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 检验解释为中位数的差异,则必须假设这两个总体具有相同的形状,并且只是位置发生了变化。
一种完全不同的方法是 bootstrap 中位数的差异。
天真的实现:
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")