1.- Carga de datos

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

nombre1= "NICOLAS VLADIMIR CARCAMO ESPARZA"
nombre2= "JORGE FRANCISCO MORAGA CALVO"
datos = cargar_datos(nombre1,nombre2)

Revisamos los datos resultantes

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 45 0.37 Alta 13 39
3rd Degree Sideburns Alien DNA Masculino 67 1.34 Alta 152 34
3rd Degree Sideburns Alien DNA Otro 105 0.15 Alta 14 10
3rd Degree Sideburns Baldness Femenino 56 2.64 Alta 200 47
3rd Degree Sideburns Baldness Masculino 4 2.39 Alta 190 40
3rd Degree Sideburns Bloaty Head Femenino 102 3.82 Alta 75 31

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.


2. Actividades

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

diagnostico: Enfermedad principal del paciente. Tipo de variable nominal/politomica.

comorbilidad: Enfermedad o condicion del paciente secundaria. Tipo de variable nominal/politomica.

sexo: Sexo especificado del paciente, da la posibilidad de no entregarlo. Tipo de variable nominal/politomica.

prom_edad: Promedio de edad de los pacientes. Tipo de variable intervalo/discreta.

ds_edad: Cuantifica la dispercion del conjunte de edades. Tipo de variable intervalo/continua.

egreso: Estado de los pacientes al finalizar su hospitalizacion. Tipo de variable nominal/dicotomico.

DE: Dias de hospitalizacion. Tipo de variable intervalo/discreta.

freq: Cantidad de pacientes que cumplen con las condiciones anteriores. Tipo de variable intervalo/discreta.


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

a.- ¿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.

acumFallecidos = 0
acumPacientes = 0

for (i in 1:nrow(datos)) {
  if(datos[i,7] == "Fallecido(a)"){
    acumFallecidos = acumFallecidos + datos[i,9]
  }
  acumPacientes = acumPacientes + datos[i,9]
}
cat("La probabilidad que tiene un/una paciente de fallecer en su establecimiento hospitalario es: ", acumFallecidos/acumPacientes)
## La probabilidad que tiene un/una paciente de fallecer en su establecimiento hospitalario es:  0.0025
cat("La tasa de mortalidad hospitalaria es: ", (acumFallecidos/acumPacientes)*1000)
## La tasa de mortalidad hospitalaria es:  2.5

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

diagFallecidos = xtabs(freq~diagnostico-egreso-sexo,datos)

fallMujer = xtabs(freq~egreso-sexo,datos)[2]
fallHombre = xtabs(freq~egreso-sexo,datos)[4]
fallOtro = xtabs(freq~egreso-sexo,datos)[6]

probMujer = max(diagFallecidos[26:50])/fallMujer
probHombre = max(diagFallecidos[76:100])/fallHombre
probOtro = max(diagFallecidos[126:150])/fallOtro

IDiagMujer = which.max(diagFallecidos[26:50])
IDiagHombre = which.max(diagFallecidos[76:100])
IDiagOtro = which.max(diagFallecidos[126:150])

DM = data.frame(diagFallecidos)
#Diagnostico de hombre
diagH
## [1] Fake Blood
## Levels: Fake Blood
#Probabilidad
probHombre
## [1] 0.08695652
#Diagnostico de mujer
diagM
## [1] Uncommon Cold
## Levels: Uncommon Cold
#Probabilidad
probMujer
## [1] 0.1428571
#Diagnostico de otro
diagO
## [1] Broken Wind
## Levels: Broken Wind
#Probabilidad
probOtro
## [1] 0.1666667

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

dato = data.frame(xtabs(freq~comorbilidad-prom_edad-egreso, datos))
#mayores de edad
dato2 = dato [-c(1:1242), ]

#busqueda mayor comorbilidad
suma = function(L){
  min = 0
  for(i in 1:nrow(L)){
    aux = L[i]
    if (aux > min){
      min = aux
    }
  }
  return(min)
}


maxComorbilidadAdultos = suma(xtabs(Freq~comorbilidad, dato2))
totalComorFall = sum(xtabs(Freq~comorbilidad, dato2))


Result = maxComorbilidadAdultos/totalComorFall

Result
## Fractured Bones 
##       0.1904762

d.- 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?

fallTotal = xtabs(freq~egreso,datos)[2]

DM = data.frame(xtabs(freq~diagnostico-egreso,datos))

IDiagnosticoMasFall = which.max((xtabs(freq~diagnostico-egreso,datos))[26:50]) + 25

NumFallPrincipal = DM[IDiagnosticoMasFall,3]
DiagPrincipal = droplevels(DM[IDiagnosticoMasFall,1])
  
probFallPrincipal = NumFallPrincipal/fallTotal

NumPacientesTot = DM[IDiagnosticoMasFall,3] + DM[IDiagnosticoMasFall-25,3]
probFall2 = NumFallPrincipal/NumPacientesTot

i = 100
N = sample(seq(5,50),1)
n = NumPacientesTot-NumFallPrincipal
prob = dhyper(N,n,NumFallPrincipal,i)

prob
## [1] 0

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

Se concluye que la gestion de establecimiento es buena (2,5%), comparado con la clasificacion propuesta siguiente:

Por lo general los pacientes viven a pesar de tener comorbilidades, las probabilidades de fallecer por algun diagnostico especifico son cercanas al 1%.


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

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

acumTotalPacientes = 0
estadia = 0

for (i in 1:nrow(datos)){
  estadia = estadia + (datos[i, 8] * datos[i, 9])
  acumTotalPacientes = acumTotalPacientes + datos[i, 9]
}

promedio = estadia/acumTotalPacientes
promedio
## [1] 103.2955

b.- ¿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.

promedio= sum(subset(subset((subset((subset(datos, prom_edad<18)), DE>=30)), diagnostico=="Spare Ribs"), egreso== "Alta")$DE)


totalMenores = 0
for (i in 1:nrow(datos)) {
  if(datos[i,5] < 18){
    totalMenores = totalMenores + datos[i, 9]
  }
}


media = promedio/totalMenores

media
## [1] 0.1947352
dnorm(30, media, 0.2)
## [1] 0

c.- ¿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.

numProm = sum(subset(subset(subset(datos, prom_edad==36), DE<10), egreso== "Alta")$DE)


totalProm36 = 0
for (i in 1:nrow(datos)) {
  if(datos[i,5] == 36){
    totalProm36 = totalProm36 + datos[i, 9]
  }
}

media2 = numProm / totalProm36

numProm
## [1] 0
totalProm36
## [1] 178
media2
## [1] 0
dnorm(10, media2, 0.2)
## [1] 0

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

Se puede concluir que los pacientes por lo general mantienen una larga estadia en el hospital sin importar su edad, esto comparado con el general de los hospitales que es cerca de 6 dias de estadia promedio. Al estar las camas ocupadas por mas de 100 dias, la atencion se vuelve ineficiente, probablemente hay pacientes hospitalizados pero que ya deberian estar de alta.


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

a.- 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?

b.- 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?

## La probabilidad sería:  1.894919e-08  para  5  pacientes