rplcon()
パッケージ内の関数を使用していくつかの確率変数を生成しますpoweRlaw
data <- rplcon(1000,10,2)
ここで、データに最もよく適合する既知の分布を知りたいと思います。ログノルム?経験?ガンマ?べき法則?指数カットオフのべき乗則?
だから私fitdist()
はパッケージで関数を使用しますfitdistrplus
:
fit.lnormdl <- fitdist(data,"lnorm")
fit.gammadl <- fitdist(data, "gamma", lower = c(0, 0))
fit.expdl <- fitdist(data,"exp")
CRAN Task View: Probability Distributionsによると、べき乗則分布と指数カットオフを伴うべき乗則は基本確率関数ではないため、次の例 4 に基づいてべき乗則の d,p,q 関数を記述します。?fitdist
dplcon <- function (x, xmin, alpha, log = FALSE)
{
if (log) {
pdf = log(alpha - 1) - log(xmin) - alpha * (log(x/xmin))
pdf[x < xmin] = -Inf
}
else {
pdf = (alpha - 1)/xmin * (x/xmin)^(-alpha)
pdf[x < xmin] = 0
}
pdf
}
pplcon <- function (q, xmin, alpha, lower.tail = TRUE)
{
cdf = 1 - (q/xmin)^(-alpha + 1)
if (!lower.tail)
cdf = 1 - cdf
cdf[q < round(xmin)] = 0
cdf
}
qplcon <- function(p,xmin,alpha) alpha*p^(1/(1-xmin))
最後に、以下のコードを使用してパラメーターxmin
とalpha
べき乗則を取得します。
fitpl <- fitdist(data,"plcon",start = list(xmin=1,alpha=1))
しかし、それはエラーをスローします:
<simpleError in optim(par = vstart, fn = fnobj, fix.arg = fix.arg, obs = data, ddistnam = ddistname, hessian = TRUE, method = meth, lower = lower, upper = upper, ...): function cannot be evaluated at initial parameters>
Error in fitdist(data, "plcon", start = list(xmin = 1, alpha = 1)) :
the function mle failed to estimate the parameters,
with the error code 100
Google と stackoverflow で検索しようとすると、同様のエラーの質問がたくさん表示されますが、読んで試しても解決策がありません。パラメーターを取得するために正しく完了するにはどうすればよいですか? 私に好意を寄せてくれたみんなに感謝します!