Guión introductorio para un análisis exploratorio de la base de datos sobre una encuesta a los estudiantes del curso Estadística Descriptiva y Análisis Exploratorio de datos.
El resumen inicial de la base de datos se obtiene de la siguiente manera
summary(encuesta)
## Encuesta Género Edad Carrera
## Min. : 1.0 Femenino : 8 Min. :16.0 Ing. Sistemas :31
## 1st Qu.:15.2 Masculino:50 1st Qu.:18.0 Estadística :15
## Median :29.5 Median :19.0 Ing. Civil : 4
## Mean :29.5 Mean :19.8 Ing. Administrativa: 2
## 3rd Qu.:43.8 3rd Qu.:21.0 ing. Industrial : 2
## Max. :58.0 Max. :27.0 Economía : 1
## NA's :1 (Other) : 3
## Semestre Estrato Red.Social Problemática
## Min. : 2.00 Min. :1.00 : 1 Educación :17
## 1st Qu.: 2.00 1st Qu.:3.00 No: 3 Corrupción : 7
## Median : 4.00 Median :3.00 Si:54 : 4
## Mean : 4.36 Mean :3.28 Conflicto Armado: 4
## 3rd Qu.: 6.00 3rd Qu.:4.00 Seguridad : 4
## Max. :10.00 Max. :6.00 Crisis Ambiental: 3
## (Other) :19
## PAPA ICFES Año.Ingr.UN Año.Ingr.PV T..M..R.U
## Min. :3.20 :19 Min. :2010 Min. :2005 Min. : 5.0
## 1st Qu.:3.60 3 : 2 1st Qu.:2012 1st Qu.:2010 1st Qu.:20.0
## Median :3.90 69 : 2 Median :2013 Median :2012 Median :35.0
## Mean :3.86 8 : 2 Mean :2013 Mean :2012 Mean :37.9
## 3rd Qu.:4.20 10 : 1 3rd Qu.:2014 3rd Qu.:2013 3rd Qu.:53.0
## Max. :4.60 121 : 1 Max. :2014 Max. :2014 Max. :90.0
## NA's :4 (Other):31 NA's :2 NA's :4
## Hora.Llegada Medio.Transp T..P..Ad.EDAED Asig...Matric.
## 08:00 : 8 Bus :31 Min. : 2.00 Min. :4.00
## 05:50 : 6 A pie : 9 1st Qu.: 3.00 1st Qu.:5.00
## 07:40 : 6 Metro : 8 Median : 4.00 Median :5.00
## 07:55 : 6 Microbus : 3 Mean : 6.53 Mean :5.48
## 06:00 : 5 Bicicleta: 2 3rd Qu.: 8.00 3rd Qu.:6.00
## 07:45 : 4 Carro : 2 Max. :48.00 Max. :9.00
## (Other):23 (Other) : 3 NA's :1
## T..P.Ad.Total T.P.Internet T.P.Televisión T.P.Deporte
## Min. : 3.0 Min. : 3 Min. : 0.0 Min. : 0.00
## 1st Qu.: 15.0 1st Qu.: 90 1st Qu.: 0.0 1st Qu.: 1.00
## Median : 20.0 Median :150 Median : 30.0 Median : 3.00
## Mean : 51.9 Mean :156 Mean : 37.1 Mean : 4.69
## 3rd Qu.: 28.0 3rd Qu.:210 3rd Qu.: 60.0 3rd Qu.: 5.75
## Max. :1600.0 Max. :480 Max. :180.0 Max. :60.00
## NA's :1 NA's :1
## Trabajo Número
## Min. : 0.00 7 :14
## 1st Qu.: 0.00 8 : 9
## Median : 0.00 5 : 8
## Mean : 4.19 3 : 7
## 3rd Qu.: 3.75 4 : 7
## Max. :42.00 10 : 4
## NA's :4 (Other): 9
Para ver de manera descendente la distribución de frecuenca de las distintas carreras a las que pertenecen los estudiantes se obtiene de la siguiente manera:
sort(table(encuesta$Carrera), decreasing = TRUE)
##
## Ing. Sistemas Estadística Ing. Civil
## 31 15 4
## Ing. Administrativa ing. Industrial Economía
## 2 2 1
## Ing. Eléctrica Ing. Física Matemáticas
## 1 1 1
Dado que la variable ICFES no debería ser de tipo “factor” sino numérica, examinaresmos los niveles:
levels(encuesta$ICFES)
## [1] "" "10" "121" "127" "13" "14" "15" "18" "21" "25" "3"
## [12] "32" "35" "38" "4" "40" "41" "42" "43" "489" "5" "50"
## [23] "53" "56" "57" "58" "580" "60%" "62" "63" "69" "70" "72"
## [34] "78" "8" "83" "87"
Se observa que existe un nivel en donde se dejó el símbolo de porcentaje, por lo tanto provoca que los demás número se tomen como valores alfanuméricos (factor).
Desde el lenguaje “R” se puede modificar con la función “recode()” del paquete “car” de la siguiente manera:
require(car)
## Loading required package: car
as.numeric(recode(as.character(encuesta$ICFES),"'60%'='60'"))
## [1] 87 NA NA 62 70 121 25 NA 63 60 8 10 NA 18 38 8 78
## [18] NA NA 69 NA 580 NA NA 127 40 13 NA NA 3 15 57 4 43
## [35] 53 5 72 14 3 NA NA NA 56 489 35 NA NA NA 21 NA NA
## [52] 58 41 83 50 32 69 42
Para que el resultado quede permanente se asigna a la variable que se quiera modificar.
encuesta$ICFES <- as.numeric(recode(as.character(encuesta$ICFES),"'60%'='60'"))
with(encuesta,summary(ICFES))
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 3.0 16.5 43.0 69.8 69.0 580.0 19
Gráfica exploratoria para los resultados del ICFES.
dotchart(encuesta$ICFES, pch = 19, main = "Diagrama de puntos del resultado del ICFES")
Cálculo de la edad de entrada a la universidad por primera vez:
encuesta$Edad.Entr.U <- encuesta$Edad - (2014-encuesta$Año.Ingr.PV)
summary(encuesta$Edad.Entr.U)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 15.0 17.0 17.0 17.7 18.0 26.0 5
Gráfica de puntos de la variable “Edad.Entr.U”
with(encuesta,dotchart(Edad.Entr.U,
main = "Edad de entrada a la universidad por primera vez",
xlab = "Edad (años cumplidos)",
pch = 19))
Histograma y diagrama de puntos de la variable PAPA.
with(encuesta,dotchart(PAPA, pch=19, main = "Diagrama de puntos del PAPA"))
with(encuesta,hist(PAPA, main = "Histograma del PAPA"))
Relación entre Edad y PAPA.
with(encuesta,plot(Edad, PAPA, main = "Relación de Edad con PAPA", pch = 19))
Relación entre Semestre y PAPA
with(encuesta,plot(Semestre, PAPA, pch = 19,
main = "Relación entre Semestre y PAPA"))
Convertir la hora de llegada en formato de tiempo.
encuesta$Hora.Llegada <- as.POSIXct(strptime(encuesta$Hora.Llegada,
format = "%H:%M"))
Cálculo del tiempo en horas y fraccion de hora al llegar a la universidad.
encuesta$HoraLlegada <- as.integer(format(encuesta$Hora.Llegada, "%H")) +
as.integer(format(encuesta$Hora.Llegada, "%M"))/60
Diagrama de puntos de la hora de llegada a la Universidad.
with(encuesta,hist(HoraLlegada))
with(encuesta,dotchart(HoraLlegada))
Relación entre el tiempo que se demoran en llegar a la Universidad y la hora de llegada.
with(encuesta,plot(HoraLlegada, T..M..R.U, pch = 19,
main ="Relación entre hora de llegada a la Universidad y el tiempo en llegar",
xlab = "Hora de llegada (horas)",
ylab = "Tiempo que tarda en llegar a la Universidad (minutos)"))