r - 尝试编写一个从两个样本中模拟单个 t 统计量的函数
问题描述
我正在尝试编写自己的函数,该函数从两个相同大小的样本中模拟 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)):尝试应用非函数
解决方案
你想做什么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 检验。上面的代码正是这样做的。
推荐阅读
- vuejs2 - 如何在 Tailwind CSS 中进行宽度转换?
- python - 如何修复:“ModuleNotFoundError:没有名为‘tensorflow.contrib’的模块”
- swift - 从 UIViewController 向 UITableViewController 发送数据时出现问题
- ruby-on-rails - spree_paypal_express - Spree::Admin::PaymentsControllerDecorator (NameError)
- android - 在哪里可以找到更改 Android-Studio 中标题栏外观的选项?(文字颜色、文字对齐方式等)
- c# - 将多个键映射到一个值
- laravel - 如何让页面显示 Nova 中的所有关系
- java - 为什么在使用 try 块时必须附加带有 throws Exception 的方法签名?
- html - 使用 HTML5 输入模式强制执行有效的主机名
- ruby-on-rails - 我运行了“Rails 控制台”,我的控制台中的输出与我正在阅读的教科书中的控制台输出不匹配