将Weibull拟合到反向数据,找到原始数据的比例/形状参数-Matlab / R

时间:2018-12-11 15:01:12

标签: r matlab probability weibull

我需要对这个负偏斜的数据拟合一个Weibull模型:

  

55.6 51.2 57.3 62.3 50 59.2 54.2 60.3 53.7 52 61.4 62.3 57.8 60.9 44.5

具有此直方图:

enter image description here

我想在Matlab中使用wblfit拟合Weibull模型,在这种情况下我会得到

[parmhat,~] = wblfit(data,.95);
parmhat = 58.3775015628175          14.2433879423117

但是我相信这些参数是不正确的,因为Weibull pdf在Matlab中被定义为正偏。因此,为了反转数据,我对数据进行了简单的线性变换: modData = 100-data 然后我得到:

enter image description here

[parmhat,~] = wblfit(modData,.95);
parmhat = 46.1515222547038          8.62492481755511

要使问题更加复杂,请注意, parmhat 中的比例和形状值取决于转换!现在使用modData2 = 1000-数据:

[parmhat,~] = wblfit(modData2,.95);
parmhat = 946.463849591113          173.527538511119

对我来说不直观。我的问题是:如何使用modData和modData2中的变量转换在 parmhat 中“恢复”形状和比例参数的正确值?

更新:

在R中,我使用fitdistrplus,首先定义Gumbel

dgumbel <- function(x, a, b) 1/b*exp((a-x)/b)*exp(-exp((a-x)/b))
pgumbel <- function(q, a, b) exp(-exp((a-q)/b))
qgumbel <- function(p, a, b) a-b*log(-log(p))

然后拟合分布

fg <- fitdist(modData, "gumbel", start=list(a=10, b=10))

但是我不知道如何从modData中查找数据的参数。 谢谢!

0 个答案:

没有答案