Primero tenemos que obtener la data, la mejor manera de hacer esto para evitar pelear con directorios y futuros cambios de data será sacarla directamente de Github. Esto se hará con la siguiente libreria

library(RCurl)

y se cargaran todos los CSV desde la pagina de Github de cada archivo para que en futuras revisiones esten actualizados.

# Carga de Datos para Autos
Data_Auto <- getURL("https://raw.githubusercontent.com/CarlosFernandoVG/templatesForLearningR/master/DataSimulated/auto.csv")
Data_Auto <- read.csv(text=Data_Auto,header=FALSE)
# Carga de Datos para Mail
Data_Mail <- getURL("https://raw.githubusercontent.com/CarlosFernandoVG/templatesForLearningR/master/DataSimulated/mail.csv")
Data_Mail <- read.csv(text=Data_Mail,header=FALSE)
# Carga de Datos para Videojuegos
Data_Videogames <- getURL("https://raw.githubusercontent.com/CarlosFernandoVG/templatesForLearningR/master/DataSimulated/videogames.csv")
Data_Videogames <- read.csv(text=Data_Videogames,header=FALSE)
# Carga de Datos para Corrosive Mixture
Data_Corrosive <- getURL("https://raw.githubusercontent.com/CarlosFernandoVG/templatesForLearningR/master/DataSimulated/corrosive_mixture.csv")
Data_Corrosive <- read.csv(text=Data_Corrosive,header=FALSE)

# Especificamos que el header=FALSE para evitar perder el valor de t=0 y que lo ponga como nombre de columna

Ya que tenemos los datos, nos piden calcular tanto la función de riesgo como la función de riesgo acumulado como si se estuviera en un caso discreto. Entonces las formulas para esto serían

\[ h(u_{k})=1-\frac{S(U_k)}{S(U_{k-1})} \]

Antes de eso necesitamos calcular la función de supervivencia ya que los datos que se obtuvieron de GitHub son la Función de Distribución, y sabemos que

\[ S(t)=1-F_{T}(t) \]

Pero antes para poder trabajar de una mejor manera con los datos lo pasaremos a vectores para poder de manera más facil con cada entrada

Data_Auto_Vector <- unlist(Data_Auto)
Data_Mail_Vector <- unlist(Data_Mail)
Data_Corrosive_Vector <- unlist(Data_Corrosive)
Data_Videogames_Vector <- unlist(Data_Videogames)

Para calcular la función de supervivencia ocuparemos esta formula

Supervivencia <- function(datos){
  n=length(datos)
  superv <- vector(mode="numeric",length=n)
  i=1
  while(i <= n){
    superv[i]=1-datos[i]
    i=i+1
  }
  return(superv)
}

Entonces, calculamos la Función de Supervivencia de esta forma

supervivencia_autos <- Supervivencia(Data_Auto_Vector)
supervivencia_mail <- Supervivencia(Data_Mail_Vector)
supervivencia_corrosive <- Supervivencia(Data_Corrosive_Vector)
supervivencia_videogames <- Supervivencia(Data_Videogames_Vector)

Ahora bien, ya que tenemos la función de supervivencia podemos calcular la Función de Riesgo y la Función de Riesgo Acumulado. Para la función de Riesgo se tiene

\[ h(u_{k})=1-\frac{S(U_k)}{S(U_{k-1})} \]

Dado que usaremos la fórmula para el Caso Discreto podemos hacer una función que se encargue de calcular la función de riesgo dada una función de supervivencia dada

funcion_riesgo <- function(supervivencia){
  n=(length(supervivencia)-1)
  funcion_r <- vector(mode="numeric",length = n)
  i=1
  while(i <= n){
    funcion_r[i]=1-(supervivencia[i+1]/supervivencia[i])
    i=i+1
  }
  return(funcion_r)
}

Entonces se calcula la función de Riesgo para cada lista de datos.

funcion_riesgo_autos <- funcion_riesgo(supervivencia_autos)
funcion_riesgo_mail <- funcion_riesgo(supervivencia_mail)
funcion_riesgos_corrosive <- funcion_riesgo(supervivencia_corrosive)
funcion_riesgos_videogames <- funcion_riesgo(supervivencia_videogames)

Ahora, graficando las funciones de riesgo se ven de esta manera

par(mfrow=c(2,2))
plot(funcion_riesgo_autos,type="l",main="Autos",xlab="Tiempo",ylab="h(t)")
plot(funcion_riesgo_mail,type="l",main="Mail",xlab="Tiempo",ylab="h(t)")
plot(funcion_riesgos_corrosive,type="l",main="Mezcla Corrosiva",xlab="Tiempo",ylab="h(t)")
plot(funcion_riesgos_videogames,type="l",main="Videojuegos",xlab="Tiempo",ylab="h(t)")

Ahora bien, notemos que la función de mail se ve un poco extraña, esas oscilaciones se debe a que R escogió un rango muy pequeño dentro del Eje y, si nos fjamos en los valores de la función, es una constante

print(funcion_riesgo_mail)
##  [1] 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221
##  [8] 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221
## [15] 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221
## [22] 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221 0.1331221
## [29] 0.1331221

Ahora bien, para poder calcular la Función de Riesgo Acumulado, tenemos que la fórmula es

\[ H(t)=\sum_{k:u_k\leq t}h(u_k) \] y dado que ya tenemos calculada la función de supervivencia podemos calcular \(H(t)\). Para calcular esto hicimos esta fórmula

funcion_riesgo_acumulada <- function(funriesg){
  n = length(funriesg)
  funcion_riesgo_acum <- vector(mode="numeric",length=n)
  funcion_riesgo_acum[1] <- funriesg[1]
  i=2
  while(i <= n){
    funcion_riesgo_acum[i]=funcion_riesgo_acum[i-1]+funriesg[i]
    i=i+1
  }
  return(funcion_riesgo_acum)
}

Obteniendo las Funciones de Riesgo Acumuladas de todos nuestros datos tenemos

funcion_riesgo_acumulado_auto <- funcion_riesgo_acumulada(funcion_riesgo_autos)
funcion_riesgo_acumulado_mail <- funcion_riesgo_acumulada(funcion_riesgo_mail)
funcion_riesgo_acumulado_videogames <- funcion_riesgo_acumulada(funcion_riesgos_videogames)
funcion_riesgo_acumulada_corrosive <- funcion_riesgo_acumulada(funcion_riesgos_corrosive)

Ahora, al momento de graficar \(H(t)\) se vería de la siguiente manera

par(mfrow=c(2,2))
plot(funcion_riesgo_acumulado_auto,type="l",main="Autos",xlab="Tiempo",ylab="H(t)")
plot(funcion_riesgo_acumulado_mail,type="l",main="Mail",xlab="Tiempo",ylab="H(t)")
plot(funcion_riesgo_acumulada_corrosive,type="l",main="Mezcla Corrosiva",xlab="Tiempo",ylab="H(t)")
plot(funcion_riesgo_acumulado_videogames,type="l",main="Videojuegos",xlab="Tiempo",ylab="H(t)")

Por ultimo, se realizó con las fórmulas para el Método Discreto debido a que en los datos se toman valores por intervalos, lo que es básicamente la definición de Caso Discreto dada en las Notas.