【问题标题】:drawing data from a skew normal distribution using the sn package in R使用 R 中的 sn 包从偏态正态分布中绘制数据
【发布时间】:2017-01-04 19:01:02
【问题描述】:

我需要表征数据的偏态正态分布的位置、形状和尺度,然后使用这些参数从具有相同参数的偏态正态分布中随机抽取值。在过去,我使用 R 中的 sn 包来执行此操作。因此,例如,如果我有一个数据向量 v,它遵循偏正态分布,我将使用以下方法估计位置、形状和比例sn.em 函数:

require(sn)
data(ais)
v <- ais$Fe
sn.em(,v)

然后,我将使用rsnorm 函数从具有相同参数的偏斜正常 dsitrubtion 中随机绘制:

rsnorm(100, shape = x, location = y, scale = z)

这两个函数都不再存在于 sn 包中。我如何使用 sn 包中的不同函数或同时使用不同的包来做到这一点?

【问题讨论】:

  • 可能功能已被替换/重命名:您检查过reference manual at its cran page
  • @user20650 没有运气检查参考手册。似乎没有记录在任何地方。
  • 快速浏览手册,可能是 rsn (pg 20) 和 selm (pg45)
  • @user20650 直接使用rsn 函数,但不清楚selm 中的输出对应于位置(xi)、比例(omega)和倾斜(@987654337) @) 运行rsn 函数所需的参数。
  • 是的,不确定,我只看到了 selm,因为我注意到线性模型和 mle,乍一看,它似乎在正确的球场 sn.em。我要做的就是阅读手册以确保 sn.em 没有被弃用/替换/改进,如果不清楚,请给维护者发电子邮件询问为什么删除了该功能。 (因为如果您想使用该功能,通常可以使用旧源加载旧包版本)

标签: r normal-distribution skew sn


【解决方案1】:

使用“sn”包中的 sn.mple() 函数。对于您的示例,您可以使用

cp.est <- sn.mple(y=v,opt.method = "nlminb")$cp 
dp.est <- cp2dp(cp.est,family="SN")
dp.est
       xi     omega     alpha 
20.244158 73.840301  9.142412 

要从 SN 分发中抽取样本,请使用同一包中的 rsn() 函数。例如,

rsn(n=100, xi=20.24, omega=73.84, alpha=9.14)

【讨论】:

    猜你喜欢
    • 2015-01-04
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 2021-09-19
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多