source("cargar_datos.R")
nombre1 = "VANINA ANTONIA CORREA CHAVEZ"
nombre2 = "XAVIER FERNANDO MUÑOZ DIAZ"
datos = cargar_datos(nombre1,nombre2)
knitr::kable(head(datos[,2:ncol(datos)]))
diagnostico comorbilidad sexo prom_edad ds_edad egreso DE freq
3rd Degree Sideburns Alien DNA Femenino 61 4.68 Alta 156 35
3rd Degree Sideburns Alien DNA Femenino 13 0.66 Fallecido(a) 33 6
3rd Degree Sideburns Alien DNA Masculino 62 0.92 Alta 30 27
3rd Degree Sideburns Alien DNA Masculino 111 1.28 Fallecido(a) 104 5
3rd Degree Sideburns Alien DNA Otro 55 1.16 Alta 98 13
3rd Degree Sideburns Alien DNA Otro 47 3.65 Fallecido(a) 69 2

2.1. Describa cada una de las variables del conjunto de datos indicando su clasificación según tipo: medición y precisión.

2.2. Considerando la letalidad de los/las pacientes atendidos/atendidas en su establecimiento hospitalario:

1. ¿Cuál es la probabilidad que tiene un/una paciente de fallecer en su establecimiento hospitalario? Indique la tasa de mortalidad hospitalaria de su establecimiento.

# Total de fallecidos
fallecido = datos[datos$egreso == "Fallecido(a)",]
total_fallecidos = sum(fallecido$freq)
# Total de pacientes
total_pacientes = sum(datos$freq)
# Total de pacientes dados de alta
alta = datos[datos$egreso == "Alta",]
total_alta = sum(alta$freq)

prob_1 = total_fallecidos/total_pacientes
prob_2 = (total_fallecidos * 100)/total_alta

cat("La probabilidad que tiene un/una paciente de fallecer en nuestro establecimiento hospitalario es de", prob_1, ", mientras que la tasa de mortalidad hospitalaria de nuestro establicimiento es de", prob_2)
## La probabilidad que tiene un/una paciente de fallecer en nuestro establecimiento hospitalario es de 0.14345 , mientras que la tasa de mortalidad hospitalaria de nuestro establicimiento es de 16.74742

2. ¿Cuál es el diagnóstico principal que tienen mayor probabilidad de fallecimiento (letalidad) en su hospital según cada sexo biológico

#
hombres = datos[datos$sexo == 'Masculino',]
mujeres = datos[datos$sexo == 'Femenino',]
otros = datos[datos$sexo == 'Otro',]

diagnostico_letal = function(tabla){

  diagnostico = ""
  total_muertos = 0
  total_personas = 0
  probabilidad_alta = -1
  
  for(i in 1:nrow(tabla)) {
    if (diagnostico == ""){
      diagnostico_fila = tabla[i, 2]
      diagnostico = diagnostico_fila
    }
    diagnostico_fila = tabla[i, 2]
    if (diagnostico_fila == diagnostico){
      total_personas = total_personas + tabla[i, 9]
      if (tabla[i,7] == "Fallecido(a)"){
        total_muertos = total_muertos + tabla[i, 9]
      }
    }
    else{
      probabilidad = total_muertos/total_personas
      i = i-1
      #cat(diagnostico, probabilidad, "\n")
      if (probabilidad > probabilidad_alta){
        probabilidad_alta = probabilidad
        diagnostico_mortal = diagnostico
      }
      diagnostico = diagnostico_fila
      total_personas = 0
      total_muertos = 0
    }
  }
  
  #cat("el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es", diagnostico_mortal, "con una probabilidad de fallecimiento de", probabilidad_alta)
  return(c(diagnostico_mortal,probabilidad_alta))
}

Dhombres = diagnostico_letal(hombres)
Dmujeres = diagnostico_letal(mujeres)
Dotros = diagnostico_letal(otros)

cat("Para los hombres, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es ", Dhombres[1], "con una probabilidad de fallecimiento de ", Dhombres[2])
## Para los hombres, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es  Infectious Laughter con una probabilidad de fallecimiento de  0.18705035971223
cat("Para las mujeres, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es ", Dmujeres[1], "con una probabilidad de fallecimiento de ", Dmujeres[2])
## Para las mujeres, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es  Corrugated Ankles con una probabilidad de fallecimiento de  0.220670391061453
cat("Para otros, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es ", Dotros[1], "con una probabilidad de fallecimiento de ", Dotros[2])
## Para otros, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es  Spare Ribs con una probabilidad de fallecimiento de  0.241935483870968

3. ¿Cuál es la comorbilidad que presenta mayor probabilidad de aparición en personas adultas fallecidas en su establecimiento hospitalario?

adultos = datos[datos$prom_edad >= 18,]
adultos = adultos[order(adultos$comorbilidad, decreasing = FALSE), ]
adultos_fallecidos = adultos[adultos$egreso == "Fallecido(a)",]

comorbilidad_letal = function(tabla){

  comorbilidad = ""
  total_muertos = sum(tabla$freq)
  total_personas = 0
  probabilidad_alta = -1

  for(i in 1:nrow(tabla)) {
    if (comorbilidad == ""){
      comorbilidad_fila = tabla[i, 3]
      comorbilidad = comorbilidad_fila
    }
    comorbilidad_fila = tabla[i, 3]
    if (comorbilidad_fila == comorbilidad){
      total_personas = total_personas + tabla[i, 9]
    }

    else{
      probabilidad = total_personas/total_muertos
      i = i-1
      if (probabilidad > probabilidad_alta){
        probabilidad_alta = probabilidad
        comorbilidad_mortal = comorbilidad
      }
      comorbilidad = comorbilidad_fila
      total_personas = 0
    }
  }
  cat("La comorbilidad que presenta mayor probabilidad de aparición en personas adultas fallecidas en el hospital es", comorbilidad_mortal, "con una probabilidad de aparición de", probabilidad_alta)
}
comorbilidad_letal(adultos_fallecidos)
## La comorbilidad que presenta mayor probabilidad de aparición en personas adultas fallecidas en el hospital es Fractured Bones con una probabilidad de aparición de 0.1250503

4. Usando como base el diagnóstico principal con mayor probabilidad de fallecimiento (letalidad) en su hospital: ¿cuál es la probabilidad de que si el próximo año se hospitalizan 100 personas con esa patología, N de ellas fallezcan?

diagnostico_fallecimiento = function(tabla){

  diagnostico = ""
  total_muertos = 0
  total_personas = 0
  probabilidad_alta = -1
  
  for(i in 1:nrow(tabla)) {
    if (diagnostico == ""){
      diagnostico_fila = tabla[i, 2]
      diagnostico = diagnostico_fila
    }
    diagnostico_fila = tabla[i, 2]
    if (diagnostico_fila == diagnostico){
      total_personas = total_personas + tabla[i, 9]
      if (tabla[i,7] == "Fallecido(a)"){
        total_muertos = total_muertos + tabla[i, 9]
      }
    }
    else{
      probabilidad = total_muertos/total_personas
      i = i-1
      if (probabilidad > probabilidad_alta){
        probabilidad_alta = probabilidad
        diagnostico_mortal = diagnostico
      }
      diagnostico = diagnostico_fila
      total_personas = 0
      total_muertos = 0
    }
  }
  cat("La patología con mayor letalidad en nuestro hospital es", diagnostico_mortal)
  return(probabilidad_alta)
}
mayor_letalidad = diagnostico_fallecimiento(datos)
## La patología con mayor letalidad en nuestro hospital es Corrugated Ankles
N=sample(seq(5,50),1)
prob4 = dbinom(x = N, size = 100, mayor_letalidad)
cat("La probabilidad de que ", N, "personas fallezcan si el próximo año se hospitalizan 100 personas con esa patología, es de ", prob4)
## La probabilidad de que  46 personas fallezcan si el próximo año se hospitalizan 100 personas con esa patología, es de  3.747603e-11

5. ¿Qué puede concluir de los resultados con relación a las características y gestión de su establecimiento hospitalario?

Nuestro establecimiento hospitalario, la tasa de mortalidad que se muestra en la investigación de Ciper es mayor a la nuestra, la cual corresponde a 16.74742, además la probabilidad de que una persona fallezca en nuestro hospital es de 0.14345, por lo que se puede concluir que la administración del centro es buena. Cabe destacar para los hombres, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es Infectious Laughter con una probabilidad de fallecimiento de 0.18705. Por otro lado, para las mujeres, el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es Corrugated Ankles con una probabilidad de fallecimiento de 0.22067. Por útlimo, para otros el diagnostico principal que tiene mayor probabilidad de fallecimiento en el hospital es Spare Ribs con una probabilidad de fallecimiento de 0.24193. Sin embargo, considerando las personas adultas fallecidas, la comorbilidad que predomina es Fractured Bones con una probabilidad de aparición de 0.12505.

2.3. Considerando la estancia de los/las pacientes atendidos/atendidas en su establecimiento hospitalario:

1. ¿Cuál es el promedio de día de estadas (DE) de su establecimiento hospitalario?

dias = 0
for(i in 1:nrow(datos)){
  dias = dias + datos[i,8]*datos[i,9]
}
promedio_DE = dias/total_pacientes
cat("El promedio de días de estadas (DE) de nuestro establecimiento hospitalario es de ", promedio_DE)
## El promedio de días de estadas (DE) de nuestro establecimiento hospitalario es de  101.9401

2. ¿Cuál es la probabilidad de que un paciente pediátrico (menor a 18 años) sea dado de alta de la patología más frecuente después de 30 días de estada? Asuma en ambos casos una distribución normal y una desviación estándar típica de 0.2 para los DE.

patologia_frecuentes = function(tabla){

  diagnostico = ""
  total_pacientes = sum(tabla$freq)
  total_personas = 0
  probabilidad_alta = -1

  for(i in 1:nrow(tabla)) {
    if (diagnostico == ""){
      diagnostico_fila = tabla[i, 2]
      diagnostico = diagnostico_fila
    }
    diagnostico_fila = tabla[i, 2]
    if (diagnostico_fila == diagnostico){
      total_personas = total_personas + tabla[i, 9]
    }

    else{
      probabilidad = total_personas/total_pacientes
      i = i-1
      if (probabilidad > probabilidad_alta){
        probabilidad_alta = probabilidad
        diagnostico_frecuente = diagnostico
      }
      diagnostico = diagnostico_fila
      total_personas = 0
    }
  }
  return(diagnostico_frecuente)
}

diag = patologia_frecuentes(datos)
frecuente = datos[datos$diagnostico == diag,]
frecuente = frecuente[frecuente$prom_edad < 18,]
ninos_cant = sum(frecuente$freq)
prom_DE = sum(frecuente$DE)
prom_DE = prom_DE/ninos_cant
1- pnorm(30,prom_DE,sd=0.2)
## [1] 0

3. ¿Cuál es la probabilidad de que si usted es o ustedes son hospitalizados en su establecimiento hospitalario sean dados de alta antes de los 10 días? Al igual que el ejercicio anterior, asuma una distribución normal y una desviación estándar típica de 0.2 para los DE.

prob=pnorm(10,promedio_DE,sd=0.2)
prob
## [1] 0

4. ¿Qué puede concluir de los resultados con relación a las características y gestión de su establecimiento hospitalario?

2.4. Considerando elementos propios de la atención hospitalaria.

1. Si usted ve/ustedes ven salir de su hospital a cuatro pacientes dados de alta del hospital caminando uno tras otro: ¿cuál es la probabilidad de que todos/todas ellos/ellas hayan tenido la patología con mayor probabilidad de aparición atendida en su establecimiento?

# Función que determina la probabilidad de la patología más frecuente
patologia_frecuente = function(tabla){

  diagnostico = ""
  total_pacientes = sum(tabla$freq)
  total_personas = 0
  probabilidad_alta = -1

  for(i in 1:nrow(tabla)) {
    if (diagnostico == ""){
      diagnostico_fila = tabla[i, 2]
      diagnostico = diagnostico_fila
    }
    diagnostico_fila = tabla[i, 2]
    if (diagnostico_fila == diagnostico){
      total_personas = total_personas + tabla[i, 9]
    }

    else{
      probabilidad = total_personas/total_pacientes
      i = i-1
      if (probabilidad > probabilidad_alta){
        probabilidad_alta = probabilidad
        diagnostico_frecuente = diagnostico
      }
      diagnostico = diagnostico_fila
      total_personas = 0
    }
  }
  return(probabilidad_alta)
}

prob_diagnosticoF = patologia_frecuente(datos)
prob_binomial = dbinom(x = 4, size = 4, prob_diagnosticoF)

cat("La probabilidad de que los cuatro pacientes hayan tenido la patología con mayor probabilidad de aparición es de ", prob_binomial)
## La probabilidad de que los cuatro pacientes hayan tenido la patología con mayor probabilidad de aparición es de  3.12654e-06

2. Usted ha/ustedes han decidido ir al área ambulatoria de consultas médicas. Si entre todos/todas los/las especialistas médicos se está atendiendo un promedio a treinta pacientes por hora ¿cuál es la probabilidad que en la siguiente hora se atienda como mínimo a N pacientes?

N=sample(seq(5,50),1)
prob_poisson = dpois(N,30)
cat("La probabilidad de que en la siguiente hora se atienda como mínimo a ", N, " pacientes es de ", prob_poisson)
## La probabilidad de que en la siguiente hora se atienda como mínimo a  32  pacientes es de  0.06589826