Datasets
# df ---------
df <- read.csv("edad_dentaria.csv", header = T, sep = ",")
str(df) #uff, hay 3 sexo
## 'data.frame': 462 obs. of 14 variables:
## $ Marca.temporal : Factor w/ 461 levels "10/9/2016 16:32:05",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ Su.nombre : Factor w/ 2 levels "Carvajal","Curriel": 1 1 1 1 1 1 1 1 1 1 ...
## $ Radiografía : Factor w/ 242 levels "h_20100924_3578",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ Edad.dentaria.según.SM : num 10 15 7 10 15 5 6 12 15 4 ...
## $ Sexo : Factor w/ 3 levels "Hombre","Hombre ",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ Categoría.por.diente..3.1.: Factor w/ 6 levels "","D","E","F",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.2.: Factor w/ 6 levels "","D","E","F",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.3.: Factor w/ 7 levels "","C","D","E",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.4.: Factor w/ 9 levels "","A","B","C",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.5.: Factor w/ 10 levels "","0","A","B",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.6.: Factor w/ 7 levels "","C","D","E",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.7.: Factor w/ 10 levels "","0","A","B",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Puntaje.total : num NA NA NA NA NA NA NA NA NA NA ...
## $ EDAD.REAL : int 10 17 7 10 18 5 5 12 NA 4 ...
levels(df$Sexo) <- c("Hombre", "Hombre", "Mujer") #colapso el "Hombre " a "Hombre
# elimino los NA
sum(is.na(df$EDAD.REAL)) #hay 39 NA
## [1] 41
df <- df[ which(df$EDAD.REAL !='NA' ),]
sum(is.na(df$EDAD.REAL)) #hay 39 NA
## [1] 0
# ahora df está limpio
str(df)
## 'data.frame': 421 obs. of 14 variables:
## $ Marca.temporal : Factor w/ 461 levels "10/9/2016 16:32:05",..: 1 2 3 4 5 6 7 8 10 11 ...
## $ Su.nombre : Factor w/ 2 levels "Carvajal","Curriel": 1 1 1 1 1 1 1 1 1 1 ...
## $ Radiografía : Factor w/ 242 levels "h_20100924_3578",..: 1 2 3 4 5 6 7 8 10 11 ...
## $ Edad.dentaria.según.SM : num 10 15 7 10 15 5 6 12 4 21 ...
## $ Sexo : Factor w/ 2 levels "Hombre","Mujer": 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.1.: Factor w/ 6 levels "","D","E","F",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.2.: Factor w/ 6 levels "","D","E","F",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.3.: Factor w/ 7 levels "","C","D","E",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.4.: Factor w/ 9 levels "","A","B","C",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.5.: Factor w/ 10 levels "","0","A","B",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.6.: Factor w/ 7 levels "","C","D","E",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Categoría.por.diente..3.7.: Factor w/ 10 levels "","0","A","B",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Puntaje.total : num NA NA NA NA NA NA NA NA NA NA ...
## $ EDAD.REAL : int 10 17 7 10 18 5 5 12 4 20 ...
Estadística descriptiva
addmargins(table(dmirjian$EDAD.REAL, dmirjian$Sexo))
##
## Hombre Mujer Sum
## 3 3 1 4
## 4 5 5 10
## 5 2 3 5
## 6 8 7 15
## 7 7 6 13
## 8 7 8 15
## 9 5 9 14
## 10 4 8 12
## 11 3 9 12
## 12 8 4 12
## 13 10 6 16
## 14 4 8 12
## 15 5 6 11
## 16 4 4 8
## 17 7 5 12
## 18 5 6 11
## 19 5 6 11
## 20 3 4 7
## 21 0 1 1
## Sum 95 106 201
dmirjian %>%
summarise(PromedioReal = mean(EDAD.REAL), SD_Real = sd(EDAD.REAL))
## PromedioReal SD_Real
## 1 11.64677 4.75916
dmirjian %>%
summarise(PromedioD = mean(Edad.dentaria.según.SM), SD = sd(Edad.dentaria.según.SM))
## PromedioD SD
## 1 12.10547 3.882734
Tabla descripción de la muestra
dmirjian %>%
group_by(Sexo) %>%
summarise("N"=n(), "Promedio edad real" = mean(EDAD.REAL), "Desviación estándard edad real" = sd(EDAD.REAL),
"Promedio estimado" = mean(Edad.dentaria.según.SM), "Desviación estándard estimada" = sd(Edad.dentaria.según.SM)) %>%
ungroup()
## Source: local data frame [2 x 6]
##
## Sexo N Promedio edad real Desviación estándard edad real
## (fctr) (int) (dbl) (dbl)
## 1 Hombre 95 11.52632 4.844040
## 2 Mujer 106 11.75472 4.702201
## Variables not shown: Promedio estimado (dbl), Desviación estándard
## estimada (dbl)
dmirjian %>%
group_by(EDAD.REAL) %>%
summarise("N"=n(),
"Promedio estimado" = mean(Edad.dentaria.según.SM), "Desviación estándard estimada" = sd(Edad.dentaria.según.SM)) %>%
ungroup()
## Source: local data frame [19 x 4]
##
## EDAD.REAL N Promedio estimado Desviación estándard estimada
## (int) (int) (dbl) (dbl)
## 1 3 4 4.800000 1.6020820
## 2 4 10 5.820000 1.8498048
## 3 5 5 6.580000 0.6058052
## 4 6 15 8.433333 2.3295207
## 5 7 13 7.830769 1.3104609
## 6 8 15 9.006667 1.0284987
## 7 9 14 10.200000 1.0996503
## 8 10 12 9.491667 1.7127640
## 9 11 12 12.458333 2.2761444
## 10 12 12 13.741667 1.7578180
## 11 13 16 14.275000 2.3184765
## 12 14 12 15.675000 0.5545268
## 13 15 11 16.000000 0.0000000
## 14 16 8 16.000000 0.0000000
## 15 17 12 16.000000 0.0000000
## 16 18 11 15.972727 0.0904534
## 17 19 11 15.781818 0.7236272
## 18 20 7 16.000000 0.0000000
## 19 21 1 14.600000 NA
Estadística inferencial
Para todos
fit <- lm(dmirjian$EDAD.REAL~dmirjian$Edad.dentaria.según.SM)
fit
##
## Call:
## lm(formula = dmirjian$EDAD.REAL ~ dmirjian$Edad.dentaria.según.SM)
##
## Coefficients:
## (Intercept) dmirjian$Edad.dentaria.según.SM
## -1.514 1.087
summary(fit)
##
## Call:
## lm(formula = dmirjian$EDAD.REAL ~ dmirjian$Edad.dentaria.según.SM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.8810 -1.3565 -0.2059 1.1190 6.6411
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.51449 0.50996 -2.97 0.00335 **
## dmirjian$Edad.dentaria.según.SM 1.08722 0.04012 27.10 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.203 on 199 degrees of freedom
## Multiple R-squared: 0.7868, Adjusted R-squared: 0.7857
## F-statistic: 734.2 on 1 and 199 DF, p-value: < 2.2e-16
scatterplot(dmirjian$EDAD.REAL ~ dmirjian$Edad.dentaria.según.SM,
main = "Edad cronológica versus edad dentaria Demirjian",
xlab = "Edad cronológica", ylab = "Edad dentaria según Demirjian", xlim=c(0,21), ylim=c(0, 21))

Por sexo
boxplot(Edad.dentaria.según.SM~Sexo, data=dmirjian, main="Estimación de la edad dentaria con método de Demirjian por sexo",
xlab="Sexo", ylab="Edad dentaria", ylim=c(0,21))

boxplot(EDAD.REAL~Sexo, data=dmirjian, main="Edad real",
xlab="Sexo", ylab="Edad real", ylim=c(0,21))

Hombres
dmirjian_h <- dmirjian[ which(dmirjian$Sexo=='Hombre' ),] # SM solo hombres
dmirjian_h_fit <- lm(dmirjian_h$EDAD.REAL ~ dmirjian_h$Edad.dentaria.según.SM)
summary(dmirjian_h_fit )
##
## Call:
## lm(formula = dmirjian_h$EDAD.REAL ~ dmirjian_h$Edad.dentaria.según.SM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.8366 -1.4359 -0.1239 1.1634 5.7619
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.48666 0.81191 -1.831 0.0703 .
## dmirjian_h$Edad.dentaria.según.SM 1.08270 0.06431 16.834 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.421 on 93 degrees of freedom
## Multiple R-squared: 0.7529, Adjusted R-squared: 0.7503
## F-statistic: 283.4 on 1 and 93 DF, p-value: < 2.2e-16
dmirjian_h_fit
##
## Call:
## lm(formula = dmirjian_h$EDAD.REAL ~ dmirjian_h$Edad.dentaria.según.SM)
##
## Coefficients:
## (Intercept) dmirjian_h$Edad.dentaria.según.SM
## -1.487 1.083
scatterplot(dmirjian_h$EDAD.REAL ~ dmirjian_h$Edad.dentaria.según.SM,
main = "Edad cronológica versus edad dentaria Demirjian - Hombre",
xlab = "Edad cronológica", ylab = "Edad dentaria según Demirjian")

Mujeres
dmirjian_m <- dmirjian[ which(dmirjian$Sexo=='Mujer' ),] # Solo mujeres
dmirjian_m_fit <- lm(dmirjian_m$EDAD.REAL ~ dmirjian_m$Edad.dentaria.según.SM)
summary(dmirjian_m_fit )
##
## Call:
## lm(formula = dmirjian_m$EDAD.REAL ~ dmirjian_m$Edad.dentaria.según.SM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.9189 -1.2822 -0.3641 1.0811 6.6085
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.53645 0.64357 -2.387 0.0188 *
## dmirjian_m$Edad.dentaria.según.SM 1.09096 0.05033 21.675 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.011 on 104 degrees of freedom
## Multiple R-squared: 0.8188, Adjusted R-squared: 0.817
## F-statistic: 469.8 on 1 and 104 DF, p-value: < 2.2e-16
dmirjian_m_fit
##
## Call:
## lm(formula = dmirjian_m$EDAD.REAL ~ dmirjian_m$Edad.dentaria.según.SM)
##
## Coefficients:
## (Intercept) dmirjian_m$Edad.dentaria.según.SM
## -1.536 1.091
scatterplot(dmirjian_m$EDAD.REAL ~ dmirjian_m$Edad.dentaria.según.SM,
main = "Edad cronológica versus edad dentaria Demirjian - Mujer",
xlab = "Edad cronológica", ylab = "Edad dentaria según Demirjian")

Comparación entre h y m
anova(dmirjian_m_fit, dmirjian_h_fit)
## Warning in anova.lmlist(object, ...): models with response '"dmirjian_h
## $EDAD.REAL"' removed because response differs from model 1
## Analysis of Variance Table
##
## Response: dmirjian_m$EDAD.REAL
## Df Sum Sq Mean Sq F value Pr(>F)
## dmirjian_m$Edad.dentaria.según.SM 1 1900.84 1900.84 469.81 < 2.2e-16
## Residuals 104 420.78 4.05
##
## dmirjian_m$Edad.dentaria.según.SM ***
## Residuals
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Correlación por edad
Igual o menos de 8
dmirjian_3a8 <- dmirjian[ which(dmirjian$EDAD.REAL>=3 & dmirjian$EDAD.REAL<=8 ),]
table(dmirjian_3a8$EDAD.REAL, dmirjian_3a8$Edad.dentaria.según.SM)
##
## 3 3.2 3.9 4.1 4.2 4.9 5.1 5.4 5.6 5.8 6 6.3 6.5 6.7 6.9 7.1 7.4 7.5
## 3 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0
## 4 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0
## 5 0 0 0 0 0 0 0 0 0 0 1 1 2 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 2 0
## 7 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1
## 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
##
## 7.6 7.7 7.8 7.9 8 8.1 8.2 8.3 8.4 8.6 8.8 8.9 9 9.3 9.7 9.8 9.9 10.3
## 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
## 5 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 6 2 2 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0
## 7 2 1 0 1 1 1 0 0 1 0 0 0 2 0 1 0 0 0
## 8 0 0 1 1 0 1 1 0 0 0 1 1 1 3 1 0 1 1
##
## 11.1 11.2 16
## 3 0 0 0
## 4 0 0 0
## 5 0 0 0
## 6 1 0 1
## 7 0 0 0
## 8 0 1 0
fit_3a8 <- lm(dmirjian_3a8$EDAD.REAL ~ dmirjian_3a8$Edad.dentaria.según.SM)
summary(fit_3a8)
##
## Call:
## lm(formula = dmirjian_3a8$EDAD.REAL ~ dmirjian_3a8$Edad.dentaria.según.SM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.9270 -0.5743 -0.0136 0.9217 2.4795
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.59617 0.62910 4.127 0.000115
## dmirjian_3a8$Edad.dentaria.según.SM 0.45818 0.07953 5.761 3.07e-07
##
## (Intercept) ***
## dmirjian_3a8$Edad.dentaria.según.SM ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.283 on 60 degrees of freedom
## Multiple R-squared: 0.3562, Adjusted R-squared: 0.3454
## F-statistic: 33.19 on 1 and 60 DF, p-value: 3.068e-07
fit_3a8
##
## Call:
## lm(formula = dmirjian_3a8$EDAD.REAL ~ dmirjian_3a8$Edad.dentaria.según.SM)
##
## Coefficients:
## (Intercept) dmirjian_3a8$Edad.dentaria.según.SM
## 2.5962 0.4582
scatterplot(dmirjian_3a8$EDAD.REAL ~ dmirjian_3a8$Edad.dentaria.según.SM,
main = "Edad cronológica versus edad dentaria Demirjian - 3 a 8 años",
xlab = "Edad cronológica", ylab = "Edad dentaria según Demirjian")

de 9 a 11
dmirjian_9a11 <- dmirjian[ which(dmirjian$EDAD.REAL>=9 & dmirjian$EDAD.REAL<=11 ),]
table(dmirjian_9a11$EDAD.REAL, dmirjian_9a11$Edad.dentaria.según.SM)
##
## 6.1 7.5 7.8 8 8.3 8.5 8.7 9.2 9.6 9.8 9.9 10.1 10.4 10.6 10.7 10.8
## 9 0 0 0 0 0 1 2 0 1 2 0 0 2 1 2 0
## 10 1 0 1 1 1 0 0 1 0 1 2 0 0 1 0 1
## 11 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0
##
## 11.1 11.2 11.5 11.7 12 12.3 12.5 13.5 13.6 13.7 14.6 16
## 9 1 0 1 0 0 1 0 0 0 0 0 0
## 10 0 1 0 0 0 1 0 0 0 0 0 0
## 11 0 0 0 1 1 0 1 1 1 2 1 1
fit_dmirjian_9a11 <- lm(dmirjian_9a11$EDAD.REAL ~ dmirjian_9a11$Edad.dentaria.según.SM)
summary(fit_dmirjian_9a11)
##
## Call:
## lm(formula = dmirjian_9a11$EDAD.REAL ~ dmirjian_9a11$Edad.dentaria.según.SM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.2246 -0.7856 0.1635 0.5462 1.6017
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.10704 0.65212 12.432 1.37e-14
## dmirjian_9a11$Edad.dentaria.según.SM 0.17216 0.05989 2.875 0.00675
##
## (Intercept) ***
## dmirjian_9a11$Edad.dentaria.según.SM **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7649 on 36 degrees of freedom
## Multiple R-squared: 0.1867, Adjusted R-squared: 0.1641
## F-statistic: 8.263 on 1 and 36 DF, p-value: 0.006751
fit_dmirjian_9a11
##
## Call:
## lm(formula = dmirjian_9a11$EDAD.REAL ~ dmirjian_9a11$Edad.dentaria.según.SM)
##
## Coefficients:
## (Intercept)
## 8.1070
## dmirjian_9a11$Edad.dentaria.según.SM
## 0.1722
scatterplot(dmirjian_9a11$EDAD.REAL ~ dmirjian_9a11$Edad.dentaria.según.SM,
main = "Edad cronológica versus edad dentaria Demirjian - 9 a 11 años",
xlab = "Edad cronológica", ylab = "Edad dentaria según Demirjian")

de 12 a 21
dmirjian_12a21 <- dmirjian[ which(dmirjian$EDAD.REAL>=12 & dmirjian$EDAD.REAL<=21 ),]
table(dmirjian_12a21$EDAD.REAL, dmirjian_12a21$Edad.dentaria.según.SM)
##
## 9.1 9.2 11.5 12 12.8 13.5 13.6 13.7 14.3 14.6 15.2 15.7 15.8 16
## 12 0 0 3 1 0 1 0 1 1 2 0 1 0 2
## 13 1 1 0 1 1 0 0 0 0 4 0 3 1 4
## 14 0 0 0 0 0 0 0 0 0 2 1 1 0 8
## 15 0 0 0 0 0 0 0 0 0 0 0 0 0 11
## 16 0 0 0 0 0 0 0 0 0 0 0 0 0 8
## 17 0 0 0 0 0 0 0 0 0 0 0 0 0 12
## 18 0 0 0 0 0 0 0 0 0 0 0 1 0 10
## 19 0 0 0 0 0 0 1 0 0 0 0 0 0 10
## 20 0 0 0 0 0 0 0 0 0 0 0 0 0 7
## 21 0 0 0 0 0 0 0 0 0 1 0 0 0 0
fit_dmirjian_12a21 <- lm(dmirjian_12a21$EDAD.REAL ~ dmirjian_12a21$Edad.dentaria.según.SM)
summary(fit_dmirjian_12a21)
##
## Call:
## lm(formula = dmirjian_12a21$EDAD.REAL ~ dmirjian_12a21$Edad.dentaria.según.SM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.213 -2.041 -0.213 1.787 5.960
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.8133 2.5682 1.095 0.276
## dmirjian_12a21$Edad.dentaria.según.SM 0.8375 0.1663 5.036 2.14e-06
##
## (Intercept)
## dmirjian_12a21$Edad.dentaria.según.SM ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.334 on 99 degrees of freedom
## Multiple R-squared: 0.2039, Adjusted R-squared: 0.1959
## F-statistic: 25.36 on 1 and 99 DF, p-value: 2.14e-06
fit_dmirjian_12a21
##
## Call:
## lm(formula = dmirjian_12a21$EDAD.REAL ~ dmirjian_12a21$Edad.dentaria.según.SM)
##
## Coefficients:
## (Intercept)
## 2.8133
## dmirjian_12a21$Edad.dentaria.según.SM
## 0.8375
scatterplot(dmirjian_12a21$EDAD.REAL ~ dmirjian_12a21$Edad.dentaria.según.SM,
main = "Edad cronológica versus edad dentaria Demirjian - 12 a 21 años",
xlab = "Edad cronológica", ylab = "Edad dentaria según Demirjian")
## Warning in smoother(.x, .y, col = col[2], log.x = logged("x"), log.y =
## logged("y"), : could not fit smooth

t.test(dmirjian$Edad.dentaria.según.SM, dmirjian$EDAD.REAL)
##
## Welch Two Sample t-test
##
## data: dmirjian$Edad.dentaria.según.SM and dmirjian$EDAD.REAL
## t = 1.0588, df = 384.5, p-value = 0.2904
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.3930887 1.3105016
## sample estimates:
## mean of x mean of y
## 12.10547 11.64677
boxplot(dmirjian$Edad.dentaria.según.SM, dmirjian$EDAD.REAL,
xlab="Método", ylab="Edad",
names=c("Edad según D","Edad cronológica"),
main= "Comparación entre edad estimada por método (t-test t = 1.0672, df = 436.33, p-value = 0.2864)")
