提问人:Renata Dis 提问时间:10/1/2022 更新时间:10/1/2022 访问量:114
在 R 中估计帕累托类型 2 的参数
Estimating the parameters for a Pareto type 2 in R
问:
我有一个从 0 到 1(百分比数据,包括 0)的连续变量,我想确定最佳分布来对其进行建模。我在 R-Studio 上,这里有数据问题。请注意,大约 27% 的观测值为 0,我确实计划在进行过程中探索零通货膨胀。
我检查了直方图和 ecdf(见下文)以了解我正在处理的内容。Fitdistrplus 给了我“beta”,而 gamlss 给了我一个帕累托 2 型,我不是很熟悉。
我已经确定了 beta 分布的参数并拟合了它,使用 KS 测试了其他一些分布,但停留在帕累托类型 2 上。问题是:我所有估计位置和规模的尝试都失败了。据我所知,这是因为数据集中的零。如果我向整个数据集添加少量(即 0.0001),它就会起作用,但老实说,我不确定这是否是一个好的解决方案,并且会使将其与其他任何东西进行比较成为活生生的地狱。我尝试了 EnvStats、VGAM、CaDENCE,但都给了我错误。因此,我谦虚地来到这里,希望有人可以提出另一种选择来估计该数据集的帕累托类型 2 参数。
答:
1赞
Emmanuel Hamel
10/1/2022
#1
您可以考虑以下方法:
library(DEoptim)
df <- read.csv("percentData.csv")
data <- unlist(df)
log_Lik <- function(data, param)
{
x <- data
k <- param[1]
s <- param[2]
log_Lik <- sum(log(k/(s + x) * (s / (s + x)) ^ k))
return(-log_Lik)
}
obj_Res <- DEoptim(fn = log_Lik, lower = c(0, 0), upper = c(1000, 1000), data = data, control = list(parallelType = 1))
obj_Res$optim$bestmem
评论
0赞
Renata Dis
10/3/2022
感谢您向我介绍 Deoptim 包!实时节省时间!
0赞
Emmanuel Hamel
10/3/2022
DEoptim 是一个非常强大的软件包,用于优化多变量函数。根据我的个人经验,它是我用过的最强大的优化算法。它之所以稳健,部分原因是它不是基于衍生品。
评论