t、 当分配给列表对象时,R中的测试会给出奇怪的结果
我定义了两个明显不同的向量:t、 当分配给列表对象时,R中的测试会给出奇怪的结果,r,statistics,R,Statistics,我定义了两个明显不同的向量: > x1 = c(3, 4, 3, 4) > x2 = c(9, 8, 9, 7) 如果我使用t.test执行t-test,而不将其分配给对象名,则会得到预期的结果。例如: > t.test(x1, x2) # Gives the console output: Welch Two Sample t-test data: x1 and x2 t = -8.4971, df = 4.927, p-value = 0.000399 a
> x1 = c(3, 4, 3, 4)
> x2 = c(9, 8, 9, 7)
如果我使用t.test执行t-test,而不将其分配给对象名,则会得到预期的结果。例如:
> t.test(x1, x2)
# Gives the console output:
Welch Two Sample t-test
data: x1 and x2
t = -8.4971, df = 4.927, p-value = 0.000399
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-6.193426 -3.306574
sample estimates:
mean of x mean of y
3.50 8.25
这给出了一个大的t值和一个小的p值,表明这两个向量具有不同的平均值,正如预期的那样。但是,如果我为对象名称指定了一个t-test,以通过以下方式创建列表对象:
mean.diff = mean(x1) - mean(x2)
ttst = t.test(
x = x1,
y = x2,
alternative = "two.sided",
mu = mean.diff,
paired = FALSE,
var.equal = FALSE,
conf.level = 0.95
)
结果总是t值为零,p值为1,这表明这两个向量是相同的。不管向量是什么,这都会发生,我只是选择x1和x2作为例子
请问我的代码有什么问题导致了这个问题?谢谢您的帮助。您得到的结果与作业无关:它是由参数
mu=mean.diff
引起的
根据?t.test
,mu为
一个数字,指示平均值的真实值(如果您正在执行两个样本测试,则表示平均值的差异)
由于您将其设置为均值差异的实际值,因此结果t将始终等于零。在第二个示例中,您正在测试均值差异是否不同于
均值.diff
;由于您将mean.diff
计算为x1
和x2
的均值差(mean.diff=mean(x1)-mean(x2)
),因此t统计量正好为0,相应的p值最大(即等于1)。因此,我们不能拒绝零假设H0,其中H0对应于均值差等于mean.diff
,因此总结一下,在这种情况下,不应使用mu
,因此取默认值0?然后t.test
测试x1
和x2
的平均值之间的差异是否不同于mu=0
?这很有道理,谢谢你的回答@GMSL“所以总结一下,在这种情况下,不应该使用mu”嗯,它总是取决于您正在测试什么。如果要测试两个样本均值是否不同mu1!=mu2
您将使用形式为t检验(x1,x2)
的双面双样本t检验;如果要测试样本平均值中的差异是否不同于预先指定的差异mu1-mu2!=mu
您将使用形式为t.test(x1,x2,mu=mu)
的双面双样本t检验。