r - 如何在R中生成具有偏态正态分布的随机数?
问题描述
我正在尝试生成 1000 组 130 个随机数,这些随机数符合以下数字的偏态正态分布:
-10.4, -9.3, -6.8, -4.8, -5.7, 5.8, -4.5, -3.4, -2, 0.3, -0.4, -4.1, -6.9, -5.9, -2.5, -2, -2.8, -3.2, -4.4, -2, -1.4, 0.9, -1, -4.1, -11.7, 0.1
这些数字的平均值为 -3.99,标准差为 3.17,偏斜为 -0.71,峰度为 0.22。
为了得到我的 1000 组 130 个随机数,我试过这个:
install.packages("sn")
library(sn)
p <- rmsn(n = 130,
xi = rep(-3.99, 1000),
Omega = diag(1000),
alpha = rep(-0.71, 1000),
tau = -0.71)
我得到 130 个随机数的 1000 个向量,均值为 -3.99。但是,它们没有偏斜 -0.71,我不知道如何将标准差设置为 3.17 或将峰度设置为 0.22。
任何帮助将非常感激!
解决方案
使用该函数cp2dp
,您可以将总体均值、总体标准差和总体偏度转换为参数和xi
偏正态分布。omega
alpha
library(sn)
params <- cp2dp(c(-3.99, 3.17, -0.71), "SN")
sims <- replicate(1000, rsn(130, dp = params))
SN 系列仅支持 -0.99527 和 0.99527 之间的偏差。在此范围之外,需要 ST 系列,这需要第四个变量:峰度:
library(sn)
params <- cp2dp(c(-3.99, 3.17, -1.71, 2.37), "ST")
sims <- replicate(1000, rst(130, dp = params))
请注意在这种情况下使用 rst 而不是 rsn。
推荐阅读
- python - 多行列表,索引为 float64 类型
- python - 有没有办法从 FileListView 中选择一首歌曲(通过单击),将其加载到 Soundloader 并使用 PLAY 按钮播放?
- r - 华夫饼图不显示一组
- spring-boot - 如何在春季获取当前用户ID?
- azure - 向 Azure 应用程序授予管理员同意以获取 GraphAPI 权限 Powershell
- python - 为什么每个绘图命令(即标签、标题)在 spyder 中开始一个新绘图而不是出现在一个图表上?
- google-apps-script - 加拿大免费电话号码被标记为美国
- meteor - Meteor 安装 - standard-minifier-css 需要 2 多个小时才能安装
- python - JSON 未加载到 pandas,JSONDecodeError:期望值
- python - 用 Matplotlib 不代表半个像素