Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用R写自己的测试(平均测试)_R_Stochastic - Fatal编程技术网

用R写自己的测试(平均测试)

用R写自己的测试(平均测试),r,stochastic,R,Stochastic,我需要在R中写一个自己的测试,借助于两个未知分布的随机变量X和Y的给定测试统计量的平均值 我得到以下代码: mean.test <- function(x, y, B=10000, alternative=c("two.sided","less","greater")) { p.value <- 0 alternative <- match.arg(alternative) s<-replicate(B, (mean(sample(c(x,y), B, replace

我需要在R中写一个自己的测试,借助于两个未知分布的随机变量X和Y的给定测试统计量的平均值

我得到以下代码:

mean.test <- function(x, y, B=10000,
alternative=c("two.sided","less","greater"))
{

p.value <- 0
alternative <- match.arg(alternative)

s<-replicate(B, (mean(sample(c(x,y), B, replace=TRUE))-mean(sample(c(x,y), B, replace=TRUE)))) # random samples of test statistics
t <- mean(x) - mean(y) #teststatistics t    
p.value <- 2 * (1- pnorm(mean(s)))   #try to calculate p value 

data.name <- deparse(substitute(c(x,y)))
names(t) <- "difference in means"
zero <- 0
names(zero) <- "difference in means"
return(structure(list(statistic = t, p.value = p.value,
method = "mean test", data.name = data.name,
observed = c(x,y), alternative = alternative,
null.value = zero),
class = "htest"))
}
应输出:

mean test
data: c(rnorm(100, 50, 4), rnorm(100, 51, 5))
difference in means = -2.0224, p-value = 0.0011
alternative hypothesis: true difference in means is less than 0
但它输出:

mean test

data:  c(rnorm(100, 50, 4), rnorm(100, 51, 5))
difference in means = -0.68157, p-value = 1
alternative hypothesis: true difference in means is less than 0

我确信我计算p值的方法是错误的。此外,在本例中,相互减去的平均值是错误的,但在本练习的其他示例中是正确的。对于如何计算p值,我真的很困惑。如何计算?

您对
p值的计算不应该依赖于
备选方案吗?
?我只知道,当备选方案设置为较小或较大时,计算结果不同。我只是不知道怎么做。你的统计书怎么说?它通常相当明确地给出。在试图用代码实现测试之前,您需要了解它。例如,方差不应该起作用吗?我的统计书说,p值是用分位数()计算的,如果满足H0,如果满足备选方案,那么它的计算方式是p值=2*(1-F_N(0,1))(abs(t(X,Y))。我已经实现了这一点,但它并不像你看到的那样工作,其中F_N(0,1))是标准分布函数,t(X,Y)检验统计。我认为你的检验统计是错误的。它太简单了。它不应该包括对共同方差的估计吗(例如合并方差)或者某种标准误差的估计?假设两种分布的方差都为1,那么你所得到的几乎是有效的。
p值的计算不应该依赖于
alternative
?我只知道,当alternative设置为更小或更大时,计算结果是不同的。我只是不知道如何计算。Wh你的统计书是怎么说的?它通常是相当明确的。在你试图用代码实现它之前,你需要理解一个测试。例如,方差不应该起作用吗?我的统计书说,p值是用分位数()计算的,如果满足H0,如果满足替代值,那么它的计算方式是p值=2*(1-F_N(0,1))(abs(T(X,Y)))。我已经实现了这一点,但它不起作用,正如你所看到的,其中F_N(0,1))是标准分布函数,T(X,Y)是检验统计量。我认为你的检验统计量是错误的。它太简单了。它不应该包括对共同方差的估计(例如,合并方差)或者某种标准误差的估计?在假设两个分布的方差都为1的情况下,你所得到的几乎是有效的。
mean test

data:  c(rnorm(100, 50, 4), rnorm(100, 51, 5))
difference in means = -0.68157, p-value = 1
alternative hypothesis: true difference in means is less than 0