如何提取适合R中的高斯分布的值?

fabSir

我有一个带有2列a和b的数据框X,a是类字符,b是类数字。我使用b上的fitdist(fitdistrplus软件包)函数拟合了高斯分布。

data.fit <- fitdist(x$b,"norm", "mle")

我想提取列a中位于拟合高斯分布的5%右尾的元素。
我不确定该如何进行,因为我对拟合分布的了解有限。
我是否需要将a的对应元素保留在b大于95%的值的列中?
还是拟合暗示是否已为b中的每个值创建了新值,我应该使用这些值?

谢谢

Jthorpe

通过调用,unclass(data.fit)您可以查看组成data.fit对象的所有部分,其中包括:

$estimate
     mean        sd 
0.1125554 1.2724377 

这意味着您可以通过以下方式访问估计的均值和标准差:

data.fit$estimate['sd']
data.fit$estimate['mean']

要计算拟合分布的高5个百分位数,您可以qnorm()像下面这样使用函数(q用于分位数,BTW):

threshold <- 
    qnorm(p = 0.95,
          mean=data.fit$estimate['mean'],
          sd=data.fit$estimate['sd'])

你可以x像这样子化你的data.frame

x[x$b > threshold,# an indicator of the rows to return
  'a']# the column to return

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章