library(fitdistrplus)
## Loading required package: MASS
## Loading required package: survival
library(goftest)
data = read.csv("DATA25.csv")
claims = data$CLAIMS
d1 = diff(claims); d1
## [1] -0.06 0.00 0.10 0.32 0.25 0.41 0.63 0.65 0.51 0.39 0.19 0.17
## [13] 0.18 0.07 -0.04 -0.15 -0.08 -0.29 -0.64 -0.44 -0.33 -0.17 0.04 0.13
## [25] 0.05 0.02 -0.03 -0.03 0.02 0.13 0.13 0.16 -0.01 -0.10 -0.19 -0.16
## [37] -0.11 -0.02 0.05 0.20 0.09 0.02 0.04 -0.06 0.00 0.11 0.14 0.09
## [49] 0.11 0.11 0.14 -0.14 -0.14 -0.20 -0.27 -0.19 -0.18 -0.20 -0.29 -0.33
## [61] -0.34 -0.30 -0.25 -0.06 0.12 0.40 0.65 0.72 0.91 0.96 1.18 1.29
## [73] 1.37 1.25 1.04 0.94 0.70 0.43 0.10 -0.05 -0.52 -0.83 -1.08 -1.20
## [85] -1.33 -1.31 -1.18 -1.12 -1.00 -0.92 -0.76 -0.71 -0.44 -0.12 0.03 0.06
## [97] 0.10 0.28 0.29 0.34 0.40 0.42 0.47 0.71 0.85 0.76 0.60 1.00
## [109] 1.18 0.99 1.01 0.93 0.76 0.82 0.79 0.35 -0.20 -0.31
d1_positive = d1[d1 > 0]
fitwMGEAD = fitdist(data = d1_positive, distr = "weibull", method = "mge", gof = "AD" )
summary(fitwMGEAD)
## Fitting of the distribution ' weibull ' by maximum goodness-of-fit
## Parameters :
## estimate
## shape 0.9491740
## scale 0.4775768
## Loglikelihood: -14.89649 AIC: 33.79297 BIC: 38.23199
fitwMGEKS = fitdist(data = d1_positive, distr = "weibull", method = "mge", gof = "KS" )
summary(fitwMGEKS)
## Fitting of the distribution ' weibull ' by maximum goodness-of-fit
## Parameters :
## estimate
## shape 0.9092325
## scale 0.4803812
## Loglikelihood: -15.56588 AIC: 35.13177 BIC: 39.57078
fitwMGECvM = fitdist(data = d1_positive, distr = "weibull", method = "mge", gof = "CvM" )
summary(fitwMGECvM)
## Fitting of the distribution ' weibull ' by maximum goodness-of-fit
## Parameters :
## estimate
## shape 0.8976101
## scale 0.4866929
## Loglikelihood: -15.85954 AIC: 35.71907 BIC: 40.15809
set.seed(123)
weibull_data = rweibull(100, shape = 2, scale = 3)
fit_weibull = fitdist(weibull_data, "weibull")
# Histogram with density
hist(weibull_data, probability = TRUE, main = "Histogram of Weibull Data with Fit",
xlab = "Value", col = "lightblue", border = "white")
# Add Weibull fit curve
curve(dweibull(x, shape = fit_weibull$estimate["shape"], scale = fit_weibull$estimate["scale"]),
col = "red", lwd = 2, add = TRUE)

# P–P plot
ppcomp(list(fit_weibull), main = "P–P Plot for Weibull Fit")
