library("plyr")          #Previamente descargue install.packages("plyr)
source("cargar_datos.R") #Descargue y guarde en la carpeta principal de su respuesta

nombre1= "Carlos Esteban Mora Galaz"
nombre2= "Javier Andres Collao Callpa"

datos = cargar_datos(nombre1,nombre2)
knitr::kable(head(datos[,2:ncol(datos)])) #kable pertenece a la biblioteca knitr
diagnostico comorbilidad sexo prom_edad ds_edad egreso DE freq
3rd Degree Sideburns Alien DNA Femenino 30 4.95 Alta 80 33
3rd Degree Sideburns Alien DNA Femenino 7 4.53 Fallecido(a) 85 7
3rd Degree Sideburns Alien DNA Masculino 12 2.91 Alta 98 37
3rd Degree Sideburns Alien DNA Masculino 32 0.87 Fallecido(a) 122 1
3rd Degree Sideburns Alien DNA Otro 20 1.97 Alta 24 6
3rd Degree Sideburns Alien DNA Otro 8 2.82 Fallecido(a) 59 2

Introduccion “PEP”

El conjunto de datos proviene de 5,000 pacientes de egresados el año 2021 desde un hospital ficticio. Cada fila corresponde al número de pacientes atendidos para cada diagnóstico principal con su respectiva comorbilidad en inglés, dividido según sexo biológico, edad, (promedio y desviación estándar), condición de egreso y días de estada en el hospital. Para evitar la herida de susceptibilidades, el listado de diagnósticos principales y comorbilidades se extrajo del videojuego Theme hospital.

Actividad 2

2.1 Descripcion de cada variable del conjunto de datos segun medicion y presicion. Desarrollo:

Diagnostico : Es la determinación del estado de salud de un paciente, Medicion: cualitativa nominal/ Politomica

Comorbilidad : Es la señalización de uno o más transtornos Medicion: cualitativa nominal/ Politomica

Sexo: Se refiere al sexo biológico de los pacientes. Medicion: cualitativa nominal/ Politomica

Prom_edad: Es el promedio de edad de los pacientes que han sido atendidos por el hospital. Intervalo/Discreta

Ds_edad :Se refiere a la desviación estándar de la edad o qué tan dispersa es la edad de los distintos pacientes atendidos. Intervalo/Continua

Egreso : Nombra la forma de salida del hospital; si salió de alta o este falleció. Cualitativa /Dicotomica

DE Es el total de días que el paciente estuvo dentro del hospital.Discreta

Freq:cantidad de pacientes dentro de las Patologias. Discreta

Mortalidad.

La mortalidad hospitalaria es de :

fallecidos = 0
tpacientes = 0

temp = which(datos$egreso=="Fallecido(a)")
fallecidos = sum(datos$freq[temp])

tpacientes= sum(datos$freq)



tasa_mortalidad = fallecidos/tpacientes
tasa_mortalidad
## [1] 0.16565

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.
  2. ¿Cuál es el diagnóstico principal que tienen mayor probabilidad de fallecimiento (letalidad) en su hospital según cada sexo biológico?
  3. ¿Cuál es la comorbilidad que presenta mayor probabilidad de aparición en personas adultas fallecidas en su establecimiento hospitalario?
  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?
fallecidosPorSexo = function(sexo){
  temp =  which(datos$sexo == sexo & datos$egreso == "Fallecido(a)")
  fallecidos = sum(datos$freq[temp])
  return(fallecidos)
}

fallecidosMujer = fallecidosPorSexo("Femenino")
fallecidosHombre = fallecidosPorSexo("Masculino")
fallecidosOtro = fallecidosPorSexo("Otro")


diagnosticolist <- split(datos, datos$diagnostico)

listaParaMaximos = function (sexo){
  i <- 1
  mylist <- c()
  while (i <= length(diagnosticolist)) {
    temp = which(diagnosticolist[[i]]$egreso == "Fallecido(a)" & diagnosticolist[[i]]$sexo == sexo)
    mylist <- c(mylist, sum(diagnosticolist[[i]]$freq[temp]))
    i <- i+1
  }
  return(mylist)
} 

maximoDiagnosticoConFallecidosMujer = max(listaParaMaximos("Femenino"))
maximoDiagnosticoConFallecidosHombre = max(listaParaMaximos("Masculino"))
maximoDiagnosticoConFallecidosOtro = max(listaParaMaximos("Otro"))


probabilidadMujer = maximoDiagnosticoConFallecidosMujer/fallecidosMujer
probabilidadHombre = maximoDiagnosticoConFallecidosHombre/fallecidosHombre
probabilidadOtro = maximoDiagnosticoConFallecidosOtro/fallecidosOtro

probabilidadMujer
## [1] 0.05245461
probabilidadHombre
## [1] 0.05555556
probabilidadOtro
## [1] 0.06793478
fallecidosPorSexo = function(sexo){
  temp =  which(datos$sexo == sexo & datos$egreso == "Fallecido(a)")
  fallecidos = sum(datos$freq[temp])
  return(fallecidos)
}

fallecidosMujer = fallecidosPorSexo("Femenino")
fallecidosHombre = fallecidosPorSexo("Masculino")
fallecidosOtro = fallecidosPorSexo("Otro")


diagnosticolist <- split(datos, datos$diagnostico)

listaParaMaximos = function (sexo){
  i <- 1
  mylist <- c()
  while (i <= length(diagnosticolist)) {
    temp = which(diagnosticolist[[i]]$egreso == "Fallecido(a)" & diagnosticolist[[i]]$sexo == sexo)
    mylist <- c(mylist, sum(diagnosticolist[[i]]$freq[temp]))
    i <- i+1
  }
  return(mylist)
} 

maximoDiagnosticoConFallecidosMujer = max(listaParaMaximos("Femenino"))
maximoDiagnosticoConFallecidosHombre = max(listaParaMaximos("Masculino"))
maximoDiagnosticoConFallecidosOtro = max(listaParaMaximos("Otro"))


probabilidadMujer = maximoDiagnosticoConFallecidosMujer/fallecidosMujer
probabilidadHombre = maximoDiagnosticoConFallecidosHombre/fallecidosHombre
probabilidadOtro = maximoDiagnosticoConFallecidosOtro/fallecidosOtro

subDataDiagnosticoConFallecidos = function (sexo) {
  
  tablaDiagnostico = matrix(c(unique(datos$diagnostico),listaParaMaximos(sexo)),nrow=length(unique(datos$diagnostico)),ncol=2)
  colnames(tablaDiagnostico)=c("diagnostico","mortalidad")
  datadiag = data.frame(tablaDiagnostico)
  rr = which.max(datadiag$mortalidad)
  return(datadiag [rr,])
  
}

 maximoDiagnosticoEnMujer = subDataDiagnosticoConFallecidos("Femenino")
 maximoDiagnosticoEnHombre = subDataDiagnosticoConFallecidos("Otro")
 maximoDiagnosticoEnOtro = subDataDiagnosticoConFallecidos("Masculino")
 
 maximoDiagnosticoEnMujer
##   diagnostico mortalidad
## 7  Fake Blood         78
 maximoDiagnosticoEnHombre
##    diagnostico mortalidad
## 2 Broken Heart         25
 maximoDiagnosticoEnOtro
##   diagnostico mortalidad
## 7  Fake Blood         81
i <- 1
mylist <- c()
comorbilidadlist <- split(datos, datos$comorbilidad)

while (i <= length(comorbilidadlist)) {
    temp44 = which(comorbilidadlist[[i]]$egreso == "Fallecido(a)" & comorbilidadlist[[i]]$sexo == "Femenino")
    mylist <- c(mylist, sum(comorbilidadlist[[i]]$freq[temp44]))
    i <- i+1
}
d = xtabs(freq~comorbilidad-egreso-sexo,datos)

mm = max(mylist)
listaParaComorbilidadMaximos = function (edad){
  i <- 1
  mylist <- c()
  while (i <= length(comorbilidadlist)) {
      temp44 = which(comorbilidadlist[[i]]$egreso == "Fallecido(a)" & comorbilidadlist[[i]]$prom_edad>=edad)
      mylist <- c(mylist, sum(comorbilidadlist[[i]]$freq[temp44]))
      i <- i+1
  }
  mylist

  return(mylist)
}
mprob = function (edad){
    prob = (max(listaParaComorbilidadMaximos(edad))/sum(listaParaComorbilidadMaximos(edad)))
  print("Probabilidad de morir para las personas mayores de 18 es  : " )
  return(prob)
}
mprob(18)
## [1] "Probabilidad de morir para las personas mayores de 18 es  : "
## [1] 0.1353088
diagnosticolist <- split(datos, datos$diagnostico)
listaMuertesEnDiagnostico = function (egreso){
  i <- 1
  mylist <- c()
  while (i <= length(diagnosticolist)) {
    temp = which(diagnosticolist[[i]]$egreso == egreso)
    mylist <- c(mylist, sum(diagnosticolist[[i]]$freq[temp]))
    i <- i+1
  }
  return(mylist)
} 

listaMuertesEnDiagnostico("Fallecido(a)")
##  [1] 126 135 123 134 134 129 177 144 120 120 139 117 134 128 137 138 114 128 144
## [20] 154 117 133 132 122 134
a = listaMuertesEnDiagnostico("Fallecido(a)")
b = listaMuertesEnDiagnostico("Alta")
suma = a+b
Mortalidadtotal= (100+max(a))/sum(suma)

print("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?")
## [1] "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?"
Mortalidadtotal
## [1] 0.01385

Nuestra tasa de mortalidad corresponde al 16% , acorde a la investigacion desarrollada por Ciper :Tasa de mortalidad del sector público supera a las clínicas privadas: https://www.elmostrador.cl/dia/2020/06/22/tasa-de-mortalidad-del-sector-publico-supera-a-las-clinicas-privadas-subsecretario-zuniga-descarta-que-se-deba-a-una-diferencia-en-la-atencion/

Nuestros indices de mortalidad estarian acordes a los de un hospital publica dentro del rango: l San José muestra una tasa de 21,3%; Del Salvador, con 20,1%; la ex Posta Central, con 17,7%; el San Juan de Dios, con 18%.

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?
a=sum(datos[8])
b=nrow(datos)
prom=a/b
print("El promedio de dias de estadia de nuestro hospital publico es de :")
## [1] "El promedio de dias de estadia de nuestro hospital publico es de :"
prom
## [1] 99.34303
  1. ¿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.
comorbilidadlist <- split(datos, datos$comorbilidad)

listaParaComorbilidadMaximos = function (edad){
  i <- 1
  mylist <- c()
  while (i <= length(comorbilidadlist)) {
      temp = which(comorbilidadlist[[i]]$egreso == "Alta" & comorbilidadlist[[i]]$prom_edad<=edad & comorbilidadlist[[i]]$DE>30)
      mylist <- c(mylist, sum(comorbilidadlist[[i]]$freq[temp]))
      i <- i+1
  }
  mylist

  return(mylist)
} 

a =listaParaComorbilidadMaximos(18)
b=max(a)
suma = sum(a)

probdesv= (b/suma)/pnorm(30,prom,0.2,lower.tail=FALSE)
probdesv
## [1] 0.1699098

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.

## La probabilidad es: 0
  1. ¿Qué puede concluir de los resultados con relación a las características y gestión de su establecimiento hospitalario? (Ayuda) Fuente: El Mercurio

En general, el estudio concluye que un enfermo pasa, en promedio, 6,8 días internado en un hospital y en una clínica esa espera es de 4,1 días.

Según Saldías, esto se explica porque el sector público de salud es menos eficiente que el privado.

En base al promedio dado por nuestro recinto hospitalario que fue alrededor de 99 dias, la probabilidad de ser dado de alta antes de los 10 dias es 0%.