如何提取拟合到 R 中的高斯分布的值



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

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

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

谢谢

通过调用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'])

你可以像这样对 data.frame x进行子集:

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

最新更新