The best tool for determining the hrf shape of any data is the TTT plot.
library(AdequacyModel)
y<-c(10,10,10,10,10,10,10,10,10,10)
TTT(y, col = "blue", lwd = 2.5, grid = TRUE, lty = 2)
library(AmoudSurv)
## Warning: package 'AmoudSurv' was built under R version 4.1.3
data("alloauto")
time<-alloauto$time
TTT(time, col = "green", lwd = 2.5, grid = TRUE, lty = 2)
x<-c(1:100)
TTT(x, col = "red", lwd = 2.5, grid = TRUE, lty = 2)
data("carbone")
TTT(carbone, col = "green", lwd = 2.5, grid = TRUE, lty = 2)
z<-sort(x,decreasing = TRUE)
TTT(z, col = "green", lwd = 2.5, grid = TRUE, lty = 2)
library(AmoudSurv)
data("gastric")
time1<-gastric$time
TTT(time, col = "blue", lwd = 2.5, grid = TRUE, lty = 2)
par(mfrow=c(1,3))
TTT(time, col = "green", lwd = 2.5, grid = TRUE, lty = 2)
TTT(carbone, col = "yellow", lwd = 2.5, grid = TRUE, lty = 2)
TTT(time, col = "blue", lwd = 2.5, grid = TRUE, lty = 2)
library(AdequacyModel)
# CDF
cdfe<-function(par,x){
lambda<-par[1]
1-exp(-lambda*x)
}
# PDF
pdfe<-function(par,x){
lambda<-par[1]
lambda*exp(-lambda*x)
}
# Data
data("carbone")
# Modelling
goodness.fit(pdf = pdfe, cdf = cdfe, starts = c(1), data = carbone,
method = "BFGS", domain = c(0,Inf), mle = NULL)
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in ks.test(x = data, y = "cdf", par = as.vector(parameters)): ties
## should not be present for the Kolmogorov-Smirnov test
## $W
## [1] 0.1493349
##
## $A
## [1] 0.7643187
##
## $KS
##
## One-sample Kolmogorov-Smirnov test
##
## data: data
## D = 0.32059, p-value = 2.364e-09
## alternative hypothesis: two-sided
##
##
## $mle
## [1] 0.3814764
##
## $AIC
## [1] 394.7417
##
## $`CAIC `
## [1] 394.7825
##
## $BIC
## [1] 397.3469
##
## $HQIC
## [1] 395.7961
##
## $Erro
## [1] 0.03814738
##
## $Value
## [1] 196.3709
##
## $Convergence
## [1] 0
library(AdequacyModel)
# CDF
cdfw<-function(par,x){
alpha<-par[1]
beta<-par[2]
1-exp(-alpha*x)^beta
}
# PDF
pdfw<-function(par,x){
alpha<-par[1]
beta<-par[2]
alpha*beta*(alpha*x)^(beta-1)*exp(-(alpha*x)^beta)
}
# Data
data("carbone")
# Modelling
goodness.fit(pdf = pdfw, cdf = cdfw, starts = c(1,1), data = carbone,
method = "BFGS", domain = c(0,Inf), mle = NULL)
## Warning in ks.test(x = data, y = "cdf", par = as.vector(parameters)): ties
## should not be present for the Kolmogorov-Smirnov test
## $W
## [1] 0.1333968
##
## $A
## [1] 0.6811538
##
## $KS
##
## One-sample Kolmogorov-Smirnov test
##
## data: data
## D = 0.64453, p-value < 2.2e-16
## alternative hypothesis: two-sided
##
##
## $mle
## [1] 0.3397091 2.7928603
##
## $AIC
## [1] 287.0586
##
## $`CAIC `
## [1] 287.1823
##
## $BIC
## [1] 292.2689
##
## $HQIC
## [1] 289.1673
##
## $Erro
## [1] 0.01282196 0.21409886
##
## $Value
## [1] 141.5293
##
## $Convergence
## [1] 0
library(AdequacyModel)
# CDF
cdfg<-function(par,x){
eta<-par[1]
b<-par[2]
1-exp(-eta*(exp(b*x)-1))
}
# PDF
pdfg<-function(par,x){
eta<-par[1]
b<-par[2]
b*eta*exp(eta+b*x-eta*exp(b*x))
}
# Data
data("carbone")
# Modelling
goodness.fit(pdf = pdfg, cdf = cdfg, starts = c(1,1), data = carbone,
method = "BFGS", domain = c(0,Inf), mle = NULL)
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in log(pdf(par, x)): NaNs produced
## Warning in ks.test(x = data, y = "cdf", par = as.vector(parameters)): ties
## should not be present for the Kolmogorov-Smirnov test
## $W
## [1] 0.1597538
##
## $A
## [1] 1.260904
##
## $KS
##
## One-sample Kolmogorov-Smirnov test
##
## data: data
## D = 0.096206, p-value = 0.3129
## alternative hypothesis: two-sided
##
##
## $mle
## [1] 0.09726057 0.79101610
##
## $AIC
## [1] 302.25
##
## $`CAIC `
## [1] 302.3738
##
## $BIC
## [1] 307.4604
##
## $HQIC
## [1] 304.3588
##
## $Erro
## [1] 0.03088534 0.07758541
##
## $Value
## [1] 149.125
##
## $Convergence
## [1] 0
You need to check the likelihood values including (AIC, BIC, CAIC, HQIC). In general the model with the smaller value of AIC, BIC, CAIC & HQIC is the best.
Exponential Weibull Gompertz
We select the the weibull distribution since has smaller value.