【问题标题】:Trying to write a function that simulates a single t-statistic from two samples尝试编写一个从两个样本中模拟单个 t 统计量的函数
【发布时间】:2019-05-22 16:43:46
【问题描述】:

我正在尝试编写自己的函数来模拟两个大小相等的样本的 t-stat。

cntrl <- c(8.4,8.1,5.1,7.6,4.7,10.7,5.7,4.1,8.1,6.8)
strv <- c(12.4,15.8,11.7,8.6,12.6,11.1,10.5,7.3,7.2,10.8)

我将 cntrl 放入示例中,但我将 strv 放在哪里?

single_rt <- function(size1, size2) {x1 <-sample(x=cntrl, size =size1, replace = TRUE) (mean(x1)-mean(x2))/sqrt((var(x1)/size2) +(var(x2)/size1))}

my_rt <- function(n, size1, size2) {replicate(n=n, expr = single_rt(size1=size1, size2 = size2))}

num_reps <- 10000; N1 <-10; N2 <- 10

t.stats <-my_rt(n=num_reps, size1 = N1, size2 = N2)

我得到这个错误代码

样本错误(x = cntrl, size = size1, replace = TRUE)(mean(x1) - mean(x2)) : 尝试应用非函数

【问题讨论】:

  • 您需要将第一个函数的以(mean(x1)...开头的部分放在一个新行上,或者在它之前添加一个分号
  • 我做到了,它成功了,但我应该把我的另一个向量放在哪里?
  • > single_rt t.stats
  • 后面的答案给你解决方案?

标签: r simulation montecarlo


【解决方案1】:

你想用 rnorm 做什么?

一种可能性是:

single_rt <- function(size1, size2){
  x1 <- rnorm(n = size1)
  x2 <- rnorm(n = size2)
  return((mean(x1)-mean(x2))/sqrt((var(x1)/size2) + (var(x2)/size1)))}

my_rt <- function(n, size1, size2, x1, x2){
  replicate(n=n, expr = single_rt(size1=size1, size2 = size2))}
num_reps <- 10000
N1 <- 10
N2 <- 10

t.stats <-my_rt(n=num_reps, size1 = N1, size2 = N2)

如果您仔细查看 rnorm 函数,它需要 3 个参数而不是向量。如果你想用噪声扰乱你的样本,你应该做不同的事情。

如果你想使用我建议你的sample 函数,下面的代码是你应该使用的:

single_rt_bis <- function(size1, size2, x1 = x1, x2 = x2){
  x1 <- sample(x=x1, size = size1, replace = TRUE)
  x2 <- sample(x=x2, size = size2, replace = TRUE)
  return((mean(x1)-mean(x2))/sqrt((var(x1)/size2) + (var(x2)/size1)))}


my_rt <- function(n, size1, size2, x1, x2){
  replicate(n = n, expr = single_rt_bis(size1 = size1, size2 = size2, x1 = x1, x2 = x2))}

num_reps <- 10000
N1 <- 10
N2 <- 10

t.stats <-my_rt(n = num_reps, size1 = N1, size2 = N2, x1 = cntrl, x2 = strv)

实际上,您要做的似乎是使用boostrap来模拟相同样本的不同t检验。上面的代码正是这样做的。

【讨论】:

    猜你喜欢
    • 2019-09-24
    • 2017-06-13
    • 2017-01-11
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 2020-06-25
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多