如何提取适合 R 中高斯分布的值?
How to extract values fitted to a gaussian distribution in R?
我有一个包含 2 列 a 和 b 的数据框 X,a 是 class 字符,b 是 class 数字。
我在 b 上使用 fitdist(fitdistrplus 包)函数拟合高斯分布。
data.fit <- fitdist(x$b,"norm", "mle")
我想提取 a 列中位于拟合高斯分布右尾 5% 的元素。
我不知道如何进行,因为我对拟合分布的了解有限。
是否需要保留a列中b大于95%的对应元素?
或者拟合是否意味着已经为 b 中的每个值创建了新值,我应该使用这些值?
谢谢
通过调用unclass(data.fit)
你可以看到组成data.fit
对象的所有部分,包括:
$estimate
mean sd
0.1125554 1.2724377
这意味着您可以通过以下方式访问估计的均值和标准差:
data.fit$estimate['sd']
data.fit$estimate['mean']
要计算拟合分布的第 5 个百分位数,您可以使用 qnorm()
函数(q 代表分位数,顺便说一句),如下所示:
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
我有一个包含 2 列 a 和 b 的数据框 X,a 是 class 字符,b 是 class 数字。 我在 b 上使用 fitdist(fitdistrplus 包)函数拟合高斯分布。
data.fit <- fitdist(x$b,"norm", "mle")
我想提取 a 列中位于拟合高斯分布右尾 5% 的元素。
我不知道如何进行,因为我对拟合分布的了解有限。
是否需要保留a列中b大于95%的对应元素?
或者拟合是否意味着已经为 b 中的每个值创建了新值,我应该使用这些值?
谢谢
通过调用unclass(data.fit)
你可以看到组成data.fit
对象的所有部分,包括:
$estimate
mean sd
0.1125554 1.2724377
这意味着您可以通过以下方式访问估计的均值和标准差:
data.fit$estimate['sd']
data.fit$estimate['mean']
要计算拟合分布的第 5 个百分位数,您可以使用 qnorm()
函数(q 代表分位数,顺便说一句),如下所示:
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