Modelos Estadísticos. Grado Biotecnología
Abstract
Práctica 7.Funciones para el cálculo de probabildiades:
# Cálculo de probabilidades
calculo.probabilidades <- function(npmarg,etimarg,probmarg,npcond,etimarg2,probcond)
# Suceso A
# npmarg = número de probabildiades marginales
# etimarg = etiquetas para las probabilidades marginales
# probmarg = probabilidades marginales
# Suceso B dado A
# npcond = número de probabildiades condicionadas por cada valor de A
# etimarg2 = etiquetas para las probabilidades marginales por cada valor de A
# probcond = probabilidades marginales ordenadas para lemento de A
{
# Probabilidad marginal P(A)
pmarginal <- matrix(rep(probmarg,npcond),nrow = npmarg)
# Probabilidad condicionada P(B|A)
pcondicional <- matrix(probcond, nrow = npmarg, byrow=T)
# Probabilidad conjunta P(A,B)
pconjunta <- pmarginal*pcondicional
rownames(pconjunta) <- etimarg
colnames(pconjunta) <- etimarg2
# Probabilidad Total
ptotal <- apply(pconjunta,2,sum)
# Teorema de Bayes
res <-matrix(rep(ptotal,npmarg),nrow = npmarg, byrow =T)
pbayes <- pconjunta / res
# Resultado
return(list(Conjunta = round(pconjunta,4), Total = round(ptotal,4), Bayes = round(pbayes,4)))
}Función para probabilidad de screening
Screening <- function(positivos,negativos,etitest,etienfermedad,incidencia)
# positivos = resultados positivos del test empezando por los que padecen la enfermedad
# negativos = resultados negativos del test empezando por los que padecen la enfermedad
# etitest = etiquetas del test diagnóstico
# etienfermedad = etiquetas de enfermos y sanos
# incidencia = incidencia de la enfermedad en la población
{
# Tabla de resultados
tabla <- matrix(c(positivos,negativos), ncol = 2, byrow = T)
rownames(tabla) <- etitest
colnames(tabla) <- etienfermedad
# Calculo de totales
total.test <- apply(tabla,1,sum)
total.enfermedad <- apply(tabla,2,sum)
total <- sum(total.test)
# Probabilidades marginales
marginal.enfermos <- tabla[,1]/total.enfermedad[1]
marginal.sanos <- tabla[,2]/total.enfermedad[2]
# Resultados
Sensibilidad <- marginal.enfermos[1]
Especificidad <- marginal.sanos[2]
Predictivo.positivo <- (Sensibilidad*incidencia)/(Sensibilidad*incidencia + (1-Especificidad)*(1-incidencia))
Predictivo.negativo <- (Especificidad*(1-incidencia))/(Especificidad*(1-incidencia) + (1-Sensibilidad)*incidencia)
return(round(data.frame(Sensibilidad,Especificidad,Predictivo.positivo,Predictivo.negativo),4))
}calculo.probabilidades(2,c("Proyecto A","Proyecto B"),c(0.5,0.5),3,c("Rendimiento 1","Rendimiento 2","Rendimiento 3"),c(0.2,0.6,0.2,0.3,0.4,0.3))## $Conjunta
## Rendimiento 1 Rendimiento 2 Rendimiento 3
## Proyecto A 0.10 0.3 0.10
## Proyecto B 0.15 0.2 0.15
##
## $Total
## Rendimiento 1 Rendimiento 2 Rendimiento 3
## 0.25 0.50 0.25
##
## $Bayes
## Rendimiento 1 Rendimiento 2 Rendimiento 3
## Proyecto A 0.4 0.6 0.4
## Proyecto B 0.6 0.4 0.6
Screening(c(436,5),c(14,495),c("+","-"), c("D","no D"),0.113)Realiza los ejercicios 2 a 4 de este apartado de la colección de ejercicios de probabilidad.
Realiza los ejercicios 1 a 4 de este apartado de la colección de ejercicios de probabilidad.
Realiza los ejercicios 1, 3, y 8 de este apartado de la colección de ejercicios de probabilidad.
Realiza los ejercicios 1, 2, 5, 6 y 7 de este apartado de la colección de ejercicios de probabilidad.
Realiza los ejercicios 2 y 6 de este apartado de la colección de ejercicios de probabilidad.
Realiza los ejercicios 3 y 4 de este apartado de la colección de ejercicios de probabilidad.
Realiza los ejercicios 5, 6, 8, 10 y 17 de este apartado de la colección de ejercicios de probabilidad.
Copyright © 2018 Javier Morales. Universidad Miguel Hernández de Elche.