以下示例遵循 Kite (2004) 并与他的结果相匹配。
# Annual maximum discharge data for the St Mary River at Stillwater Nova Scotia (Kite, 2004)
# PIII fit to the logs of the discharges
StMary <- c(565,294,303,569,232,405,228,232,394,238,524,368,464,411,368,487,394,
337,385,351,518,365,515,280,289,255,334,456,479,334,394,348,428,337,
311,453,328,564,527,510,371,824,292,345,442,360,371,544,552,651,190,
202,405,583,725,232,974,456,289,348,564,479,303,603,514,377,318,342,
593,378,255,292)
LStMary <- log(StMary)
m <- mean(LStMary)
v <- var(LStMary)
s <- sd(LStMary)
g <- e1071::skewness(LStMary, type=1)
# Correct the sample skew for bias using the recommendation of
# Bobee, B. and R. Robitaille (1977). "The use of the Pearson Type 3 and Log Pearson Type 3 distributions revisited."
# Water Resources Reseach 13(2): 427-443, as used by Kite
n <- length(StMary)
g <- g*(sqrt(n*(n-1))/(n-2))*(1+8.5/n)
# We will use method of moment estimates as starting values for the MLE search
my.shape <- (2/g)^2
my.scale <- sqrt(v)/sqrt(my.shape)*sign(g) # modified as recommended by Carl Schwarz
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)
fitdistrplus::fitdist(LStMary, distr="PIII", method="mle", start=my.param)
另请注意,MLE 估计值可能并不总是适用。参见《风筝》(2004 年,第 119 页)。他引用了 Matalas 和 Wallis (1973) 的观点,他们指出,如果样本偏差很小,那么解决方案是不可能的。您可以在矩估计器的方法中看到这一点,因为当 g 变为零时,形状参数将会爆炸。
Kite, G. W. (2004) 水文学频率和风险分析。水资源出版物
北卡罗来纳州马塔拉斯和 J.R.沃利斯 (1973)。 “尤里卡!它符合 Pearson 3 型分布。”水资源研究 9(2): 281-289。