我必须使用Johnson分布来查看在修改偏斜度值(在下面的代码中为.3)时有哪些不同的方法:

library(moments)
library(SuppDists)

k <- 500

parms <-JohnsonFit(c(0, 1, .3, 6))
sJohnson(parms)
poblacion <- rJohnson(1000, parms)

mu.pob <- mean(poblacion)
sd.pob <- sd(poblacion)

p <- vector(length=k)
for (i in p){
  muestra <- poblacion[rJohnson(1000, parms)]
  p[i] <- t.test(muestra, mu = mu.pob)$p.value
}

a_teo = 0.05
a_emp = length(p[p<a_teo])/k
sprintf("alpha_teo = %.3f <-> alpha_emp = %.3f", a_teo, a_emp)

如果我把0.3改为1,我得到了不同的平均值和标准差,但我得到了完全相同的阿尔法经验值:1.000.我的代码出了什么问题?

推荐答案

您的代码中有一些错误.

  • 应该是for(i in seq.int(k)),而不是for(i in p)
  • 你抽样/重抽样的方式是错误的,poblacion[rJohnson(1000, parms)].索引rJohnson不是整数,也不会索引ppoblacion.正确的方式应该是下面for循环中的任何方式.
  • 虽然你的a_emp的计算没有错,但太复杂了,请看等价的mean(p < a_teo).

以下是已更正的完整代码.

library(moments)
library(SuppDists)

set.seed(2024)

k <- 500

parms <-JohnsonFit(c(0, 1, .3, 6))
# sJohnson(parms)
poblacion <- rJohnson(1000, parms)

mu.pob <- mean(poblacion)
sd.pob <- sd(poblacion)

p <- numeric(k)
for(i in seq.int(k)){
  # muestra <- sample(poblacion, 1000, TRUE)
  muestra <- rJohnson(1000, parms)
  p[i] <- t.test(muestra, mu = mu.pob)$p.value
}

a_teo <- 0.05
a_emp <- length(p[p<a_teo])/k
mean(p < a_teo)
#> [1] 0.042
sprintf("alpha_teo = %.3f <-> alpha_emp = %.3f", a_teo, a_emp)
#> [1] "alpha_teo = 0.050 <-> alpha_emp = 0.042"

创建于2024-03-10,共reprex v2.1.0

R相关问答推荐

IQR()和stats之间四分位距计算的差异::分位数()在R和' ggpubr '

有没有方法将paste 0功能与列表结合起来?

将一个载体的值相加,直到达到另一个载体的值

R Lubridate:舍入/快照日期时间到一天中最近的任意时间?

x[[1]]中的错误:脚注越界

次级y轴R gggplot2

derrr summarise每个组返回多行?

在R中替换函数中的特定符号

如何在ggplot图中找到第二轴的比例

使用范围和单个数字将数字与字符串进行比较

为什么我使用geom_density的绘图不能到达x轴?

条形图顶部与其错误条形图不对齐

QY数据的处理:如何定义QY因素的水平

在带有`R`中的`ggmosaic`的马赛克图中使用图案而不是 colored颜色

如何从向量构造一系列双边公式

扩展R中包含列表的数据框

在R中使用列表(作为tibble列)进行向量化?

根据r中另一个文本列中给定的范围对各列求和

使用&Fill&Quot;在gglot中创建 colored颜色 渐变

将`magick`对象转换为原始向量