Completar el código adjunto de tal manera que la función de curvas de riesgo incluya también rutinas para las ditribuciones: gompertz, lognormal, log_logistica y gamma generalizada.

library(eha)    #PARA GOMPERTZ
## Warning: package 'eha' was built under R version 4.1.2
library(actuar) #PARA LOG-LOGISTICA
## Warning: package 'actuar' was built under R version 4.1.2
## 
## Attaching package: 'actuar'
## The following objects are masked from 'package:eha':
## 
##     dllogis, pllogis, qllogis, rllogis
## The following objects are masked from 'package:stats':
## 
##     sd, var
## The following object is masked from 'package:grDevices':
## 
##     cm
library(ggamma) #PARA GAMMA GENERALIZADA
## Warning: package 'ggamma' was built under R version 4.1.2

Distribucion de riesgo 1

riesgo_distr <- function(distr, pe=NULL, pg = NULL, sh = NULL, sc = NULL, mnln=NULL, sdln=NULL,pll=NULL,shll=NULL,scll=NULL,pgg=NULL,shgg=NULL,scgg=NULL,pgo=NULL,shgo=NULL, scgo=NULL ){
  #EXPONENCIAL
  if(distr == "exp"){           
    rate <-  pe
    r <- rexp(100, rate = rate)
    fd <- dexp(r, rate = rate)
    Fd <- pexp(r, rate = rate)
  }
  #GAMMA
  if(distr == "gamma"){        
    r <- rgamma(100, pg)
    fd <- dgamma(r, pg)
    Fd <- pgamma(r, pg)
  }
  #WEIBULL
  if(distr == "weibull"){       
    r <- rweibull(100, shape = sh, scale = sc)
    fd <- dweibull(r, shape = sh, scale = sc)
    Fd <- pweibull(r, shape = sh, scale = sc)
  }
  #LOGNORMAL
  if(distr == "lnorm"){         
    r<-rlnorm(100, meanlog = mnln, sdlog = sdln)
    fd<-dlnorm(r, meanlog = mnln, sdlog = sdln)
    Fd <- plnorm(r, meanlog = mnln, sdlog = sdln)
  }
  #LOG LOGISTICA
  if(distr == "llogis"){       
    r <- rllogis(100, shape=shll, scale = scll)
    fd <- dllogis(r,  shape=shll, scale = scll)
    Fd <- pllogis(r,  shape=shll, scale = scll)
  }
  #GAMMA GENERALIZADA
  if(distr == "ggamma"){        
    r <- rggamma(100, a=1/pgg, b=shgg, k=scgg)
    fd <- dggamma(r, a=1/pgg, b=shgg, k=scgg)
    Fd <- pggamma(r, a=1/pgg, b=shgg, k=scgg)
  }
  #GOMPERTZ
  if(distr == "gompertz"){      
    r <- rgompertz(100, shape = shgo, scale = scgo, pgo)
    fd <- dgompertz(r, shape = shgo, scale = scgo, pgo)
    Fd <- pgompertz(r, shape = shgo, scale = scgo, pgo)
  }
  S <- 1 - Fd
  hz <- fd/S
  plot(sort(hz))
}

WEIBULL

riesgo_distr("weibull",sc=1, sh=2)

LOG-NORMAL

riesgo_distr("lnorm", mnln = 0, sdln = 0.15)

EXPONENCIAL

riesgo_distr("exp", pe= 1)

GAMMA

riesgo_distr("gamma",pg= 5)

GAMMA GENERALIZADA

riesgo_distr("ggamma",pgg=3,shgg=2,scgg=1)

LOG-LOGISTICA

riesgo_distr("llogis", shll = 3, scll = 2)

GOMPERTZ

riesgo_distr("gompertz",pgo=10,shgo=2,scgo=3)

Distribucion de riesgo 2

riesgo_distr2 <- function(distr, nsims, ...){
  #EXPONENCIAL
  if(distr == "exp"){
    r <- rexp(nsims, ...)
    fd <- dexp(r, ...)
    Fd <- pexp(r, ...)
  }
  #GAMMA
  if(distr == "gamma"){
    r <- rgamma(nsims, ...)
    fd <- dgamma(r, ...)
    Fd <- pgamma(r, ...)
  }
  #WEIBULL
  if(distr == "weibull"){
    r <- rweibull(nsims, ...)
    fd <- dweibull(r, ...)
    Fd <- pweibull(r, ...)
  }
  #LOGNORMAL
  if(distr == "lnorm"){
    r<-rlnorm(nsims, ...)
    fd<-dlnorm(r, ...)
    Fd <- plnorm(r, ...)
  }
  #LOG LOGISTICA
  if(distr == "llogis"){
    r <- rllogis(nsims, ...)
    fd <- dllogis(r, ...)
    Fd <- pllogis(r, ...)
  }
  #GAMMA GENERALIZADA
  if(distr == "ggamma"){
    r <- rggamma(nsims, ...)
    fd <- dggamma(r, ...)
    Fd <- pggamma(r, ...)
  }
  #GOMPERTZ
  if(distr == "gompertz"){
    r <- rgompertz(nsims, ...)
    fd <- dgompertz(r, ...)
    Fd <- pgompertz(r, ...)
  }
  
  S <- 1 - Fd
  hz <- fd/S
  plot(sort(hz))
}

WEIBULL

riesgo_distr2("weibull",100,2,3)

LOG-NORMAL

riesgo_distr2("lnorm", nsims = 100, 0, 0.1)

EXPONENCIAL

riesgo_distr2("exp",100,2)
## Warning in plot.window(...): relative range of values ( 67 * EPS) is small (axis
## 2)

GAMMA

riesgo_distr2("gamma",100,5)

GAMMA GENERALIZADA

riesgo_distr2("ggamma", nsims = 100, 3,2,1)

LOG-LOGISTICA

riesgo_distr2("llogis", nsims = 100,3,2)

GOMPERTZ

riesgo_distr2("gompertz", nsims = 100,10,2,3)