Objetivo: Determinar la muestra de la población de alumnos inscritos en semestre Enero-Junio del 2019 en el Instituto Tecnológico de Durango

La finalidad de este script es obtener una tabla que idica el número de casos a encuestar para una investigación de tipo social de los alumnos inscritos en el ITD.

Proceso:

Análisi de datos

Librerías requeridas

Cargar los datos

datos <- read_csv("https://raw.githubusercontent.com/rpizarrog/DatosPromediosAG2017-EN2018-AD2018-/master/datos%20alumnos%20SIN%20NC%20Y%20SIN%20NOMBRE%20%20de%20cada%20CARRERA%20EJ-2019.csv")

# los datos importados datos
datos <- data.frame(datos)


# resumen de datos
#summary(datos)   

Filtrar los datos, mostrar los primeros y los últimos seis casos

# Caso de alumnos de cuarto semestre adelante
filtrados <- filter(datos, PROMEDIO > 0 & SEMESTRE >=4) # Alumnos de cuarto semestre adelante


head(filtrados) # head() Los primeros seis casos
##   NO SEMESTRE CR.APROBADOS CR.INSRITOS PROMEDIO        CARRERA
## 1  1       14          246          16    85.67 ADMINISTRACION
## 2  2       14          237          15    84.20 ADMINISTRACION
## 3  3       13          222          20    86.74 ADMINISTRACION
## 4  4       13          207          20    81.61 ADMINISTRACION
## 5  5       12          188          35    89.35 ADMINISTRACION
## 6  6       12          212          29    87.60 ADMINISTRACION
tail(filtrados) # tail() Los últimos seis casos
##        NO SEMESTRE CR.APROBADOS CR.INSRITOS PROMEDIO CARRERA
## 4404 6190        4           69          27    80.80     TIC
## 4405 6191        4           79          27    80.59     TIC
## 4406 6192        4           44          28    79.70     TIC
## 4407 6193        4           74          23    79.63     TIC
## 4408 6194        4           54          27    78.08     TIC
## 4409 6195        4           32          22    74.29     TIC

Análisis descriptivo mediante summary()

# resumen del filtrado de datos
summary(filtrados)
##        NO          SEMESTRE       CR.APROBADOS    CR.INSRITOS   
##  Min.   :   1   Min.   : 4.000   Min.   :  8.0   Min.   : 4.00  
##  1st Qu.:1641   1st Qu.: 5.000   1st Qu.:101.0   1st Qu.:21.00  
##  Median :3133   Median : 7.000   Median :149.0   Median :28.00  
##  Mean   :3125   Mean   : 7.367   Mean   :151.1   Mean   :25.65  
##  3rd Qu.:4780   3rd Qu.: 9.000   3rd Qu.:204.0   3rd Qu.:31.00  
##  Max.   :6195   Max.   :15.000   Max.   :255.0   Max.   :43.00  
##     PROMEDIO       CARRERA         
##  Min.   :74.00   Length:4409       
##  1st Qu.:81.63   Class :character  
##  Median :84.35   Mode  :character  
##  Mean   :84.83                     
##  3rd Qu.:87.77                     
##  Max.   :97.95

Determinar la tabla de contigencia de casos por carreras

# convertir a tabla y transformar a dos columnas
tablacarreras <- table(filtrados$CARRERA)
tablacarreras <- transform(tablacarreras)

# mostrar la tabla en formato de tabla identiicando la frecuencia
#tablacarreras

# poner nombre a la tabla
colnames(tablacarreras) <- c("Carrera", "Frecuencia")

# mostrar la tabla ya con nombres
#tablacarreras

# determinar el porcentaje de cada carrera conforme al total de observaciones
tablacarreras <- cbind(tablacarreras, "Porcentaje" = round(prop.table(tablacarreras$Frecuencia), 4) * 100)

tablacarreras
##                Carrera Frecuencia Porcentaje
## 1       ADMINISTRACION        323       7.33
## 2         ARQUITECTURA        443      10.05
## 3           BIOQUIMICA        268       6.08
## 4                CIVIL        510      11.57
## 5            ELECTRICA        188       4.26
## 6          ELECTRONICA        144       3.27
## 7  GESTION EMPRESARIAL        426       9.66
## 8           INDUSTRIAL        529      12.00
## 9          INFORMATICA         82       1.86
## 10            MECANICA        223       5.06
## 11         MECATRONICA        550      12.47
## 12             QUIMICA        347       7.87
## 13            SISTEMAS        325       7.37
## 14                 TIC         51       1.16

La muestra y la generación de la tabla de casos a encuestar por carrera

# Población

poblacion = length(filtrados$CARRERA)
poblacion
## [1] 4409
# Muestra
muestra = sample.size.prop(e=0.05, P=0.5, N=poblacion, level = 0.95)
muestra$n
## [1] 354

Determinar cuantos alumnos = observaciones conforme a porcenteaje ????

Identificando totales, margen al final de la tabla

##                Carrera Frecuencia Porcentaje Requieren
## 1       ADMINISTRACION        323       7.33        26
## 2         ARQUITECTURA        443      10.05        36
## 3           BIOQUIMICA        268       6.08        22
## 4                CIVIL        510      11.57        41
## 5            ELECTRICA        188       4.26        15
## 6          ELECTRONICA        144       3.27        12
## 7  GESTION EMPRESARIAL        426       9.66        34
## 8           INDUSTRIAL        529      12.00        42
## 9          INFORMATICA         82       1.86         7
## 10            MECANICA        223       5.06        18
## 11         MECATRONICA        550      12.47        44
## 12             QUIMICA        347       7.87        28
## 13            SISTEMAS        325       7.37        26
## 14                 TIC         51       1.16         4
##                Carrera Frecuencia Porcentaje Requieren
## 1       ADMINISTRACION        323       7.33        26
## 2         ARQUITECTURA        443      10.05        36
## 3           BIOQUIMICA        268       6.08        22
## 4                CIVIL        510      11.57        41
## 5            ELECTRICA        188       4.26        15
## 6          ELECTRONICA        144       3.27        12
## 7  GESTION EMPRESARIAL        426       9.66        34
## 8           INDUSTRIAL        529      12.00        42
## 9          INFORMATICA         82       1.86         7
## 10            MECANICA        223       5.06        18
## 11         MECATRONICA        550      12.47        44
## 12             QUIMICA        347       7.87        28
## 13            SISTEMAS        325       7.37        26
## 14                 TIC         51       1.16         4
## 15                <NA>       4409     100.00       355

Interpretación Parcial

  • Hay una población total de casos de alumnos de 4409 que se encuentran inscritos en el semestre en el cuarto semestre o superior en el Instituto Tecnológico de Durango.

  • La muestra es de 354
  • La cuarta columna de la tabla de contingencia, indica cuantas encuestas se requiere aplicar por carrera y el total de ellas que equivale a la muestra.

Visualizando la tabla de contingencia

# Los títulos de la gráfica
titulos <- labs(
    title = "Poblacion y muestra por alumnos inscritos por carreras",
    subtitle = "Alumnos inscritos a partir de cuarto semestre en adelante",
    caption = "Lista de carreras del ITD"
  )

# Las etiquetas de la gráfica
etiquetas <- labs(
    x = "Carreras",
    y = "Frecuencia y cuántas encuestas se requiere aplicar")

# La gráfica
ggplot(tablacarreras, aes(x=LETTERS[1:14], group=1, fill=Carrera)) + 
  geom_bar(aes(y=Frecuencia, fill = Carrera), stat ="identity") + 
  geom_line(aes(y=Requieren), linetype = "solid", size=1, color = "red") + titulos + etiquetas

Análisis de datos

Objetivo: Realizar análisis de datos de las respuestas de la encudsta satisfacción percibida de la educación recibida de los alumnos del ITD

Análisis presentados:

  • Cronbach
  • Frecuencias
  • Diferencias estadísticas

Librerías necesarias

Los datos de las encuestas

datossat <- read_csv("https://raw.githubusercontent.com/rpizarrog/DatosPromediosAG2017-EN2018-AD2018-/master/SATISFACCI%C3%93N%20PERCIBIDA%20POR%20LA%20EDUCACI%C3%93N%20SUPERIOR%20RECIBIDA%2020%20marzo%202019.csv")

Definición de variables para las respuestas

Limpieza de variables

# Las variables a utilizar
variablesSatisfaccion <- c("marca", "carrera", 
"Q1. Contenido de de las Asignaturas", 
"Q2. Dominio y actualización de los Profesores", 
"Q3. Nivel de exigencia de los Profesores", 
"Q4. Sistema de evaluación de Profesores", 
"Q5. Orientación y apoyo de los Profesores", 
"Q6. Método de enseñanza de los Profesores", 
"Q7. Comunicación con Profesores", 
"Q8. Desarrollo de Prácticas Enseñanza-Aprendizaje", 
"Q9. Desarrollo de mis Competencias", 
"Q10. Trato Respetuoso de Tutores", 
"Q11. Trato Respetuoso de Maestros", 
"Q12. Trato Respetuoso de Autoridades", 
"Q13. Trato Respetuoso de personal de establecimientos", 
"Q14. Trato Respetuoso Serv. de Cómputo",
"Q15. Trato Respetuoso Centro de Información", 
"Q16. Trato Respetuoso Servicios Escolares", 
"Q17. Trato Respetuoso Servicios Extraescolares", 
"Q18. Trato Respetuoso Div. Est. Superiores", 
"Q19. Trato Respetuoso compañeros", 
"Q20. Limpieza en el aula", 
"Q21. Ventilación en el aula", 
"Q22. Aislamiento de ruidos en el aula", 
"Q23. Instalaciones en el aula", 
"Q24. Espacios suficientes de enseñanza", 
"Q25. Hardware en laboratorios", 
"Q26. Software en laboratorios", 
"Q27. Desarrollo integral de mi persona", 
"Q28. Hacer lo verdaderamente quiero y puedo", 
"Q29. Libertad que tengo en la Institución", 
"Q30. Desarrollo mi Creatividad", 
"Q31. Mi Futuro Profesional", 
"Q32. Me apasiona mi Carrera", 
"Q33. Mi carrera está acorde a las necesidades laborales", 
"34. email", "35. genero", "36. semestre", "37. promedio")

colnames(datossat) <- variablesSatisfaccion
# head(datossat, 10) # Los primeros diez
# tail(datossat, 10) # Los últimos diez

Frecuencias

# datossat %>%    group_by(carrera) %>%   tally()  # solo para probar tally()

tablaCuantosVan <- transform(table(datossat$carrera))

# poner nombre a la tabla
colnames(tablaCuantosVan) <- c("Carreras", "Encuestas")
tablaCuantosVan
##                    Carreras Encuestas
## 1            Administración        33
## 2              Arquitectura        50
## 3                Bioquímica        17
## 4                     Civil        31
## 5                 Eléctrica         8
## 6               Electrónica        32
## 7      Gestión  Empresarial        30
## 8                Industrial        47
## 9               Informática        22
## 10                 Mecánica         6
## 11              Mecatrónica        30
## 12                  Química        19
## 13 Sistemas Computacionales        27
# Juntar los dos dataframe en uno solo, sin carrera de TIC
# que no tiene respuestas de alumnos
tablaContingencia <- data.frame(tablacarreras[1:13,], tablaCuantosVan)
tablaContingencia
##                Carrera Frecuencia Porcentaje Requieren
## 1       ADMINISTRACION        323       7.33        26
## 2         ARQUITECTURA        443      10.05        36
## 3           BIOQUIMICA        268       6.08        22
## 4                CIVIL        510      11.57        41
## 5            ELECTRICA        188       4.26        15
## 6          ELECTRONICA        144       3.27        12
## 7  GESTION EMPRESARIAL        426       9.66        34
## 8           INDUSTRIAL        529      12.00        42
## 9          INFORMATICA         82       1.86         7
## 10            MECANICA        223       5.06        18
## 11         MECATRONICA        550      12.47        44
## 12             QUIMICA        347       7.87        28
## 13            SISTEMAS        325       7.37        26
##                    Carreras Encuestas
## 1            Administración        33
## 2              Arquitectura        50
## 3                Bioquímica        17
## 4                     Civil        31
## 5                 Eléctrica         8
## 6               Electrónica        32
## 7      Gestión  Empresarial        30
## 8                Industrial        47
## 9               Informática        22
## 10                 Mecánica         6
## 11              Mecatrónica        30
## 12                  Química        19
## 13 Sistemas Computacionales        27

Análisis de Cronbach

 constructoDatossat <- datossat[3:35]
 # constructoDatossat
 alfa <- alpha(constructoDatossat)

 alfa$total
##  raw_alpha std.alpha   G6(smc) average_r      S/N         ase     mean
##  0.9566535 0.9581609 0.9738353 0.4096717 22.90109 0.003339614 4.213127
##         sd  median_r
##  0.8777982 0.3859298

Generando tabla HTML o similar

Generar tabla ktable()

# Mostrar solo ciertas columnas sin incluir la de carrera nuevamente
htmlTable(tablaContingencia[,c(1:4,6)])
Carrera Frecuencia Porcentaje Requieren Encuestas
1 ADMINISTRACION 323 7.33 26 33
2 ARQUITECTURA 443 10.05 36 50
3 BIOQUIMICA 268 6.08 22 17
4 CIVIL 510 11.57 41 31
5 ELECTRICA 188 4.26 15 8
6 ELECTRONICA 144 3.27 12 32
7 GESTION EMPRESARIAL 426 9.66 34 30
8 INDUSTRIAL 529 12 42 47
9 INFORMATICA 82 1.86 7 22
10 MECANICA 223 5.06 18 6
11 MECATRONICA 550 12.47 44 30
12 QUIMICA 347 7.87 28 19
13 SISTEMAS 325 7.37 26 27