- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试估计 Weibull-Gamma 分布参数,但遇到以下错误:
"the function mle failed to estimate the parameters, with the error code 7"
我该怎么办?
Weibull-Gamma 分布
密度函数
dWeibullGamma <- function(x, alpha, beta, lambda)
{
((alpha*beta)/(lambda))*(x^(alpha-1))*(1+(1/lambda)*x^(alpha))^(-(beta+1))
}
累积分布函数
pWeibullGamma <- function(x, alpha, beta, lambda)
{
1-(1+(1/lambda)*x^(alpha))^(-(beta))
}
风险函数
hWeibullGamma <- function(x, alpha, beta, lambda)
{
((alpha*beta)/(lambda))*(x^(alpha-1))*(1+(1/lambda)*x^(alpha))^(-(beta+1))/(1+(1/lambda)*x^(alpha))^(-(beta))
}
生存函数
sWeibullGamma <- function(x,alpha,beta,lambda)
{
(1+(1/lambda)*x^(alpha))^(-(beta))
}
估计
paramWG = fitdist(data = dadosp, distr = 'WeibullGamma', start = c(alpha=1.5,beta=1,lambda=1.5), lower= c(0, 0))
summary(paramWG)
Sample:
dadosp = c(240.3,71.9,271.3, 186.3,241,253,287.4,138.3,206.9,176,270.4,73.3,118.9,203.1,139.7,31,269.6,140.2,205.1,133.2,107,354.6,277,27.6,186,260.9,350.4,242.6,292.5, 112.3,242.8,310.7,309.9,53.1,326.5,145.7,271.5, 117.5,264.7,243.9,182,136.7,103.8,188.3,236,419.8,338.6,357.7)
最佳答案
对于您的示例,算法在估计 ML 时不会收敛。将 Weibull-Gamma 分布拟合到此数据需要极高的 lambda
。值(value)。你可以通过估计 log10(lambda)
来解决这个问题而不是 lambda
.
您可以添加 lambda <- 10^lambda
在你的 4 个函数中,例如
dWeibullGamma <- function(x, alpha, beta, lambda)
{
lambda <- 10^lambda
((alpha*beta)/(lambda))*(x^(alpha-1))*(1+(1/lambda)*x^(alpha))^(-(beta+1))
}
然后,算法似乎收敛了:
library(fitdistrplus)
paramWG = fitdist(data = data, distr = 'WeibullGamma',
start = list(alpha=1, beta=1, lambda=1), lower = c(0, 0, 0))
summary(paramWG)$estimate
输出:
alpha beta lambda
2.432939 799.631852 8.680802
我们看到 lambda 的估计是 10^8.68
, 因此在不取日志时会出现收敛问题。
你也可以看看合身度如下:
newx <- 0:500
pars <- summary(paramWG)$estimate
pred <- dWeibullGamma(newx, pars["alpha"], pars["beta"], pars["lambda"])
hist(data, freq = FALSE)
lines(newx, pred, lwd = 2)
注意:也许拟合另一个分布会更有意义?
关于r - mle 无法估计参数,错误代码为 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52721871/
我想知道在数组中给出拟合参数时如何在 R 中进行最大似然估计。当参数数量很大时需要这样做。所以基本上,为了拟合数据 x 的正态分布,我想做如下事情 LL stats4::mle 注意如何 start
我想知道是否有人知道一个Python包,它实现了MLE来估计狄利克雷分布的参数。 最佳答案 Eric Suh 有一个包裹 here 。 $ pip install git+https://github
我正在使用 mle() 方法在 R 中手动估计具有多个预测变量的 logit 回归。我在传递函数 calcLogLikelihood 中计算对数似然所需的附加参数时遇到问题以下。 这是我计算负对数似然
我想计算逻辑回归模型的对数似然。 def sigma(x): return 1 / (1 + np.exp(-x)) def logll(y, X, w): """" Para
我有以下泊松分布: Data 3 5 3 1 2 1 2 1 0 2 4 3 1 4 1 2 2 0 4 2 2 4 0 2 1 0 5 2 0 1 2 1 3 0 2 1 1 2 2 0 3 2 1
这是我在尝试进行 MLE 时在 Matlab 中注意到的。我的第一个估算器使用 pdf 的对数似然并将乘积分解为总和。例如,log weibull pdf (f(x)=b ax^(a-1)exp(-b
我正在学习 NLTK,并且有一个关于数据预处理和 MLE 模型的问题。目前我正在尝试使用 MLE 模型生成单词。问题是当我选择 n>=3 时。我的模型将完全正常地生成单词,直到它到达句点(“.”)。之
我有以下代码,我希望估计自定义分布的参数。 For more details on the distribution .然后使用估计的参数,我想看看估计的 PDF 是否类似于给定数据的分布(它应该与给
我有一个 statsmodels.discrete.discrete_model.BinaryResultsWrapper,它是运行 statsmodels.api.Logit(...).fit()
我有一个简单的 x, y数据框。 mydata mle(estimate, start = list(kappa = 3, lambda = 0.155)) Error in optim(start
我正在尝试估计 Weibull-Gamma 分布参数,但遇到以下错误: "the function mle failed to estimate the parameters, with the er
我正在使用 Python 进行 MLE 实现。我的对数似然函数有 5 个参数需要估计,其中两个参数必须介于 0 和 1 之间。我可以使用 statsmodels 包中的 GenericLikeliho
好的,所以我当前的曲线拟合代码有一个步骤使用 scipy.stats 根据数据确定正确的分布, distributions = [st.laplace, st.norm, st.expon, st.d
我想使用 pyomo 从行为数据集中估计 RL 模型的参数。 #dummy data dis_data = pd.DataFrame([0,1,0,0,0,1], columns=['reward'
我的目的是使用 Newton Raphson 算法找到最大似然估计量,并将该解决方案与 glm() 进行比较。所以我尝试在 R 中使用 maxLik()。结果出现错误,我之前没有使用过这个包,请修复这
我应该首先说明我想要做什么:我想使用 mle 函数,而不必每次我想尝试不同的模型规范时都重新编写我的对数似然函数。因为 mle 需要一个指定的起始值列表,所以您显然不能只将对数似然函数编写为采用参数向
我有一组具有高斯分布的数据,这是一个直方图,显示了它们的实际外观: 我必须使用贝叶斯分类器将这些数据分为两类,我正在使用 sklearn 进行此操作,并且运行良好。然而,作为工作的一部分,我必须使用
我正在尝试使用 MLE 拟合双指数(即两个指数或双指数的混合)数据。虽然没有此类问题的直接示例,但我发现了一些使用 MLE 进行线性(Maximum Likelihood Estimate pseud
我想在 python 中使用 gekko 包实现 MLE(最大似然估计)。假设我们有一个包含两列的 DataFrame:['Loss', 'Target'] 并且其长度等于 500。 首先我们必须导入
我想在 python 中使用 gekko 包实现 MLE(最大似然估计)。假设我们有一个包含两列的 DataFrame:['Loss', 'Target'] 并且其长度等于 500。 首先我们必须导入
我是一名优秀的程序员,十分优秀!