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")