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:
Alta tasa de mortalidad si supera el 30 ‰.
Moderada tasa de mortalidad entre 15 y 30 ‰.
Baja tasa de mortalidad por debajo del 15 ‰.
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