r - 使用 fitdist 在 R 中拟合 Pearson Type III

标签 r fitdistrplus

我已经为我的数据拟合了许多分布,但我在为数据拟合 Pearson III 型分布时遇到了困难。我还使用 plotdist 函数来查找起始值或初始值,以便使用迭代方法拟合分布。 The plots obtained from plotdist shows that the plot is a good fit to data at the given starting values但是 fitdist 函数不起作用并给出错误代码 100。我还研究了堆栈溢出中关于拟合 log Pearson Type III 分布的问题和答案并应用了代码,但是我又在运行 fitdist 函数时遇到问题并出现错误代码再次为 100。可以从以下链接下载数据。

Lheadway <- pvr$headway+0.0000001

m <- mean(Lheadway)
v <- var(Lheadway)
s <- sd(Lheadway)
g <- e1071::skewness(Lheadway, type=1)

n <- length(Lheadway)
g <- g*(sqrt(n*(n-1))/(n-2))*(1+8.5/n)


my.shape <- (2/g)^2
#my.scale <- sqrt(v)/sqrt(my.shape)*sign(g) # modified as recommended by Carl Schwarz
my.scale <- sqrt(v)/sqrt(my.shape)*sign(g)
my.location <- m-sqrt(v * my.shape)

my.param <- list(shape=my.shape, scale=my.scale, location=my.location)


dPIII<-function(x, shape, location, scale) PearsonDS::dpearsonIII(x, shape, location, scale, log=FALSE)
pPIII<-function(q, shape, location, scale) PearsonDS::ppearsonIII(q, shape, location, scale, lower.tail = TRUE, log.p = FALSE)
qPIII<-function(p, shape, location, scale) PearsonDS::qpearsonIII(p, shape, location, scale, lower.tail = TRUE, log.p = FALSE)

fitPIII <- fitdistrplus::fitdist(Lheadway, distr="PIII", method="mle", start=my.param)

plot(fitPIII)

https://ptagovsa-my.sharepoint.com/:x:/g/personal/kkhan_tga_gov_sa/EfzCE5h0jexCkVw0Ak2S2_MBWf3WUywMd1izw41r0EsLeQ?e=EiqWDc

数据位于

最佳答案

该函数只需将方法从 mle 更改为 mse 或 mge 并从代码中删除参数即可。

关于r - 使用 fitdist 在 R 中拟合 Pearson Type III,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64193872/

相关文章:

r - 可以获得非标准评估以在 dplyr 中为 filter_ 和 count_ 但不是 distinct_ 工作

linux - 如何在 R 中找到以 system 或 system2 启动的子进程的 pid?

r - 如何复制和粘贴带有不平衡引号的字符串?

R:使用fitdistrplus在离散数据的直方图上拟合曲线

r - 在 R 中使用 fitdist 将数据拟合到 Gumbel 分布时出错

r - 选择不同 data.frame 列的子集

r - 使用 RPostgreSQL 从 R 中的数据框创建临时表

r - 将泊松二项式分布拟合到数据

r - mle 无法估计参数,错误代码为 7

r - 使用 fitdistrplus 包拟合任意分布时出现问题