library(tidyverse) # for data wrangling, graphs, etc
library(nnet) # for ordinal log reg
df <- read_csv("dataset/historiaactividad.csv")
Parsed with column specification:
cols(
.default = col_character(),
ID = col_integer(),
`Etnicidad?` = col_integer(),
`Apellidos mapuches?` = col_integer(),
`Lesiones de caries [5.5]` = col_integer(),
`Lesiones de caries [5.4]` = col_integer(),
`Lesiones de caries [5.3]` = col_integer(),
`Lesiones de caries [5.2]` = col_integer(),
`Lesiones de caries [5.1]` = col_integer(),
`Lesiones de caries [6.1]` = col_integer(),
`Lesiones de caries [6.2]` = col_integer(),
`Lesiones de caries [6.3]` = col_integer(),
`Lesiones de caries [6.4]` = col_integer(),
`Lesiones de caries [6.5]` = col_integer(),
`Lesiones de caries [7.5]` = col_integer(),
`Lesiones de caries [7.4]` = col_integer(),
`Lesiones de caries [7.3]` = col_integer(),
`Lesiones de caries [7.2]` = col_integer(),
`Lesiones de caries [7.1]` = col_integer(),
`Lesiones de caries [8.1]` = col_integer(),
`Lesiones de caries [8.2]` = col_integer()
# ... with 26 more columns
)
See spec(...) for full column specifications.
Select only the variables for this analysis
df <- df %>%
select(-starts_with("Lesiones")) %>%
select(-starts_with("Actividad")) # Por alguna razón no puedo ocupar -col:col
glimpse(df)
Observations: 292
Variables: 53
$ ID <int> ...
$ Apellido examinador/a <chr> ...
$ sexo <chr> ...
$ Lugar de examen <chr> ...
$ Etnicidad? <int> ...
$ Apellidos mapuches? <int> ...
$ Dtes presentes <int> ...
$ Caso o control <chr> ...
$ contarHistoria <int> ...
$ contarActividad <int> ...
$ binHistoria <chr> ...
$ binActividad <chr> ...
$ HistoriaActividad <chr> ...
$ Parentesco de/la apoderado/a <chr> ...
$ Fecha <chr> ...
$ [Placa dental] <chr> ...
$ [Cepillado] <chr> ...
$ [Pasta dental fluorada] <chr> ...
$ [Uso de mamadera DIURNA con azúcar] <chr> ...
$ [Uso de mamadera NOCTURNA con azúcar] <chr> ...
$ [Ingesta de bebidas carbonatadas con azúcar] <chr> ...
$ [Ingesta Jugos naturales] <chr> ...
$ [Ha asistido a control odg?] <chr> ...
$ [Ha asistido a control niño sano médico?] <chr> ...
$ [Huerta con alimentos en casa?] <chr> ...
$ [Agua potable en casa] <chr> ...
$ [Luz eléctrica en casa] <chr> ...
$ Previsión salud familiar <chr> ...
$ Qué idiomas se hablan en la casa? <chr> ...
$ Edad apoderado <chr> ...
$ Edad madre o apoderada femenina <chr> ...
$ Etnicidad padre o apoderado masculino <chr> ...
$ Trabajo padre o apoderado masculino <chr> ...
$ Autorreconocimiento etnicidad padres o apoderados [Padre o apoderado masculino] <chr> ...
$ Autorreconocimiento etnicidad padres o apoderados [Madre o apoderada femenina] <chr> ...
$ Empleo padres o apoderados [Padre o apoderado masculino] <chr> ...
$ Empleo padres o apoderados [Madre o apoderada femenina] <chr> ...
$ Educación padres o apoderados [Padre o apoderado masculino] <chr> ...
$ Educación padres o apoderados [Madre o apoderada femenina] <chr> ...
$ Empleo padre <chr> ...
$ Empleo madre <chr> ...
$ Vivienda <chr> ...
$ Género apoderado <chr> ...
$ [Grupo familiar se reconoce mapuche] <chr> ...
$ [Apoderado (responsable del menor) se reconoce mapuche)] <chr> ...
$ [Vive en campo?] <chr> ...
$ Puntaje ficha CAS <chr> ...
$ c1 <chr> ...
$ e <chr> ...
$ o <chr> ...
$ c3 <chr> ...
$ c1eo <chr> ...
$ c3eo <chr> ...
dim(df)
[1] 292 53
Check history of caries
options(digits = 2)
table(df$binHistoria)
No Si
197 94
Check activity of caries
table(df$binActividad)
No Si
124 167
Table History x activity in %
addmargins(prop.table(table(df$binHistoria, df$binActividad))*100)
No Si Sum
No 34.7 33.0 67.7
Si 7.9 24.4 32.3
Sum 42.6 57.4 100.0
Prepare everything for the regression Relevel
class(df$HistoriaActividad)
[1] "character"
df$HistoriaActividad <- as.factor(df$HistoriaActividad)
df$HistoriaActividad2 <- relevel(df$HistoriaActividad, ref = "NoNo")
levels(df$HistoriaActividad2)
[1] "NoNo" "NoSi" "SiNo" "SiSi"
Change all to Fct
df[] <- lapply( df, factor)
test <- multinom( HistoriaActividad2 ~
`[Placa dental]`+
`[Cepillado]`+
`[Pasta dental fluorada]` +
`[Uso de mamadera DIURNA con azúcar]` +
`[Uso de mamadera NOCTURNA con azúcar]` +
`[Ingesta de bebidas carbonatadas con azúcar]` +
`[Ingesta Jugos naturales]` +
`[Ha asistido a control odg?]` +
`[Ha asistido a control niño sano médico?]` +
`[Huerta con alimentos en casa?]` +
`[Agua potable en casa]` +
`[Luz eléctrica en casa]` +
`[Grupo familiar se reconoce mapuche]` +
`[Vive en campo?]` ,
data = df)
# weights: 120 (87 variable)
initial value 403.411659
iter 10 value 338.649295
iter 20 value 334.703810
iter 30 value 334.289864
iter 40 value 334.170181
iter 50 value 334.160093
final value 334.159513
converged
View summary of the model
summary(test)
Call:
multinom(formula = HistoriaActividad2 ~ `[Placa dental]` + `[Cepillado]` +
`[Pasta dental fluorada]` + `[Uso de mamadera DIURNA con azúcar]` +
`[Uso de mamadera NOCTURNA con azúcar]` + `[Ingesta de bebidas carbonatadas con azúcar]` +
`[Ingesta Jugos naturales]` + `[Ha asistido a control odg?]` +
`[Ha asistido a control niño sano médico?]` + `[Huerta con alimentos en casa?]` +
`[Agua potable en casa]` + `[Luz eléctrica en casa]` + `[Grupo familiar se reconoce mapuche]` +
`[Vive en campo?]`, data = df)
Coefficients:
(Intercept) `[Placa dental]`No `[Placa dental]`Si `[Cepillado]`No
NoSi 0.17 -0.014 0.975 0.50
SiNo -1.36 -0.950 -0.272 -0.76
SiSi -0.08 0.037 -0.051 -0.26
`[Cepillado]`Si `[Pasta dental fluorada]`No `[Pasta dental fluorada]`Si
NoSi 0.46 0.59 0.37
SiNo -0.46 0.10 -1.32
SiSi 0.24 0.19 -0.21
`[Uso de mamadera DIURNA con azúcar]`No
NoSi 0.087
SiNo -0.484
SiSi -0.278
`[Uso de mamadera DIURNA con azúcar]`Si
NoSi 0.87
SiNo -0.74
SiSi 0.26
`[Uso de mamadera NOCTURNA con azúcar]`No
NoSi 0.77
SiNo -0.31
SiSi 1.02
`[Uso de mamadera NOCTURNA con azúcar]`Si
NoSi 0.19
SiNo -0.91
SiSi -1.03
`[Ingesta de bebidas carbonatadas con azúcar]`No
NoSi 0.23
SiNo -0.74
SiSi -0.81
`[Ingesta de bebidas carbonatadas con azúcar]`Si
NoSi 0.73
SiNo -0.49
SiSi 0.80
`[Ingesta Jugos naturales]`No `[Ingesta Jugos naturales]`Si
NoSi 0.610 0.350
SiNo -0.478 -0.744
SiSi -0.038 0.024
`[Ha asistido a control odg?]`No `[Ha asistido a control odg?]`Si
NoSi 0.55 0.41
SiNo -1.02 -0.20
SiSi -1.19 1.17
`[Ha asistido a control niño sano médico?]`No
NoSi -7.7
SiNo -7.9
SiSi -13.1
`[Ha asistido a control niño sano médico?]`Si
NoSi 8.7
SiNo 6.6
SiSi 13.0
`[Huerta con alimentos en casa?]`No `[Huerta con alimentos en casa?]`Si
NoSi 0.14 0.82
SiNo -0.98 -0.24
SiSi -0.53 0.52
`[Agua potable en casa]`No `[Agua potable en casa]`Si
NoSi 0.798 0.163
SiNo -1.282 0.060
SiSi -0.047 0.033
`[Luz eléctrica en casa]`No `[Luz eléctrica en casa]`Si
NoSi 15.5 -14.492
SiNo -1.3 0.098
SiSi 15.2 -15.239
`[Grupo familiar se reconoce mapuche]`No
NoSi 0.28
SiNo -0.77
SiSi -0.23
`[Grupo familiar se reconoce mapuche]`Si `[Vive en campo?]`No
NoSi 0.68 0.77
SiNo -0.45 -0.92
SiSi 0.21 -0.16
`[Vive en campo?]`Si
NoSi 0.19
SiNo -0.30
SiSi 0.14
Std. Errors:
(Intercept) `[Placa dental]`No `[Placa dental]`Si `[Cepillado]`No
NoSi 0.22 16.51 16.51 16.51
SiNo 0.35 0.36 0.35 0.37
SiSi 0.23 6.08 6.08 6.08
`[Cepillado]`Si `[Pasta dental fluorada]`No `[Pasta dental fluorada]`Si
NoSi 16.51 16.51 16.51
SiNo 0.36 0.56 0.52
SiSi 6.08 6.10 6.10
`[Uso de mamadera DIURNA con azúcar]`No
NoSi 16.51
SiNo 0.62
SiSi 6.09
`[Uso de mamadera DIURNA con azúcar]`Si
NoSi 16.51
SiNo 0.67
SiSi 6.09
`[Uso de mamadera NOCTURNA con azúcar]`No
NoSi 16.51
SiNo 0.49
SiSi 6.09
`[Uso de mamadera NOCTURNA con azúcar]`Si
NoSi 16.5
SiNo 0.5
SiSi 6.1
`[Ingesta de bebidas carbonatadas con azúcar]`No
NoSi 16.51
SiNo 0.36
SiSi 6.08
`[Ingesta de bebidas carbonatadas con azúcar]`Si
NoSi 16.51
SiNo 0.34
SiSi 6.08
`[Ingesta Jugos naturales]`No `[Ingesta Jugos naturales]`Si
NoSi 16.51 16.51
SiNo 0.43 0.39
SiSi 6.09 6.08
`[Ha asistido a control odg?]`No `[Ha asistido a control odg?]`Si
NoSi 16.51 16.51
SiNo 0.47 0.45
SiSi 6.10 6.10
`[Ha asistido a control niño sano médico?]`No
NoSi 2.1e+02
SiNo 1.1e-06
SiSi 1.3e+02
`[Ha asistido a control niño sano médico?]`Si
NoSi 178.60
SiNo 0.13
SiSi 114.95
`[Huerta con alimentos en casa?]`No `[Huerta con alimentos en casa?]`Si
NoSi 16.51 16.51
SiNo 0.41 0.41
SiSi 6.08 6.08
`[Agua potable en casa]`No `[Agua potable en casa]`Si
NoSi 16.51 16.51
SiNo 0.65 0.58
SiSi 6.09 6.09
`[Luz eléctrica en casa]`No `[Luz eléctrica en casa]`Si
NoSi 5.2e+01 19.47
SiNo 3.7e-07 0.13
SiSi 3.0e+01 42.05
`[Grupo familiar se reconoce mapuche]`No
NoSi 16.51
SiNo 0.39
SiSi 6.08
`[Grupo familiar se reconoce mapuche]`Si `[Vive en campo?]`No
NoSi 16.51 16.51
SiNo 0.39 0.41
SiSi 6.08 6.08
`[Vive en campo?]`Si
NoSi 16.51
SiNo 0.39
SiSi 6.08
Residual Deviance: 668
AIC: 764
Check ## Prediction
head(predict(test, df, type = "prob"))
NoNo NoSi SiNo SiSi
1 0.16 0.082 0.094 0.67
2 0.30 0.351 0.076 0.27
3 0.29 0.332 0.253 0.13
4 0.13 0.351 0.041 0.48
5 0.30 0.351 0.076 0.27
6 0.27 0.359 0.039 0.33
z <- summary(test)$coefficients/summary(test)$standard.errors
z
(Intercept) `[Placa dental]`No `[Placa dental]`Si `[Cepillado]`No
NoSi 0.76 -0.00087 0.0590 0.030
SiNo -3.84 -2.60978 -0.7669 -2.086
SiSi -0.35 0.00601 -0.0083 -0.042
`[Cepillado]`Si `[Pasta dental fluorada]`No `[Pasta dental fluorada]`Si
NoSi 0.028 0.036 0.022
SiNo -1.280 0.184 -2.570
SiSi 0.040 0.032 -0.034
`[Uso de mamadera DIURNA con azúcar]`No
NoSi 0.0053
SiNo -0.7763
SiSi -0.0457
`[Uso de mamadera DIURNA con azúcar]`Si
NoSi 0.053
SiNo -1.098
SiSi 0.043
`[Uso de mamadera NOCTURNA con azúcar]`No
NoSi 0.046
SiNo -0.644
SiSi 0.167
`[Uso de mamadera NOCTURNA con azúcar]`Si
NoSi 0.012
SiNo -1.824
SiSi -0.170
`[Ingesta de bebidas carbonatadas con azúcar]`No
NoSi 0.014
SiNo -2.057
SiSi -0.134
`[Ingesta de bebidas carbonatadas con azúcar]`Si
NoSi 0.044
SiNo -1.440
SiSi 0.131
`[Ingesta Jugos naturales]`No `[Ingesta Jugos naturales]`Si
NoSi 0.0370 0.0212
SiNo -1.1083 -1.9011
SiSi -0.0062 0.0039
`[Ha asistido a control odg?]`No `[Ha asistido a control odg?]`Si
NoSi 0.033 0.025
SiNo -2.185 -0.448
SiSi -0.195 0.193
`[Ha asistido a control niño sano médico?]`No
NoSi -3.6e-02
SiNo -7.0e+06
SiSi -1.0e-01
`[Ha asistido a control niño sano médico?]`Si
NoSi 0.049
SiNo 51.893
SiSi 0.113
`[Huerta con alimentos en casa?]`No `[Huerta con alimentos en casa?]`Si
NoSi 0.0086 0.050
SiNo -2.4269 -0.574
SiSi -0.0874 0.085
`[Agua potable en casa]`No `[Agua potable en casa]`Si
NoSi 0.0483 0.0099
SiNo -1.9874 0.1041
SiSi -0.0077 0.0054
`[Luz eléctrica en casa]`No `[Luz eléctrica en casa]`Si
NoSi 2.9e-01 -0.74
SiNo -3.6e+06 0.77
SiSi 5.1e-01 -0.36
`[Grupo familiar se reconoce mapuche]`No
NoSi 0.017
SiNo -1.993
SiSi -0.037
`[Grupo familiar se reconoce mapuche]`Si `[Vive en campo?]`No
NoSi 0.041 0.047
SiNo -1.173 -2.229
SiSi 0.035 -0.026
`[Vive en campo?]`Si
NoSi 0.011
SiNo -0.758
SiSi 0.024
p <- (1 - pnorm(abs(z), 0, 1))*2
p
(Intercept) `[Placa dental]`No `[Placa dental]`Si `[Cepillado]`No
NoSi 0.44820 0.9993 0.95 0.976
SiNo 0.00012 0.0091 0.44 0.037
SiSi 0.72913 0.9952 0.99 0.966
`[Cepillado]`Si `[Pasta dental fluorada]`No `[Pasta dental fluorada]`Si
NoSi 0.98 0.97 0.98
SiNo 0.20 0.85 0.01
SiSi 0.97 0.97 0.97
`[Uso de mamadera DIURNA con azúcar]`No
NoSi 1.00
SiNo 0.44
SiSi 0.96
`[Uso de mamadera DIURNA con azúcar]`Si
NoSi 0.96
SiNo 0.27
SiSi 0.97
`[Uso de mamadera NOCTURNA con azúcar]`No
NoSi 0.96
SiNo 0.52
SiSi 0.87
`[Uso de mamadera NOCTURNA con azúcar]`Si
NoSi 0.991
SiNo 0.068
SiSi 0.865
`[Ingesta de bebidas carbonatadas con azúcar]`No
NoSi 0.99
SiNo 0.04
SiSi 0.89
`[Ingesta de bebidas carbonatadas con azúcar]`Si
NoSi 0.96
SiNo 0.15
SiSi 0.90
`[Ingesta Jugos naturales]`No `[Ingesta Jugos naturales]`Si
NoSi 0.97 0.983
SiNo 0.27 0.057
SiSi 1.00 0.997
`[Ha asistido a control odg?]`No `[Ha asistido a control odg?]`Si
NoSi 0.973 0.98
SiNo 0.029 0.65
SiSi 0.846 0.85
`[Ha asistido a control niño sano médico?]`No
NoSi 0.97
SiNo 0.00
SiSi 0.92
`[Ha asistido a control niño sano médico?]`Si
NoSi 0.96
SiNo 0.00
SiSi 0.91
`[Huerta con alimentos en casa?]`No `[Huerta con alimentos en casa?]`Si
NoSi 0.993 0.96
SiNo 0.015 0.57
SiSi 0.930 0.93
`[Agua potable en casa]`No `[Agua potable en casa]`Si
NoSi 0.961 0.99
SiNo 0.047 0.92
SiSi 0.994 1.00
`[Luz eléctrica en casa]`No `[Luz eléctrica en casa]`Si
NoSi 0.77 0.46
SiNo 0.00 0.44
SiSi 0.61 0.72
`[Grupo familiar se reconoce mapuche]`No
NoSi 0.986
SiNo 0.046
SiSi 0.970
`[Grupo familiar se reconoce mapuche]`Si `[Vive en campo?]`No
NoSi 0.97 0.963
SiNo 0.24 0.026
SiSi 0.97 0.979
`[Vive en campo?]`Si
NoSi 0.99
SiNo 0.45
SiSi 0.98
head(fitted(test))
NoNo NoSi SiNo SiSi
1 0.16 0.082 0.094 0.67
2 0.30 0.351 0.076 0.27
3 0.29 0.332 0.253 0.13
4 0.13 0.351 0.041 0.48
5 0.30 0.351 0.076 0.27
6 0.27 0.359 0.039 0.33
df$predict <- predict(test, df)
addmargins(table(df$predict, df$HistoriaActividad2))
NoNo NoSi SiNo SiSi Sum
NoNo 43 23 7 5 78
NoSi 51 64 14 44 173
SiNo 1 0 1 0 2
SiSi 6 9 1 22 38
Sum 101 96 23 71 291
chisq.test(table(df$predict, df$HistoriaActividad2))
Chi-squared approximation may be incorrect
Pearson's Chi-squared test
data: table(df$predict, df$HistoriaActividad2)
X-squared = 50, df = 9, p-value = 5e-08
oddrat
(Intercept)
2.4e+00
`[Placa dental]`No
9.8e-01
`[Placa dental]`Si
1.7e+00
`[Cepillado]`No
8.3e-01
`[Cepillado]`Si
NA
`[Pasta dental fluorada]`No
1.6e+00
`[Pasta dental fluorada]`Si
NA
`[Uso de mamadera DIURNA con azúcar]`No
5.8e-01
`[Uso de mamadera DIURNA con azúcar]`Si
NA
`[Uso de mamadera NOCTURNA con azúcar]`No
2.5e+00
`[Uso de mamadera NOCTURNA con azúcar]`Si
NA
`[Ingesta de bebidas carbonatadas con azúcar]`No
4.8e-01
`[Ingesta de bebidas carbonatadas con azúcar]`Si
NA
`[Ingesta Jugos naturales]`No
1.2e+00
`[Ingesta Jugos naturales]`Si
NA
`[Ha asistido a control odg?]`No
6.4e-01
`[Ha asistido a control odg?]`Si
NA
`[Ha asistido a control niño sano médico?]`No
1.5e-07
`[Ha asistido a control niño sano médico?]`Si
NA
`[Huerta con alimentos en casa?]`No
4.4e-01
`[Huerta con alimentos en casa?]`Si
NA
`[Agua potable en casa]`No
1.2e+00
`[Agua potable en casa]`Si
NA
`[Luz eléctrica en casa]`No
4.6e+13
`[Luz eléctrica en casa]`Si
NA
`[Grupo familiar se reconoce mapuche]`No
6.8e-01
`[Grupo familiar se reconoce mapuche]`Si
NA
`[Vive en campo?]`No
1.0e+00
`[Vive en campo?]`Si
NA