Está en la página 1de 27

NUEVO_LOGISTICO.

R
ANGELO ELOY PAXI ANCCOTA

El presente trabajo es un análisis del MODELO DE REGRESIÓN LOGÍSTICA BINARIA MÚLTIPLE aplicado a una
base de datos sobre el tratamiento de tuberculosis .
2019-11-24
# Regresión logística BINARIA múltiple

#VAR DEPENDIENTE : DEJA O NO EL TRATMIENTO DE TUBERCULOSIS

library(haven)
mary <- read_sav("datos-originalesMARYCANO nuevo .sav")

datos1 <- data.frame(mary)

# Análisis de las observaciones


head(datos1, 4)

## edad Edd_cod sexo PROC FF1 FF2 FF3 FE1 FE2 FT1 FT2 FT3 FT4 FT5 FT6 TB
## 1 27 1 1 1 4 2 3 1 1 2 1 1 2 1 2 0
## 2 50 4 2 1 1 1 2 2 1 2 1 1 1 5 1 1
## 3 47 3 2 1 6 3 1 3 1 2 1 1 1 6 2 0
## 4 22 1 2 2 5 3 1 4 3 2 1 1 1 8 2 1
## FA1 FA2 FA3 FA4 FA5 FA6 FP5 FI1 FI2 FI3 FI4 FI5 FI6 FI8
## 1 1 1 2 3 6 2 1 1 1 1 3 3 1 1
## 2 2 1 2 2 6 4 2 3 1 1 3 3 3 2
## 3 1 1 2 3 3 4 2 3 1 2 3 2 3 1
## 4 3 2 1 2 3 1 2 3 2 1 3 4 1 1

datos <- datos1[,-1]


head(datos, 6)

## Edd_cod sexo PROC FF1 FF2 FF3 FE1 FE2 FT1 FT2 FT3 FT4 FT5 FT6 TB FA1 FA2
## 1 1 1 1 4 2 3 1 1 2 1 1 2 1 2 0 1 1
## 2 4 2 1 1 1 2 2 1 2 1 1 1 5 1 1 2 1
## 3 3 2 1 6 3 1 3 1 2 1 1 1 6 2 0 1 1
## 4 1 2 2 5 3 1 4 3 2 1 1 1 8 2 1 3 2
## 5 4 1 2 6 4 1 5 1 2 1 1 1 6 1 1 1 1
## 6 2 1 2 6 4 3 6 1 3 2 2 2 6 1 1 4 2
## FA3 FA4 FA5 FA6 FP5 FI1 FI2 FI3 FI4 FI5 FI6 FI8
## 1 2 3 6 2 1 1 1 1 3 3 1 1
## 2 2 2 6 4 2 3 1 1 3 3 3 2
## 3 2 3 3 4 2 3 1 2 3 2 3 1
## 4 1 2 3 1 2 3 2 1 3 4 1 1
## 5 2 3 6 2 2 3 1 1 2 4 3 2
## 6 4 1 6 2 2 3 1 1 2 3 3 2

str(datos)

## 'data.frame': 60 obs. of 29 variables:


## $ Edd_cod: 'haven_labelled' num 1 4 3 1 4 2 4 2 1 3 ...
## ..- attr(*, "format.spss")= chr "F4.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "18-27 años" "28-37 años" "38-47 años" "48 a mas"
## $ sexo : 'haven_labelled' num 1 2 2 2 1 1 2 1 1 1 ...
## ..- attr(*, "label")= chr "sexo"
## ..- attr(*, "format.spss")= chr "F1.0"
## ..- attr(*, "display_width")= int 5
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "F" "M"
## $ PROC : 'haven_labelled' num 1 1 1 2 2 2 1 1 1 2 ...
## ..- attr(*, "label")= chr "Lugar de procedencia"
## ..- attr(*, "format.spss")= chr "F6.0"
## ..- attr(*, "display_width")= int 7
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "rural" "urbano"
## $ FF1 : 'haven_labelled' num 4 1 6 5 6 6 2 3 5 6 ...
## ..- attr(*, "label")= chr "Con quienes vive"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "labels")= Named num 1 2 3 4 5 6
## .. ..- attr(*, "names")= chr "solo" "hijos" "madre" "esposo/a" ...
## $ FF2 : 'haven_labelled' num 2 1 3 3 4 4 3 2 3 4 ...
## ..- attr(*, "label")= chr "Con cuantas personas vive"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 7
## ..- attr(*, "labels")= Named num 1 2 3 4 5 6 7
## .. ..- attr(*, "names")= chr "solo" "2 personas" "3-4 personas" "3-4 personas" ...
## $ FF3 : 'haven_labelled' num 3 2 1 1 1 3 1 1 1 1 ...
## ..- attr(*, "label")= chr "Quien le ofrece la fuerza emocional"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3
## .. ..- attr(*, "names")= chr "familia" "centro salud" "ninguno"
## $ FE1 : 'haven_labelled' num 1 2 3 4 5 6 3 4 4 7 ...
## ..- attr(*, "label")= chr "Actividad laboral"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4 5 6 7 8 9
## .. ..- attr(*, "names")= chr "cachuelo" "obrero" "no trabajo" "estudiante" ...
## $ FE2 : 'haven_labelled' num 1 1 1 3 1 1 1 1 3 1 ...
## ..- attr(*, "label")= chr "Ingreso económico de la familia"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3
## .. ..- attr(*, "names")= chr "< 500" "entre 750 - 1000" ">=1000"
## $ FT1 : 'haven_labelled' num 2 2 2 2 2 3 3 1 3 2 ...
## ..- attr(*, "label")= chr "Tiempo de conocimiento de la tb"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "1 mes" "2- 6 meses" "12 - 18 meses" "24 meses a mas"
## $ FT2 : 'haven_labelled' num 1 1 1 1 1 2 1 1 1 1 ...
## ..- attr(*, "label")= chr "Conocimiento de la duración del tratamiento"
## ..- attr(*, "format.spss")= chr "F2.0"
## ..- attr(*, "display_width")= int 6
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "si" "no"
## $ FT3 : 'haven_labelled' num 1 1 1 1 1 2 1 1 1 1 ...
## ..- attr(*, "label")= chr "Cantidad de pastillas"
## ..- attr(*, "format.spss")= chr "F2.0"
## ..- attr(*, "display_width")= int 5
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "si" "no"
## $ FT4 : 'haven_labelled' num 2 1 1 1 1 2 1 1 1 1 ...
## ..- attr(*, "label")= chr "Suministración de suficientes medicamentos"
## ..- attr(*, "format.spss")= chr "F2.0"
## ..- attr(*, "display_width")= int 6
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "si" "no"
## $ FT5 : 'haven_labelled' num 1 5 6 8 6 6 7 8 8 8 ...
## ..- attr(*, "label")= chr "Molestias durante el tratamiento"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4 5 6 7 8 9
## .. ..- attr(*, "names")= chr "dolor cabeza" "nauseas" "ninguno" "picazon de la piel"
...
## $ FT6 : 'haven_labelled' num 2 1 2 2 1 1 2 1 2 1 ...
## ..- attr(*, "label")= chr "Dejo el tratamiento por las molestias"
## ..- attr(*, "format.spss")= chr "F2.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "si" "no"
## $ TB : 'haven_labelled' num 0 1 0 1 1 1 0 1 0 1 ...
## ..- attr(*, "label")= chr "Tuberculosis"
## ..- attr(*, "format.spss")= chr "F2.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 0 1
## .. ..- attr(*, "names")= chr "avandona" "no avandona"
## $ FA1 : 'haven_labelled' num 1 2 1 3 1 4 3 1 1 1 ...
## ..- attr(*, "label")= chr "Condición de vivienda"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "casa propia" "casa prestada" "casa de familia" "casa al
quilada"
## $ FA2 : 'haven_labelled' num 1 1 1 2 1 2 2 1 1 1 ...
## ..- attr(*, "label")= chr "Material de vivienda"
## ..- attr(*, "format.spss")= chr "F5.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "material noble" "adobe"
## $ FA3 : 'haven_labelled' num 2 2 2 1 2 4 1 2 2 2 ...
## ..- attr(*, "label")= chr "Material del piso de su vivienda"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "madera" "cemento" "mayolica" "madera/parquet"
## $ FA4 : 'haven_labelled' num 3 2 3 2 3 1 3 1 4 2 ...
## ..- attr(*, "label")= chr "Cantidad de habitaciones"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "1 hab" "2 hab" "3 hab" "4 hab"
## $ FA5 : 'haven_labelled' num 6 6 3 3 6 6 4 6 6 5 ...
## ..- attr(*, "label")= chr "Servicios básicos"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4 5 6
## .. ..- attr(*, "names")= chr "agua" "desague" "luz" "agua, desague" ...
## $ FA6 : 'haven_labelled' num 2 4 4 1 2 2 3 2 4 3 ...
## ..- attr(*, "label")= chr "Transporte que utiliza"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "moto taxi" "micro" "taxi" "a pie"
## $ FP5 : 'haven_labelled' num 1 2 2 2 2 2 2 2 2 2 ...
## ..- attr(*, "label")= chr "Consume bebidas alcohólicas"
## ..- attr(*, "format.spss")= chr "F2.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "si" "no"
## $ FI1 : 'haven_labelled' num 1 3 3 3 3 3 1 1 1 3 ...
## ..- attr(*, "label")= chr "Sospechaba, conocía o no sabía que tenía tb"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 3
## .. ..- attr(*, "names")= chr "sospechaba" "por otro malestar"
## $ FI2 : 'haven_labelled' num 1 1 1 2 1 1 1 1 1 2 ...
## ..- attr(*, "label")= chr "Lugar de diagnostico"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "E. Minsa" "Essalud"
## $ FI3 : 'haven_labelled' num 1 1 2 1 1 1 2 2 3 2 ...
## ..- attr(*, "label")= chr "Apoyo que recibe"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3
## .. ..- attr(*, "names")= chr "alimentos" "medicamentos" "ninguno"
## $ FI4 : 'haven_labelled' num 3 3 3 3 2 2 4 4 4 2 ...
## ..- attr(*, "label")= chr "Trato del personal en la 1° visita al E.S"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "muy amable" "amable" "indiferente" "mal trato"
## $ FI5 : 'haven_labelled' num 3 3 2 4 4 3 2 3 3 2 ...
## ..- attr(*, "label")= chr "Trato del personal en las posteriores visitas"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3 4
## .. ..- attr(*, "names")= chr "muy amable" "amable" "indiferente" "mal trato"
## $ FI6 : 'haven_labelled' num 1 3 3 1 3 3 2 3 3 3 ...
## ..- attr(*, "label")= chr "Visitas domiciliarias"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2 3
## .. ..- attr(*, "names")= chr "frecuentemente" "casi nunca" "nunca"
## $ FI8 : 'haven_labelled' num 1 2 1 1 2 2 1 1 1 1 ...
## ..- attr(*, "label")= chr "Horario de atención"
## ..- attr(*, "format.spss")= chr "F8.0"
## ..- attr(*, "display_width")= int 11
## ..- attr(*, "labels")= Named num 1 2
## .. ..- attr(*, "names")= chr "es adecuado" "no es adecuado"

datos$Edd_cod=factor(datos$Edd_cod) # Edad_cod como cualitativa


datos$sexo=factor(datos$sexo) # como cualitativa
datos$PROC=factor(datos$PROC) # como cualitativa
datos$FF1=factor(datos$FF1) # como cualitativa
datos$FF2=factor(datos$FF2) # como cualitativa
datos$FF3=factor(datos$FF3) # como cualitativa
datos$FE1=factor(datos$FE1) # como cualitativa
datos$FE2=factor(datos$FE2) # como cualitativa
datos$FT1=factor(datos$FT1) # como cualitativa
datos$FT2=factor(datos$FT2) # como cualitativa
datos$FT3=factor(datos$FT3) # como cualitativa
datos$FT4=factor(datos$FT4) # como cualitativa
datos$FT5=factor(datos$FT5) # como cualitativa
datos$FT6=factor(datos$FT6) # como cualitativa
datos$TB=factor(datos$TB) # como cualitativa DEPENDIENTE
datos$FA1=factor(datos$FA1) # como cualitativa
datos$FA2=factor(datos$FA2) # como cualitativa
datos$FA3=factor(datos$FA3) # como cualitativa
datos$FA4=factor(datos$FA4) # como cualitativa
datos$FA5=factor(datos$FA5) # como cualitativa
datos$FA6=factor(datos$FA6) # como cualitativa
datos$FP5=factor(datos$FP5) # como cualitativa
datos$FI1=factor(datos$FI1) # como cualitativa
datos$FI2=factor(datos$FI2) # como cualitativa
datos$FI3=factor(datos$FI3) # como cualitativa
datos$FI4=factor(datos$FI4) # como cualitativa
datos$FI5=factor(datos$FI5) # como cualitativa
datos$FI6=factor(datos$FI6) # como cualitativa
datos$FI8=factor(datos$FI8) # como cualitativa

str(datos)

## 'data.frame': 60 obs. of 29 variables:


## $ Edd_cod: Factor w/ 4 levels "1","2","3","4": 1 4 3 1 4 2 4 2 1 3 ...
## $ sexo : Factor w/ 2 levels "1","2": 1 2 2 2 1 1 2 1 1 1 ...
## $ PROC : Factor w/ 2 levels "1","2": 1 1 1 2 2 2 1 1 1 2 ...
## $ FF1 : Factor w/ 6 levels "1","2","3","4",..: 4 1 6 5 6 6 2 3 5 6 ...
## $ FF2 : Factor w/ 4 levels "1","2","3","4": 2 1 3 3 4 4 3 2 3 4 ...
## $ FF3 : Factor w/ 3 levels "1","2","3": 3 2 1 1 1 3 1 1 1 1 ...
## $ FE1 : Factor w/ 9 levels "1","2","3","4",..: 1 2 3 4 5 6 3 4 4 7 ...
## $ FE2 : Factor w/ 3 levels "1","2","3": 1 1 1 3 1 1 1 1 3 1 ...
## $ FT1 : Factor w/ 3 levels "1","2","3": 2 2 2 2 2 3 3 1 3 2 ...
## $ FT2 : Factor w/ 2 levels "1","2": 1 1 1 1 1 2 1 1 1 1 ...
## $ FT3 : Factor w/ 2 levels "1","2": 1 1 1 1 1 2 1 1 1 1 ...
## $ FT4 : Factor w/ 2 levels "1","2": 2 1 1 1 1 2 1 1 1 1 ...
## $ FT5 : Factor w/ 8 levels "1","2","3","4",..: 1 5 6 8 6 6 7 8 8 8 ...
## $ FT6 : Factor w/ 2 levels "1","2": 2 1 2 2 1 1 2 1 2 1 ...
## $ TB : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 2 1 2 ...
## $ FA1 : Factor w/ 4 levels "1","2","3","4": 1 2 1 3 1 4 3 1 1 1 ...
## $ FA2 : Factor w/ 2 levels "1","2": 1 1 1 2 1 2 2 1 1 1 ...
## $ FA3 : Factor w/ 4 levels "1","2","3","4": 2 2 2 1 2 4 1 2 2 2 ...
## $ FA4 : Factor w/ 4 levels "1","2","3","4": 3 2 3 2 3 1 3 1 4 2 ...
## $ FA5 : Factor w/ 4 levels "3","4","5","6": 4 4 1 1 4 4 2 4 4 3 ...
## $ FA6 : Factor w/ 4 levels "1","2","3","4": 2 4 4 1 2 2 3 2 4 3 ...
## $ FP5 : Factor w/ 2 levels "1","2": 1 2 2 2 2 2 2 2 2 2 ...
## $ FI1 : Factor w/ 2 levels "1","3": 1 2 2 2 2 2 1 1 1 2 ...
## $ FI2 : Factor w/ 2 levels "1","2": 1 1 1 2 1 1 1 1 1 2 ...
## $ FI3 : Factor w/ 3 levels "1","2","3": 1 1 2 1 1 1 2 2 3 2 ...
## $ FI4 : Factor w/ 3 levels "2","3","4": 2 2 2 2 1 1 3 3 3 1 ...
## $ FI5 : Factor w/ 4 levels "1","2","3","4": 3 3 2 4 4 3 2 3 3 2 ...
## $ FI6 : Factor w/ 3 levels "1","2","3": 1 3 3 1 3 3 2 3 3 3 ...
## $ FI8 : Factor w/ 2 levels "1","2": 1 2 1 1 2 2 1 1 1 1 ...

require(ggplot2)

## Loading required package: ggplot2

tabla <- table(datos$TB, datos$Edd_cod, dnn=c("Tuberculosis (abandona 0, no abandona 1)", "


Frecuencia de edad"))
addmargins(tabla)
## Frecuencia de edad
## Tuberculosis (abandona 0, no abandona 1) 1 2 3 4 Sum
## 0 17 2 1 6 26
## 1 13 5 7 9 34
## Sum 30 7 8 15 60

#en porcentajes %
tabla_frecuencias <- prop.table(tabla) * 100
addmargins(tabla_frecuencias)

## Frecuencia de edad
## Tuberculosis (abandona 0, no abandona 1) 1 2 3
## 0 28.333333 3.333333 1.666667
## 1 21.666667 8.333333 11.666667
## Sum 50.000000 11.666667 13.333333
## Frecuencia de edad
## Tuberculosis (abandona 0, no abandona 1) 4 Sum
## 0 10.000000 43.333333
## 1 15.000000 56.666667
## Sum 25.000000 100.000000

ggplot(data = datos, mapping = aes(x = TB, y = Edd_cod,


colour = sexo)) +
geom_boxplot() +
theme_bw()
tabla1 <- table(datos$TB, datos$sexo, dnn=c("Tuberculosis (abandona 0, no abandona 1)", "SE
XO (F=1 M=2)"))
addmargins(tabla1)

## SEXO (F=1 M=2)


## Tuberculosis (abandona 0, no abandona 1) 1 2 Sum
## 0 4 22 26
## 1 14 20 34
## Sum 18 42 60

#en porcentajes %
tabla_frecuencias <- prop.table(tabla1) * 100
addmargins(tabla_frecuencias)

## SEXO (F=1 M=2)


## Tuberculosis (abandona 0, no abandona 1) 1 2 Sum
## 0 6.666667 36.666667 43.333333
## 1 23.333333 33.333333 56.666667
## Sum 30.000000 70.000000 100.000000

# Generar el modelo de regresión logística


# modelo <- glm(TB ~ Edd_cod + sexo + PROC + FF1 + FF2 + FF3 + FE1 + FE2 + FT1 +
# FT2 + FT3 + FT4 + FT5 + FT6 + FA1 + FA2 + FA3 + FA4 + FA5 + FA6 + FP5 +
# FI1 + FI2 + FI3 + FI4 + FI5 + FI6 + FI8, data = datos,
# family = "binomial")
# summary(modelo)

modelo <- glm(TB~.,data = datos, family = "binomial")

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

summary(modelo)

##
## Call:
## glm(formula = TB ~ ., family = "binomial", data = datos)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -5.268e-06 -2.408e-06 2.110e-08 2.409e-06 5.974e-06
##
## Coefficients: (24 not defined because of singularities)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.441e+02 2.192e+08 0 1
## Edd_cod2 -3.508e+01 5.480e+07 0 1
## Edd_cod3 1.113e+01 7.249e+07 0 1
## Edd_cod4 4.334e+01 7.249e+07 0 1
## sexo2 -1.875e+00 4.002e+05 0 1
## PROC2 -3.185e+00 1.342e+08 0 1
## FF12 2.505e+02 7.252e+07 0 1
## FF13 2.331e+02 1.526e+08 0 1
## FF14 1.190e+02 1.096e+08 0 1
## FF15 2.412e+02 9.493e+07 0 1
## FF16 2.412e+02 9.493e+07 0 1
## FF22 7.272e+01 5.480e+07 0 1
## FF23 -3.162e+01 5.480e+07 0 1
## FF24 NA NA NA NA
## FF32 -2.007e+02 7.253e+07 0 1
## FF33 4.655e+01 7.251e+07 0 1
## FE12 4.761e+02 2.740e+08 0 1
## FE13 -4.083e+01 1.061e+08 0 1
## FE14 4.712e+01 5.302e+05 0 1
## FE15 -9.787e+01 7.255e+07 0 1
## FE16 2.379e+01 4.748e+07 0 1
## FE17 5.572e-01 7.254e+07 0 1
## FE18 9.071e+01 7.250e+07 0 1
## FE19 1.383e+02 7.250e+07 0 1
## FE22 -2.184e+02 7.250e+07 0 1
## FE23 -8.827e+01 5.482e+07 0 1
## FT12 9.879e+01 7.251e+07 0 1
## FT13 1.467e+02 7.252e+07 0 1
## FT22 -1.398e+02 2.122e+08 0 1
## FT32 NA NA NA NA
## FT42 NA NA NA NA
## FT52 -4.757e+01 1.057e+06 0 1
## FT53 1.285e+02 4.748e+07 0 1
## FT54 -8.765e-01 8.198e+05 0 1
## FT55 NA NA NA NA
## FT56 3.612e+01 5.480e+07 0 1
## FT57 -1.807e+02 1.096e+08 0 1
## FT58 NA NA NA NA
## FT62 -4.913e+01 2.316e+05 0 1
## FA12 -6.710e+01 1.450e+08 0 1
## FA13 1.276e+02 1.061e+08 0 1
## FA14 NA NA NA NA
## FA22 NA NA NA NA
## FA32 NA NA NA NA
## FA33 NA NA NA NA
## FA34 NA NA NA NA
## FA42 NA NA NA NA
## FA43 NA NA NA NA
## FA44 NA NA NA NA
## FA54 NA NA NA NA
## FA55 NA NA NA NA
## FA56 NA NA NA NA
## FA62 NA NA NA NA
## FA63 NA NA NA NA
## FA64 NA NA NA NA
## FP52 NA NA NA NA
## FI13 NA NA NA NA
## FI22 NA NA NA NA
## FI32 4.617e-01 9.542e+05 0 1
## FI33 NA NA NA NA
## FI43 8.118e-01 3.555e+05 0 1
## FI44 -1.664e+00 4.672e+05 0 1
## FI52 3.105e+01 5.480e+07 0 1
## FI53 3.035e+01 5.480e+07 0 1
## FI54 2.928e+01 5.480e+07 0 1
## FI62 2.461e+01 4.745e+07 0 1
## FI63 2.303e+01 4.746e+07 0 1
## FI82 NA NA NA NA
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 8.2108e+01 on 59 degrees of freedom
## Residual deviance: 4.8743e-10 on 16 degrees of freedom
## AIC: 88
##
## Number of Fisher Scoring iterations: 25

#Se observa que da unos valores de Pr(>|z|) muy inconsistentes "1" y "NA" para lo cual se d
ecidió realizar
#un análisis estadístico bivariado con cada una de las variables independientes sobre la va
r "TB" realizando
# un test de chi-cuadrado para dos variables cualitativas, y es como sigue:

#chi-cuadrado para var Edd_cod


tabla <- table(datos$TB, datos$Edd_cod, dnn=c("Tuberculosis (abandona 0, no abandona 1)", "
Frecuencia de edad"))
addmargins(tabla)

## Frecuencia de edad
## Tuberculosis (abandona 0, no abandona 1) 1 2 3 4 Sum
## 0 17 2 1 6 26
## 1 13 5 7 9 34
## Sum 30 7 8 15 60

chisq.test(tabla) #no se considera

## Warning in chisq.test(tabla): Chi-squared approximation may be incorrect

##
## Pearson's Chi-squared test
##
## data: tabla
## X-squared = 5.9583, df = 3, p-value = 0.1137

#chi-cuadrado para var Sexo


tabla1 <- table(datos$TB, datos$sexo, dnn=c("TBC (abandona 0, no abandona 1)", "sexo"))
addmargins(tabla1)
## sexo
## TBC (abandona 0, no abandona 1) 1 2 Sum
## 0 4 22 26
## 1 14 20 34
## Sum 18 42 60

chisq.test(tabla1) #si se considera

##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tabla1
## X-squared = 3.5197, df = 1, p-value = 0.06064

#chi-cuadrado para var Lugar de procedencia


tabla2 <- table(datos$TB, datos$PROC, dnn=c("TBC (abandona 0, no abandona 1)", "procedencia
"))
addmargins(tabla2)

## procedencia
## TBC (abandona 0, no abandona 1) 1 2 Sum
## 0 20 6 26
## 1 12 22 34
## Sum 32 28 60

chisq.test(tabla2) #si se considera

##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tabla2
## X-squared = 8.6541, df = 1, p-value = 0.003263

#chi-cuadrado para var Con quienes vive


tabla3 <- table(datos$TB, datos$FF1, dnn=c("TBC (abandona 0, no abandona 1)", "con quienes
vive"))
addmargins(tabla3)

## con quienes vive


## TBC (abandona 0, no abandona 1) 1 2 3 4 5 6 Sum
## 0 0 2 4 9 9 2 26
## 1 6 4 2 4 8 10 34
## Sum 6 6 6 13 17 12 60

chisq.test(tabla3) #si se considera

## Warning in chisq.test(tabla3): Chi-squared approximation may be incorrect

##
## Pearson's Chi-squared test
##
## data: tabla3
## X-squared = 13.828, df = 5, p-value = 0.01674

#chi-cuadrado para var Con cuantas personas vive


tabla4 <- table(datos$TB, datos$FF2, dnn=c("TBC (abandona 0, no abandona 1)", "con cuantas
personas vive"))
addmargins(tabla4)

## con cuantas personas vive


## TBC (abandona 0, no abandona 1) 1 2 3 4 Sum
## 0 0 12 13 1 26
## 1 6 8 12 8 34
## Sum 6 20 25 9 60

chisq.test(tabla4) #si se considera

## Warning in chisq.test(tabla4): Chi-squared approximation may be incorrect

##
## Pearson's Chi-squared test
##
## data: tabla4
## X-squared = 11.421, df = 3, p-value = 0.009655

modelo2 <- glm(TB ~ Edd_cod + sexo + PROC + FF2 + FT1 + FT6 + FI5 + FE2 + FI3, data = d
atos, family = "binomial")

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

summary(modelo2)

##
## Call:
## glm(formula = TB ~ Edd_cod + sexo + PROC + FF2 + FT1 + FT6 +
## FI5 + FE2 + FI3, family = "binomial", data = datos)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.9005 0.0000 0.0000 0.0000 1.4823
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -174.82 1041224.57 0.000 1.000
## Edd_cod2 12.25 320204.48 0.000 1.000
## Edd_cod3 55.48 503070.51 0.000 1.000
## Edd_cod4 121.87 359204.45 0.000 1.000
## sexo2 -180.34 155697.15 -0.001 0.999
## PROC2 277.62 207374.52 0.001 0.999
## FF22 -102.92 616697.13 0.000 1.000
## FF23 -187.13 619896.76 0.000 1.000
## FF24 -165.63 764041.22 0.000 1.000
## FT12 82.63 98238.41 0.001 0.999
## FT13 -155.85 193910.02 -0.001 0.999
## FT62 -66.43 168047.64 0.000 1.000
## FI52 216.24 550560.02 0.000 1.000
## FI53 240.58 662721.59 0.000 1.000
## FI54 -63.23 656121.87 0.000 1.000
## FE22 368.18 486599.18 0.001 0.999
## FE23 395.60 385132.54 0.001 0.999
## FI32 228.91 351379.68 0.001 0.999
## FI33 -177.20 294011.39 -0.001 1.000
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 82.1078 on 59 degrees of freedom
## Residual deviance: 3.8191 on 41 degrees of freedom
## AIC: 41.819
##
## Number of Fisher Scoring iterations: 25

modelo3 <- glm(TB ~ Edd_cod + sexo + PROC + FT1 + FT6 + FE2 + FI3, data = datos, family
= "binomial")
summary(modelo3)

##
## Call:
## glm(formula = TB ~ Edd_cod + sexo + PROC + FT1 + FT6 + FE2 +
## FI3, family = "binomial", data = datos)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.0019 -0.1532 0.0121 0.2711 3.1379
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.8620 2.7997 -0.665 0.5060
## Edd_cod2 2.9552 2.6845 1.101 0.2710
## Edd_cod3 1.8662 2.8303 0.659 0.5097
## Edd_cod4 2.4032 1.9102 1.258 0.2084
## sexo2 -2.8769 2.3766 -1.210 0.2261
## PROC2 4.3110 2.0268 2.127 0.0334 *
## FT12 4.6697 2.7455 1.701 0.0890 .
## FT13 0.2303 1.8878 0.122 0.9029
## FT62 -3.8155 1.8633 -2.048 0.0406 *
## FE22 4.4224 8.2608 0.535 0.5924
## FE23 6.2071 4.1291 1.503 0.1328
## FI32 1.3098 1.8744 0.699 0.4847
## FI33 -7.7454 3.6111 -2.145 0.0320 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 82.108 on 59 degrees of freedom
## Residual deviance: 27.580 on 47 degrees of freedom
## AIC: 53.58
##
## Number of Fisher Scoring iterations: 8

modelo4 <- glm(TB ~ Edd_cod + sexo + PROC + FT1 + FT6 + FI3, data = datos, family = "bin
omial")
summary(modelo4)

##
## Call:
## glm(formula = TB ~ Edd_cod + sexo + PROC + FT1 + FT6 + FI3, family = "binomial",
## data = datos)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.57668 -0.38023 0.04864 0.42310 2.53197
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.19481 1.81842 -0.107 0.91468
## Edd_cod2 0.09437 1.49293 0.063 0.94960
## Edd_cod3 -0.84520 2.00943 -0.421 0.67404
## Edd_cod4 0.27609 1.26006 0.219 0.82656
## sexo2 -1.38661 1.44569 -0.959 0.33749
## PROC2 2.48396 1.11372 2.230 0.02573 *
## FT12 4.10532 1.95497 2.100 0.03573 *
## FT13 -0.43587 1.38030 -0.316 0.75217
## FT62 -3.33335 1.46758 -2.271 0.02313 *
## FI32 1.18971 1.41339 0.842 0.39993
## FI33 -5.11466 1.92958 -2.651 0.00803 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 82.108 on 59 degrees of freedom
## Residual deviance: 32.288 on 49 degrees of freedom
## AIC: 54.288
##
## Number of Fisher Scoring iterations: 7

modelo5 <- glm(TB ~ Edd_cod + sexo + PROC + FT6 + FI3, data = datos, family = "binomial"
)
summary(modelo5)

##
## Call:
## glm(formula = TB ~ Edd_cod + sexo + PROC + FT6 + FI3, family = "binomial",
## data = datos)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.2036 -0.4264 0.1516 0.5203 2.5219
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.6907 1.1423 1.480 0.13885
## Edd_cod2 1.1342 1.3488 0.841 0.40041
## Edd_cod3 2.1030 1.5938 1.319 0.18702
## Edd_cod4 0.1728 1.1350 0.152 0.87900
## sexo2 -1.5279 1.2001 -1.273 0.20296
## PROC2 2.1727 0.8774 2.476 0.01328 *
## FT62 -2.1105 0.9439 -2.236 0.02535 *
## FI32 -0.5770 1.0893 -0.530 0.59631
## FI33 -3.3004 1.2138 -2.719 0.00655 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 82.108 on 59 degrees of freedom
## Residual deviance: 42.560 on 51 degrees of freedom
## AIC: 60.56
##
## Number of Fisher Scoring iterations: 6

modelo6 <- glm(TB ~ PROC + FT6 + FI3 , data = datos, family = "binomial")
summary(modelo6) #.ES SISGNIFICATIVO CON LAS VARIABLES "PROCEDENCIA", "DEJÓ EL TRATAMIENTO
POR MOLESTIAS", "APOYO QUE RECIBE"

##
## Call:
## glm(formula = TB ~ PROC + FT6 + FI3, family = "binomial", data = datos)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.4520 -0.4676 0.3186 0.7467 2.4980
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.1349 0.7620 1.489 0.13641
## PROC2 1.8204 0.7914 2.300 0.02144 *
## FT62 -2.5721 0.9029 -2.849 0.00439 **
## FI32 -0.2853 0.8616 -0.331 0.74055
## FI33 -3.4581 1.0750 -3.217 0.00130 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 82.108 on 59 degrees of freedom
## Residual deviance: 46.968 on 55 degrees of freedom
## AIC: 56.968
##
## Number of Fisher Scoring iterations: 5

#prediciendo valores y prob para los 60 individuos

predict(modelo6)

## 1 2 3 4 5 6
## -1.43723865 1.13485573 -1.72252332 0.38317684 2.95527123 2.95527123
## 7 8 9 10 11 12
## -1.72252332 0.84957106 -4.89534147 2.66998656 -3.07492598 -4.89534147
## 13 14 15 16 17 18
## 2.66998656 0.38317684 -1.43723865 2.95527123 -2.32324709 1.13485573
## 19 20 21 22 23 24
## 1.13485573 0.84957106 0.38317684 2.95527123 2.95527123 -1.72252332
## 25 26 27 28 29 30
## 0.84957106 -4.89534147 2.66998656 -0.50283159 -2.32324709 2.66998656
## 31 32 33 34 35 36
## 2.95527123 -1.43723865 0.09789217 -2.32324709 0.84957106 0.84957106
## 37 38 39 40 41 42
## -2.32324709 2.66998656 -0.50283159 -2.32324709 2.66998656 2.95527123
## 43 44 45 46 47 48
## 1.13485573 2.66998656 -2.32324709 1.13485573 1.13485573 0.84957106
## 49 50 51 52 53 54
## 2.95527123 2.95527123 0.38317684 2.95527123 2.66998656 -2.32324709
## 55 56 57 58 59 60
## 0.84957106 0.84957106 -2.32324709 2.66998656 -0.50283159 -2.32324709

predict(modelo6, type = "response")

## 1 2 3 4 5 6
## 0.191973324 0.756733893 0.151546429 0.594639090 0.950512031 0.950512031
## 7 8 9 10 11 12
## 0.151546429 0.700477155 0.007425799 0.935232217 0.044153465 0.007425799
## 13 14 15 16 17 18
## 0.935232217 0.594639090 0.191973324 0.950512031 0.089215860 0.756733893
## 19 20 21 22 23 24
## 0.756733893 0.700477155 0.594639090 0.950512031 0.950512031 0.151546429
## 25 26 27 28 29 30
## 0.700477155 0.007425799 0.935232217 0.376875465 0.089215860 0.935232217
## 31 32 33 34 35 36
## 0.950512031 0.191973324 0.524453519 0.089215860 0.700477155 0.700477155
## 37 38 39 40 41 42
## 0.089215860 0.935232217 0.376875465 0.089215860 0.935232217 0.950512031
## 43 44 45 46 47 48
## 0.756733893 0.935232217 0.089215860 0.756733893 0.756733893 0.700477155
## 49 50 51 52 53 54
## 0.950512031 0.950512031 0.594639090 0.950512031 0.935232217 0.089215860
## 55 56 57 58 59 60
## 0.700477155 0.700477155 0.089215860 0.935232217 0.376875465 0.089215860

prob=predict(modelo6, type = "response")

clas=ifelse(prob<0.5,0,1)
table(clas) #☺se muestra como el modelo clasifica 0=abandonan 1=no abandonan

## clas
## 0 1
## 22 38

table(datos$TB)

##
## 0 1
## 26 34

table(datos$TB,clas)

## clas
## 0 1
## 0 20 6
## 1 2 32

#interpretacion: De 22 personas que abandonaron trat de TBC, 2 estuvieron mal clasificadas


correspondiendo
# a que continuan el trat de TBC, de igual forma en la columna NO abandonan el trat de TBC
hay 6 personas que estan mal clasificadas
# y que pertenecen al grupo de los que abandonan.

#Tasa de mala clasificación

tmc=1-sum(datos$TB==clas)/60
tmc*100 # Significa que de todas las clasificaciones de TB un 13.3% están mal clasificados

## [1] 13.33333

modelo6

##
## Call: glm(formula = TB ~ PROC + FT6 + FI3, family = "binomial", data = datos)
##
## Coefficients:
## (Intercept) PROC2 FT62 FI32 FI33
## 1.1349 1.8204 -2.5721 -0.2853 -3.4581
##
## Degrees of Freedom: 59 Total (i.e. Null); 55 Residual
## Null Deviance: 82.11
## Residual Deviance: 46.97 AIC: 56.97

#Logit = 1.1349 + 1.82 (PROC) - 2.57 (FT6 dejo por molestias?-no) - 0.2853 (FI32 Apoyo que
recibe medicamentos) - 3.4581 (ningún apoyo)

#######################
# Evaluación del modelo
########################

dif_residuos <- modelo6$null.deviance - modelo6$deviance


# Grados libertad
df <- modelo6$df.null - modelo6$df.residual
# p-value
p_value <- pchisq(q = dif_residuos, df = df, lower.tail = FALSE)

paste("Diferencia de residuos:", round(dif_residuos, 4))

## [1] "Diferencia de residuos: 35.1402"

paste("Grados de libertad:", df)

## [1] "Grados de libertad: 4"

paste("p-value:", round(p_value, 4))

## [1] "p-value: 0"

###################################
#probabilidades y grupos estimados#
###################################

prob=predict(modelo,type="response")
prob

## 1 2 3 4 5
## 1.275281e-11 1.000000e+00 1.387627e-11 1.000000e+00 1.000000e+00
## 6 7 8 9 10
## 1.000000e+00 7.554929e-12 1.000000e+00 3.390056e-12 1.000000e+00
## 11 12 13 14 15
## 1.000000e+00 2.220446e-16 1.000000e+00 2.900264e-12 1.025968e-12
## 16 17 18 19 20
## 1.000000e+00 1.458613e-12 1.000000e+00 1.000000e+00 1.000000e+00
## 21 22 23 24 25
## 1.000000e+00 1.000000e+00 1.000000e+00 2.220446e-16 1.000000e+00
## 26 27 28 29 30
## 2.526447e-12 1.000000e+00 5.293988e-12 1.848947e-12 1.000000e+00
## 31 32 33 34 35
## 1.000000e+00 1.025968e-12 2.900515e-12 1.000000e+00 2.900204e-12
## 36 37 38 39 40
## 1.000000e+00 2.900532e-12 1.000000e+00 2.900753e-12 1.085106e-11
## 41 42 43 44 45
## 1.000000e+00 2.900419e-12 7.623910e-12 1.000000e+00 3.799959e-12
## 46 47 48 49 50
## 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00
## 51 52 53 54 55
## 1.000000e+00 1.000000e+00 1.000000e+00 3.799959e-12 2.900204e-12
## 56 57 58 59 60
## 1.000000e+00 2.900532e-12 1.000000e+00 5.293988e-12 1.848947e-12

library(vcd)

## Loading required package: grid

predicciones <- ifelse(test = modelo6$fitted.values > 0.5, yes = 1, no = 0)


predicciones

## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1
## 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
## 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1
## 51 52 53 54 55 56 57 58 59 60
## 1 1 1 0 1 1 0 1 0 0

matriz_confusion <- table(modelo6$model$TB, predicciones,


dnn = c("observaciones", "predicciones"))
matriz_confusion

## predicciones
## observaciones 0 1
## 0 20 6
## 1 2 32

finaldata = cbind(datos, prob,predicciones)


finaldata

## Edd_cod sexo PROC FF1 FF2 FF3 FE1 FE2 FT1 FT2 FT3 FT4 FT5 FT6 TB FA1
## 1 1 1 1 4 2 3 1 1 2 1 1 2 1 2 0 1
## 2 4 2 1 1 1 2 2 1 2 1 1 1 5 1 1 2
## 3 3 2 1 6 3 1 3 1 2 1 1 1 6 2 0 1
## 4 1 2 2 5 3 1 4 3 2 1 1 1 8 2 1 3
## 5 4 1 2 6 4 1 5 1 2 1 1 1 6 1 1 1
## 6 2 1 2 6 4 3 6 1 3 2 2 2 6 1 1 4
## 7 4 2 1 2 3 1 3 1 3 1 1 1 7 2 0 3
## 8 2 1 1 3 2 1 4 1 1 1 1 1 8 1 1 1
## 9 1 1 1 5 3 1 4 3 3 1 1 1 8 2 0 1
## 10 3 1 2 6 4 1 7 1 2 1 1 1 8 1 1 1
## 11 4 2 2 4 2 1 7 1 2 1 1 1 6 2 1 1
## 12 1 1 1 3 2 1 5 2 3 1 1 1 3 2 0 1
## 13 1 2 2 1 1 3 4 1 3 1 1 1 2 1 1 3
## 14 1 2 2 5 3 3 9 1 1 2 2 2 3 2 0 2
## 15 1 2 1 4 2 2 4 1 3 1 1 1 3 2 0 4
## 16 4 1 2 2 3 1 6 1 1 1 1 1 6 1 1 1
## 17 1 2 1 5 3 1 4 3 2 1 1 1 4 1 0 1
## 18 1 1 1 4 2 3 1 1 2 1 1 2 1 1 1 1
## 19 3 2 1 1 1 2 2 1 2 1 1 1 5 1 1 2
## 20 3 1 1 6 4 1 3 1 2 1 1 1 6 1 1 1
## 21 1 2 2 5 2 1 4 2 2 1 1 1 8 2 1 3
## 22 4 2 2 6 4 1 5 1 2 1 1 1 6 1 1 1
## 23 1 1 2 6 4 3 6 1 3 2 2 2 6 1 1 4
## 24 4 2 1 2 3 1 3 1 3 1 1 1 7 2 0 3
## 25 2 2 1 3 2 1 4 1 1 1 1 1 8 1 1 1
## 26 1 2 1 5 3 1 4 3 3 1 1 1 8 2 0 1
## 27 1 1 2 6 4 1 7 1 2 1 1 1 8 1 1 1
## 28 2 2 2 4 2 1 7 1 2 1 1 1 6 1 0 1
## 29 1 2 1 3 2 1 5 2 3 1 1 1 3 1 0 1
## 30 1 1 2 1 1 3 4 1 2 1 1 1 8 1 1 3
## 31 1 2 2 5 3 3 9 1 2 2 2 2 6 1 1 2
## 32 1 2 1 4 2 2 4 1 3 1 1 1 3 2 0 4
## 33 4 2 2 6 4 1 1 1 1 1 1 1 6 2 0 1
## 34 1 2 1 2 3 1 8 3 2 1 1 1 4 1 1 1
## 35 4 2 1 4 2 1 3 1 3 1 1 1 7 1 0 3
## 36 2 2 1 5 3 1 4 1 2 1 1 1 8 1 1 1
## 37 1 2 1 5 3 1 4 3 2 1 1 1 8 1 0 1
## 38 3 1 2 6 3 1 7 1 2 1 1 1 8 1 1 1
## 39 4 2 2 4 3 1 7 1 2 1 1 1 6 1 0 1
## 40 1 1 1 3 2 1 5 2 3 1 1 1 3 1 0 1
## 41 1 2 2 1 1 3 4 1 3 1 1 1 2 1 1 3
## 42 1 2 2 5 3 3 8 1 1 2 2 2 3 1 0 2
## 43 1 2 1 4 2 2 1 1 3 1 1 1 3 1 0 4
## 44 4 2 2 2 3 1 6 1 1 1 1 1 6 1 1 1
## 45 1 2 1 5 3 1 4 3 2 1 1 1 4 1 0 1
## 46 1 1 1 4 2 3 4 1 2 1 1 2 1 1 1 1
## 47 3 2 1 1 1 2 2 1 2 1 1 1 5 1 1 2
## 48 3 2 1 6 3 1 3 1 2 1 1 1 6 1 1 1
## 49 1 2 2 5 2 1 4 2 2 1 1 1 8 1 1 3
## 50 4 2 2 4 2 1 5 1 3 1 1 1 6 1 1 1
## 51 1 2 2 5 3 1 4 3 2 1 1 1 8 2 1 3
## 52 4 1 2 6 4 1 5 1 2 1 1 1 6 1 1 1
## 53 4 2 2 2 3 1 6 1 1 1 1 1 6 1 1 1
## 54 1 2 1 5 3 1 4 3 2 1 1 1 4 1 0 1
## 55 4 2 1 4 2 1 3 1 3 1 1 1 7 1 0 3
## 56 2 2 1 5 3 1 4 1 2 1 1 1 8 1 1 1
## 57 1 2 1 5 3 1 4 3 2 1 1 1 8 1 0 1
## 58 3 1 2 5 3 1 7 1 2 1 1 1 8 1 1 1
## 59 2 2 2 4 2 1 7 1 2 1 1 1 6 1 0 1
## 60 1 2 1 3 2 1 5 2 3 1 1 1 3 1 0 1
## FA2 FA3 FA4 FA5 FA6 FP5 FI1 FI2 FI3 FI4 FI5 FI6 FI8 prob
## 1 1 2 3 6 2 1 1 1 1 3 3 1 1 1.275281e-11
## 2 1 2 2 6 4 2 3 1 1 3 3 3 2 1.000000e+00
## 3 1 2 3 3 4 2 3 1 2 3 2 3 1 1.387627e-11
## 4 2 1 2 3 1 2 3 2 1 3 4 1 1 1.000000e+00
## 5 1 2 3 6 2 2 3 1 1 2 4 3 2 1.000000e+00
## 6 2 4 1 6 2 2 3 1 1 2 3 3 2 1.000000e+00
## 7 2 1 3 4 3 2 1 1 2 4 2 2 1 7.554929e-12
## 8 1 2 1 6 2 2 1 1 2 4 3 3 1 1.000000e+00
## 9 1 2 4 6 4 2 1 1 3 4 3 3 1 3.390056e-12
## 10 1 2 2 5 3 2 3 2 2 2 2 3 1 1.000000e+00
## 11 1 2 3 6 4 2 1 1 3 2 3 3 1 1.000000e+00
## 12 1 2 4 6 4 1 1 1 3 3 2 3 2 2.220446e-16
## 13 2 4 1 5 4 2 3 1 2 3 2 2 2 1.000000e+00
## 14 2 4 2 6 2 2 3 2 1 3 3 2 2 2.900264e-12
## 15 1 3 1 6 2 2 1 1 1 3 3 3 1 1.025968e-12
## 16 1 2 2 6 4 2 3 1 1 4 3 3 2 1.000000e+00
## 17 1 2 3 6 2 2 1 1 3 4 2 3 1 1.458613e-12
## 18 1 2 3 6 2 1 1 1 1 3 2 1 1 1.000000e+00
## 19 1 2 2 6 4 2 3 1 1 3 3 3 2 1.000000e+00
## 20 1 2 3 3 4 2 3 1 2 3 1 3 1 1.000000e+00
## 21 2 1 2 3 1 2 3 2 1 3 2 3 1 1.000000e+00
## 22 1 2 3 6 2 2 3 1 1 3 3 3 2 1.000000e+00
## 23 2 4 1 6 2 2 3 1 1 4 3 3 2 1.000000e+00
## 24 2 1 3 4 3 2 1 1 2 4 3 1 1 2.220446e-16
## 25 1 2 1 6 2 2 1 1 2 3 3 2 1 1.000000e+00
## 26 1 2 4 6 4 2 1 1 3 4 3 2 1 2.526447e-12
## 27 1 2 2 5 3 2 3 2 2 3 2 1 1 1.000000e+00
## 28 1 2 3 6 4 2 1 1 3 3 3 1 1 5.293988e-12
## 29 1 2 4 6 4 1 1 1 3 3 3 3 2 1.848947e-12
## 30 2 4 1 5 4 2 3 1 2 2 3 3 2 1.000000e+00
## 31 2 4 2 6 2 2 3 2 1 2 3 3 2 1.000000e+00
## 32 1 3 1 6 2 2 1 1 1 3 3 3 1 1.025968e-12
## 33 1 2 2 6 4 2 3 1 2 4 4 3 2 2.900515e-12
## 34 1 2 3 6 2 2 1 1 3 4 3 2 1 1.000000e+00
## 35 2 1 3 6 3 2 1 1 2 3 3 1 1 2.900204e-12
## 36 1 2 1 6 2 2 1 1 2 4 3 3 1 1.000000e+00
## 37 1 2 4 6 4 2 1 1 3 4 4 2 1 2.900532e-12
## 38 1 2 2 5 3 2 3 2 2 2 3 3 1 1.000000e+00
## 39 1 2 3 6 4 2 1 1 3 3 2 2 1 2.900753e-12
## 40 1 2 4 6 4 1 1 1 3 2 2 3 2 1.085106e-11
## 41 2 4 1 5 4 2 3 1 2 3 3 3 2 1.000000e+00
## 42 2 4 2 6 2 2 3 2 1 3 3 3 2 2.900419e-12
## 43 1 3 1 6 2 2 1 1 1 3 3 3 1 7.623910e-12
## 44 1 2 2 6 4 2 3 1 2 3 4 3 2 1.000000e+00
## 45 1 2 3 6 2 2 1 1 3 2 3 3 1 3.799959e-12
## 46 1 2 3 6 2 1 1 1 1 3 3 1 1 1.000000e+00
## 47 1 2 2 6 4 2 3 1 1 2 3 3 2 1.000000e+00
## 48 1 2 3 3 4 2 3 1 2 3 3 2 1 1.000000e+00
## 49 2 1 2 3 1 2 3 2 1 3 3 1 1 1.000000e+00
## 50 1 2 3 6 2 2 3 1 1 3 3 2 2 1.000000e+00
## 51 2 1 2 3 1 2 3 2 1 3 4 1 1 1.000000e+00
## 52 1 2 3 6 2 2 3 1 1 2 4 3 2 1.000000e+00
## 53 1 2 2 6 4 2 3 1 2 3 4 3 2 1.000000e+00
## 54 1 2 3 6 2 2 1 1 3 2 3 3 1 3.799959e-12
## 55 2 1 3 6 3 2 1 1 2 3 3 1 1 2.900204e-12
## 56 1 2 1 6 2 2 1 1 2 4 3 3 1 1.000000e+00
## 57 1 2 4 6 4 2 1 1 3 4 4 2 1 2.900532e-12
## 58 1 2 2 5 3 2 3 2 2 2 3 3 1 1.000000e+00
## 59 1 2 3 6 4 2 1 1 3 3 3 1 1 5.293988e-12
## 60 1 2 4 6 4 1 1 1 3 3 3 3 2 1.848947e-12
## predicciones
## 1 0
## 2 1
## 3 0
## 4 1
## 5 1
## 6 1
## 7 0
## 8 1
## 9 0
## 10 1
## 11 0
## 12 0
## 13 1
## 14 1
## 15 0
## 16 1
## 17 0
## 18 1
## 19 1
## 20 1
## 21 1
## 22 1
## 23 1
## 24 0
## 25 1
## 26 0
## 27 1
## 28 0
## 29 0
## 30 1
## 31 1
## 32 0
## 33 1
## 34 0
## 35 1
## 36 1
## 37 0
## 38 1
## 39 0
## 40 0
## 41 1
## 42 1
## 43 1
## 44 1
## 45 0
## 46 1
## 47 1
## 48 1
## 49 1
## 50 1
## 51 1
## 52 1
## 53 1
## 54 0
## 55 1
## 56 1
## 57 0
## 58 1
## 59 0
## 60 0

mosaic(matriz_confusion, shade = T, colorize = T,


gp = gpar(fill = matrix(c("green3", "red2", "red2", "green3"), 2, 2)))

write.csv(finaldata,"Trat_TBC.csv")

#####################################
# 2. Curva ROC y Área bajo la curva #
#####################################
library(pROC)

## Type 'citation("pROC")' for a citation.

##
## Attaching package: 'pROC'

## The following objects are masked from 'package:stats':


##
## cov, smooth, var

prob=predict(modelo6,type="response")
prob

## 1 2 3 4 5 6
## 0.191973324 0.756733893 0.151546429 0.594639090 0.950512031 0.950512031
## 7 8 9 10 11 12
## 0.151546429 0.700477155 0.007425799 0.935232217 0.044153465 0.007425799
## 13 14 15 16 17 18
## 0.935232217 0.594639090 0.191973324 0.950512031 0.089215860 0.756733893
## 19 20 21 22 23 24
## 0.756733893 0.700477155 0.594639090 0.950512031 0.950512031 0.151546429
## 25 26 27 28 29 30
## 0.700477155 0.007425799 0.935232217 0.376875465 0.089215860 0.935232217
## 31 32 33 34 35 36
## 0.950512031 0.191973324 0.524453519 0.089215860 0.700477155 0.700477155
## 37 38 39 40 41 42
## 0.089215860 0.935232217 0.376875465 0.089215860 0.935232217 0.950512031
## 43 44 45 46 47 48
## 0.756733893 0.935232217 0.089215860 0.756733893 0.756733893 0.700477155
## 49 50 51 52 53 54
## 0.950512031 0.950512031 0.594639090 0.950512031 0.935232217 0.089215860
## 55 56 57 58 59 60
## 0.700477155 0.700477155 0.089215860 0.935232217 0.376875465 0.089215860

g <- roc(TB ~ prob, datos)

## Setting levels: control = 0, case = 1

## Setting direction: controls < cases

plot(g)
#Calculando área bajo la curva
areaROC<-auc(roc(datos$TB,prob))

## Setting levels: control = 0, case = 1


## Setting direction: controls < cases

areaROC

## Area under the curve: 0.8931

ROC<-plot.roc(datos$TB,prob, xlab="1- Especificidad", ylab="Sensibilidad",


main = paste('Area Bajo la Curva =',round(areaROC,4)), col="blue")

## Setting levels: control = 0, case = 1


## Setting direction: controls < cases
#######################################
# Predicción para nuevos individuos #
#######################################

# Procedencia trat molestias apoyo que recibe


# 2 1 3

modelo6

##
## Call: glm(formula = TB ~ PROC + FT6 + FI3, family = "binomial", data = datos)
##
## Coefficients:
## (Intercept) PROC2 FT62 FI32 FI33
## 1.1349 1.8204 -2.5721 -0.2853 -3.4581
##
## Degrees of Freedom: 59 Total (i.e. Null); 55 Residual
## Null Deviance: 82.11
## Residual Deviance: 46.97 AIC: 56.97

nuevo1<-data.frame(PROC="2",FT6="1",FI3="3")
predict(modelo6,newdata=nuevo1,type="response")

## 1
## 0.3768755
# Procedencia trat molestias apoyo que recibe

# 2 2 2

modelo6

##
## Call: glm(formula = TB ~ PROC + FT6 + FI3, family = "binomial", data = datos)
##
## Coefficients:
## (Intercept) PROC2 FT62 FI32 FI33
## 1.1349 1.8204 -2.5721 -0.2853 -3.4581
##
## Degrees of Freedom: 59 Total (i.e. Null); 55 Residual
## Null Deviance: 82.11
## Residual Deviance: 46.97 AIC: 56.97

nuevo1<-data.frame(PROC="2",FT6="2",FI3="2")
predict(modelo6,newdata=nuevo1,type="response")

## 1
## 0.5244535

#rmarkdown::render("NUEVO_LOGISTICO.R", "pdf_document")

También podría gustarte