Datos_finales<- read.csv("D:\\ZEGUEL IPAE\\CICLO 4\\ESTADÍSTICA APLICADA A LA COMPUTACIÓN [GESTIÓN DE SISTEMAS DE INFOR\\StudentsPerformance.csv"
,sep = ";" , stringsAsFactors = TRUE , encoding = "latin1")
# Mostrar las primeras lineas de Datos_finales
head(Datos_finales)
# Se muestra un resumen estadistico
summary(Datos_finales)
## gender Grupo educacionnivelpadres lunch
## female:518 group A: 89 associate's degree:222 free/reduced:355
## male :482 group B:190 bachelor's degree :118 standard :645
## group C:319 high school :196
## group D:262 master's degree : 59
## group E:140 some college :226
## some high school :179
## cursopreparacionexamen mathscore readingscore writingscore
## completed:358 Min. : 0.00 Min. : 17.00 Min. : 10.00
## none :642 1st Qu.: 57.00 1st Qu.: 59.00 1st Qu.: 57.75
## Median : 66.00 Median : 70.00 Median : 69.00
## Mean : 66.09 Mean : 69.17 Mean : 68.05
## 3rd Qu.: 77.00 3rd Qu.: 79.00 3rd Qu.: 79.00
## Max. :100.00 Max. :100.00 Max. :100.00
library(agricolae)
# Tabla de frecuencias para la variable gender
tabla_genero <- table(Datos_finales$gender)
print(tabla_genero)
##
## female male
## 518 482
plot(Datos_finales$gender)
pie(table(Datos_finales$gender))
El resultado del genero de los sujetos de estudio son:
518 del genero female(femenino)
482 del genero male(masculino)
library(agricolae)
# Tabla de frecuencias para la variable grupo
tabla_grupo <- table(Datos_finales$Grupo)
print(tabla_grupo)
##
## group A group B group C group D group E
## 89 190 319 262 140
plot(Datos_finales$Grupo)
pie(table(Datos_finales$Grupo))
El resultado muestra que hay:
89 individuos del grupo A
190 individuos del grupo B
319 individuos del grupo C
262 individuos del grupo D
140 individuos del grupo E
library(agricolae)
# Tabla de frecuencias para la variable gender
tabla_educacion_padres <- table(Datos_finales$educacionnivelpadres)
print(tabla_educacion_padres)
##
## associate's degree bachelor's degree high school master's degree
## 222 118 196 59
## some college some high school
## 226 179
plot(Datos_finales$educacionnivelpadres)
pie(table(Datos_finales$educacionnivelpadres))
El resultado de la educacion de los padres de los sujetos de estudio son:
associate’s degree: (Título de asociado) = 222
bachelor’s degree: (Licenciatura) = 118
high school: (Escuela secundaria) = 196
master’s degree: (Maestría) = 59
some college: (Algunos estudios universitarios) = 226
some high school: (Algunos estudios de secundaria) = 179
library(agricolae)
# Tabla de frecuencias para la variable lunch
tabla_lunch <- table(Datos_finales$lunch)
print(tabla_lunch)
##
## free/reduced standard
## 355 645
plot(Datos_finales$lunch)
pie(table(Datos_finales$lunch))
La resultado muestra la distribución de los estudiantes según el tipo de almuerzo que reciben.
Hay 355 estudiantes que reciben almuerzo free/reduced (gratuito o reducido).
Hay 645 estudiantes que reciben almuerzo (standard) estándar.
library(agricolae)
# Tabla de frecuencias para la variable test preparation course
tabla_preparacion <- table(Datos_finales$cursopreparacionexamen)
print(tabla_preparacion)
##
## completed none
## 358 642
plot(Datos_finales$cursopreparacionexamen)
pie(table(Datos_finales$cursopreparacionexamen))
La tabla muestra la distribución de los estudiantes según si completaron un curso de preparación para el examen o no.
Hay 358 estudiantes que completed (completaron) un curso de preparación para el examen.
Hay 642 estudiantes que none (no completaron) ningún curso de preparación para el examen.
library(agricolae)
# Tabla de frecuencias
tabla_frecuencia_matematica <- table(Datos_finales$mathscore)
head(tabla_frecuencia_matematica)
##
## 0 8 18 19 22 23
## 1 1 1 1 1 1
# Histograma
hist(Datos_finales$mathscore, breaks = "Sturges", main = "Histograma de puntuacion de matematicas", xlab = "Puntuación matematica", ylab = "Frecuencia")
En esta tabla de frecuencias, los números en la primera columna representan las puntuaciones de matemáticas.
Los números en la segunda columna representan la frecuencia de cada puntuación.
El resultado indica que los valores únicos 0, 8, 18, 19, 22 y 23 aparecen una vez cada uno en la variable mathscore
library(agricolae)
# Tabla de frecuencias
tabla_frecuencia_lectura <- table(Datos_finales$readingscore)
head(tabla_frecuencia_lectura)
##
## 17 23 24 26 28 29
## 1 1 2 1 1 2
# Histograma
hist(Datos_finales$readingscore, breaks = "Sturges", main = "Histograma de puntuacion de lectura", xlab = "Puntuacion de lectura", ylab = "Frecuencia")
Los números que aparecen en la primera columna son los valores únicos de readingscore, y los números en la
segunda columna representan la frecuencia con la que aparece cada valor en los datos.
El valor 17 aparece una vez.
El valor 23 aparece una vez.
El valor 24 aparece dos veces.
El valor 26 aparece una vez.
El valor 28 aparece una vez.
El valor 29 aparece dos veces.
library(agricolae)
# tabla de frecuencias
tabla_frecuencia_escritura <- table(Datos_finales$writingscore)
head(tabla_frecuencia_escritura)
##
## 10 15 19 22 23 27
## 1 1 1 1 1 3
# Histograma
hist(Datos_finales$writingscore, breaks = "Sturges", main = "Histograma de puntuacion de escritura", xlab = "puntuacion escritura", ylab = "Frecuencia")
Los números que aparecen en la primera columna son los valores únicos de “writingscore”, y los números en la
segunda columna representan la frecuencia con la que aparece cada valor en los datos.
El valor 10 aparece una vez.
El valor 15 aparece una vez.
El valor 19 aparece una vez.
El valor 22 aparece una vez.
El valor 23 aparece una vez.
El valor 27 aparece tres veces
# Media
media_matematicas <- mean(Datos_finales$mathscore)
media_matematicas
## [1] 66.089
# Mediana
me_matematicas <- median(Datos_finales$mathscore)
me_matematicas
## [1] 66
#Medios
media_escritura <- mean(Datos_finales$readingscore)
media_escritura
## [1] 69.169
# Mediana
me_escritura <- median(Datos_finales$readingscore)
me_escritura
## [1] 70
Media de mathscore: El valor medio de las puntuaciones de matemáticas en el conjunto de datos es aproximadamente 66.089.
Mediana de mathscore: La mediana de las puntuaciones de matemáticas es 66. Esto significa que el 50% de las
puntuaciones de matemáticas están por encima de 66 y el otro 50% están por debajo.
Media de readingscore: La media de las puntuaciones de lectura es aproximadamente 69.169.
Mediana de readingscore: La mediana de las puntuaciones de lectura es 70. Esto indica que el 50% de las
puntuaciones de lectura están por encima de 70 y el otro 50% están por debajo.
# Matematicas
# Calcular los cuartiles
q1_matematicas <- quantile(Datos_finales$mathscore, 0.25)
q3_matematicas <- quantile(Datos_finales$mathscore, 0.75)
# Calcular el rango intercuartílico (IQR)
RIC_matematicas <- q3_matematicas - q1_matematicas
# Calcular los límites del bigote inferior y superior
bigote_inferior <- q1_matematicas - 1.5 * RIC_matematicas
bigote_superior <- q3_matematicas + 1.5 * RIC_matematicas
RIC_matematicas
## 75%
## 20
# Imprimir los valores para verificar
print(paste("Bigote inferior:", bigote_inferior))
## [1] "Bigote inferior: 27"
print(paste("Bigote superior:", bigote_superior))
## [1] "Bigote superior: 107"
# Lectura
q1_lectura <- quantile(Datos_finales$readingscore, 0.25)
q1_lectura
## 25%
## 59
q2_lectura <- quantile(Datos_finales$readingscore, 0.5)
q2_lectura
## 50%
## 70
q3_lectura <- quantile(Datos_finales$readingscore, 0.75)
q3_lectura
## 75%
## 79
# Calcular el rango intercuartílico (IQR)
RIC_lectura <- q3_lectura - q1_lectura
# Calcular los límites del bigote inferior y superior
bigote_inferior1 <- q1_lectura - 1.5 * RIC_lectura
bigote_superior1 <- q3_lectura + 1.5 * RIC_lectura
RIC_lectura
## 75%
## 20
# Imprimir los valores para verificar
print(paste("Bigote inferior:", bigote_inferior1))
## [1] "Bigote inferior: 29"
print(paste("Bigote superior:", bigote_superior1))
## [1] "Bigote superior: 109"
# Escritura
q1_escritura <- quantile(Datos_finales$writingscore, 0.25)
q1_escritura
## 25%
## 57.75
q2_escritura <- quantile(Datos_finales$writingscore, 0.5)
q2_escritura
## 50%
## 69
q3_escritura <- quantile(Datos_finales$writingscore, 0.75)
q3_escritura
## 75%
## 79
# Calcular el rango intercuartílico (IQR)
RIC_escritura <- q3_escritura - q1_escritura
# Calcular los límites del bigote inferior y superior
bigote_inferior2 <- q1_escritura - 1.5 * RIC_escritura
bigote_superior2 <- q3_escritura + 1.5 * RIC_escritura
RIC_escritura
## 75%
## 21.25
# Imprimir los valores para verificar
print(paste("Bigote inferior:", bigote_inferior1))
## [1] "Bigote inferior: 29"
print(paste("Bigote superior:", bigote_superior2))
## [1] "Bigote superior: 110.875"
El tercer cuartil (Q3), que representa el percentil 75%, es igual a 20.
El rango intercuartílico (RIC_matematicas) es la diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1), en este caso, 20.
Los límites del bigote se calculan sumando y restando 1.5 veces el RIC a los valores de Q1 y Q3, respectivamente.
El bigote inferior es 27 y el bigote superior es 107.
Los valores de los cuartiles son:
Q1 (primer cuartil): 59
Q2 (segundo cuartil, que es también la mediana): 70
Q3 (tercer cuartil): 79
El RIC_lectura es 20.
Los límites del bigote son 29 para el bigote inferior y 109 para el bigote superior.
Los valores de los cuartiles son:
Q1: 57.75
Q2: 69
Q3: 79
El RIC_escritura es 21.25.
Los límites del bigote son 29 para el bigote inferior y 110.875 para el bigote superior.
# Verificar si faltan datos en el conjunto de datos
missing_data <- any(is.na(Datos_finales))
print(missing_data)
## [1] FALSE
# Obtener columnas con datos faltantes
columns_with_missing <- colnames(Datos_finales)[colSums(is.na(Datos_finales)) != 0]
print(columns_with_missing)
## character(0)
Estos resultados indican que no hay datos faltantes en el conjunto de datos.
#Matematica
boxplot(Datos_finales$mathscore)
outliers_mat <-Datos_finales$mathscore[Datos_finales$mathscore < bigote_inferior| Datos_finales$mathscore > bigote_superior]
head(outliers_mat)
## [1] 18 0 22 24 26 19
# Filtrar los datos para excluir los valores atípicos
mat_no_atipicos <- subset(Datos_finales, mathscore >= bigote_inferior & mathscore <= bigote_superior)
# Mostrar las primeras filas
head(mat_no_atipicos)
boxplot(mat_no_atipicos$mathscore)
# Lectura
boxplot(Datos_finales$readingscore)
outliers_lec <-Datos_finales$readingscore[Datos_finales$readingscore < bigote_inferior1| Datos_finales$readingscore > bigote_superior1]
head(outliers_lec)
## [1] 17 26 28 23 24 24
# Filtrar los datos para excluir los valores atípicos
lec_sin_atipicos <- Datos_finales[!Datos_finales$readingscore %in% outliers_lec,]
# Mostrar las primeras filas
head(lec_sin_atipicos)
boxplot(lec_sin_atipicos$readingscore)
# Escritura
boxplot(Datos_finales$writingscore)
outliers_esc <-Datos_finales$writingscore[Datos_finales$writingscore < bigote_inferior2| Datos_finales$writingscore > bigote_superior2]
head(outliers_esc)
## [1] 10 22 19 15 23
# Filtrar los datos para excluir los valores atípicos
esc_sin_atipicos <- Datos_finales[!Datos_finales$writingscore %in% outliers_esc,]
# Mostrar las primeras filas
head(esc_sin_atipicos)
boxplot(esc_sin_atipicos$writingscore)
El primer gráfico generado muestra un diagrama de caja que representa la distribución de las puntuaciones de matemáticas en el conjunto de datos.
Identificación de valores atípicos:
Los primeros seis valores atípicos se muestran como: [1] 18 0 22 24 26 19.
Se filtran los datos originales s para excluir los valores atípicos. Los datos filtrados se almacenan en el nuevo conjunto de datos. Se muestran las primeras filas del conjunto de datos filtrado, que incluyen información sobre el género, el grupo
educativo, el almuerzo, la preparación del examen y las puntuaciones en matemáticas, lectura y escritura.
Se crea un nuevo diagrama de caja que muestra la distribución de las puntuaciones de matemáticas después de excluir los valores atípicos.
Diagrama de caja inicial de las puntuaciones de lectura:
Se genera un diagrama de caja que representa la distribución de las puntuaciones de lectura en el conjunto de datos Datos_finales.
Identificación de valores atípicos en las puntuaciones de lectura:
Se muestran los primeros seis valores atípicos como: [1] 17 26 28 23 24 24.
Datos filtrados sin valores atípicos en las puntuaciones de lectura:
Se filtran los datos originales para excluir los valores atípicos en las puntuaciones de lectura. Los datos
filtrados se almacenan en el nuevo conjunto de datos.
Se muestran las primeras filas del conjunto de datos filtrado, que incluyen información sobre el género, el grupo
educativo, el almuerzo, la preparación del examen y las puntuaciones en matemáticas, lectura y escritura.
Diagrama de caja de las puntuaciones de lectura sin valores atípicos:
Se crea un nuevo diagrama de caja que muestra la distribución de las puntuaciones de lectura después de excluir los valores atípicos
Diagrama de caja inicial de las puntuaciones de escritura:
Se genera un diagrama de caja que representa la distribución de las puntuaciones de escritura en el conjunto de datos.
Identificación de valores atípicos en las puntuaciones de escritura:
Se identifican los valores atípicos
Se muestran los primeros seis valores atípicos como: [1] 10 22 19 15 23.
Datos filtrados sin valores atípicos en las puntuaciones de escritura:
Se filtran los datos originales para excluir los valores atípicos en las puntuaciones de escritura. Los datos
filtrados se almacenan en el nuevo conjunto de datos .
Se muestran las primeras filas del conjunto de datos filtrado, que incluyen información sobre el género, el grupo
educativo, el almuerzo, la preparación del examen y las puntuaciones en matemáticas, lectura y escritura.
Diagrama de caja de las puntuaciones de escritura sin valores atípicos:
Se crea un nuevo diagrama de caja que muestra la distribución de las puntuaciones de escritura después de excluir los valores atípicos.
# Matematica
mat_exp<-exp(Datos_finales$mathscore)
head(mat_exp)
## [1] 1.858672e+31 9.253782e+29 1.220403e+39 2.581313e+20 1.014800e+33
## [6] 6.837671e+30
matematica_exp<-exp(Datos_finales$mathscore)
hist(matematica_exp)
#Lectura
par(mfrow=c(1,1))
lectura_sqrt <- sqrt(Datos_finales$readingscore)
lectura_exp <-exp(Datos_finales$readingscore)
lectura_ln <-log(Datos_finales$readingscore)
lectura_log2 <-log(Datos_finales$readingscore, base = 2)
lectura_log5 <-log(Datos_finales$readingscore, base = 5)
par(mfrow=c(3,2))
hist(Datos_finales$readingscore)
hist(lectura_sqrt)
hist(lectura_exp)
hist(lectura_ln)
hist(lectura_log2)
hist(lectura_log5)
# Escritura
library(ggplot2)
# Aplicar la función de suavizado de kernels a la columna writingscore
smoothed_writingscore <- density(Datos_finales$writingscore)
# Crear un dataframe con los valores de x e y del suavizado
smoothed_df <- data.frame(x = smoothed_writingscore$x, y = smoothed_writingscore$y)
# Crear un gráfico de densidad suavizado de writingscore
ggplot() +
geom_density(data = Datos_finales, aes(x = writingscore), fill = "skyblue", alpha = 0.7) +
geom_line(data = smoothed_df, aes(x = x, y = y), color = "red", size = 1) +
labs(title = "Densidad Suavizada de Writing Score", x = "Writing Score", y = "Densidad") +
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
El resultado muestra los primeros seis valores después de aplicar la función exponencial a los datos de
mathscore.La notación 1.858672e+31 significa 1.858672 multiplicado por 10 elevado a la potencia de 31, lo que
indica un número muy grande. Del mismo modo, los otros valores también representan números grandes en notación
exponencial.
Transformaciones a la variable readingscore: raíz cuadrada, exponencial, logaritmo natural, logaritmo en base 2 y
logaritmo en base 5. Estas transformaciones se realizan con el objetivo de explorar cómo se distribuyen los
después de aplicar diferentes funciones matemáticas.
El resultado genera una visualización de densidad suavizada para la variable writingscore. Esto ayuda a entender
la distribución de esa variable, mostrando cómo se agrupan los datos y detectando patrones o tendencias de manera
más clara que un histograma estándar.
# Calcular la media y la desviación estándar de mathscore
media_mathscore <- mean(Datos_finales$mathscore)
desv_est_mathscore <- sd(Datos_finales$mathscore)
# Estandarización de mathscore
mathscore_estandar_metodo1 <- (Datos_finales$mathscore - media_mathscore) / desv_est_mathscore
head(mathscore_estandar_metodo1)
## [1] 0.3898284 0.1919795 1.5769224 -1.2589131 0.6536271 0.3238788
# Estandarización de readingscore
readingscore_estandar_metodo2 <- (Datos_finales$readingscore - mean(Datos_finales$readingscore)) / sd(Datos_finales$readingscore)
head(readingscore_estandar_metodo2)
## [1] 0.1939016 1.4267621 1.7692233 -0.8334822 0.6048551 0.9473163
# NORMALIZACION
monto_normamatematica <- (Datos_finales$mathscore-min(Datos_finales$mathscore))/(max(Datos_finales$mathscore)-min(Datos_finales$mathscore))
head(monto_normamatematica)
## [1] 0.72 0.69 0.90 0.47 0.76 0.71
library(scales)
monto_normaescritura<-rescale(Datos_finales$readingscore)
head(monto_normaescritura)
## [1] 0.6626506 0.8795181 0.9397590 0.4819277 0.7349398 0.7951807
Los números muestran cuántas desviaciones estándar por encima o por debajo de la media se encuentra cada puntaje.
El primer valor de 0.3898284 significa que está aproximadamente 0.39 desviaciones estándar por encima de la media.
Los números indican cuántas desviaciones estándar por encima o por debajo de la media se encuentra cada puntaje de
lectura.El primer valor de 0.1939016 significa que está aproximadamente 0.19 desviaciones estándar por encima de la media.
Los números representan la posición relativa de cada puntaje dentro del rango total de valores posibles.
El primer valor de 0.72 significa que el puntaje se encuentra al 72% del rango total, es decir, está por encima del 72% de los puntajes.
Los números indican la posición relativa de cada puntaje de lectura dentro del rango total de valores posibles.
El primer valor de 0.6626506 significa que el puntaje se encuentra alrededor del 66% del rango total, es decir está por encima del 66% de los puntajes de lectura.
# Regresión Lineal Simple
modelo_regresion <- lm(writingscore ~ mathscore, data = Datos_finales)
summary(modelo_regresion)
##
## Call:
## lm(formula = writingscore ~ mathscore, data = Datos_finales)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24.0252 -7.2435 0.4416 6.8220 23.0831
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.89422 1.28294 11.61 <2e-16 ***
## mathscore 0.80437 0.01892 42.51 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.068 on 998 degrees of freedom
## Multiple R-squared: 0.6442, Adjusted R-squared: 0.6439
## F-statistic: 1807 on 1 and 998 DF, p-value: < 2.2e-16
# Regresión Múltiple
modelo_regresion_multiple <- lm(writingscore ~ mathscore + readingscore, data = Datos_finales)
# Resumen del modelo
summary(modelo_regresion_multiple)
##
## Call:
## lm(formula = writingscore ~ mathscore + readingscore, data = Datos_finales)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.7155 -3.0284 -0.1624 3.0640 14.6738
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.16084 0.69866 -1.662 0.0969 .
## mathscore 0.06705 0.01628 4.118 4.14e-05 ***
## readingscore 0.93660 0.01691 55.389 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.493 on 997 degrees of freedom
## Multiple R-squared: 0.9127, Adjusted R-squared: 0.9126
## F-statistic: 5214 on 2 and 997 DF, p-value: < 2.2e-16
# Creación de una variable binaria basada en una condición
Datos_finales$aprobado <- ifelse(Datos_finales$writingscore >= 60, 1, 0)
# Aplicar regresión logística binaria sobre la variable binaria creada
modelo_regresion_logistica <- glm(aprobado ~ mathscore, data = Datos_finales, family = "binomial")
summary(modelo_regresion_logistica)
##
## Call:
## glm(formula = aprobado ~ mathscore, family = "binomial", data = Datos_finales)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.2884 0.6750 -13.76 <2e-16 ***
## mathscore 0.1667 0.0113 14.76 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1187.79 on 999 degrees of freedom
## Residual deviance: 688.82 on 998 degrees of freedom
## AIC: 692.82
##
## Number of Fisher Scoring iterations: 6
##
## Call:
## lm(formula = writingscore ~ mathscore, data = Datos_finales)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24.0252 -7.2435 0.4416 6.8220 23.0831
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.89422 1.28294 11.61 <2e-16 ***
## mathscore 0.80437 0.01892 42.51 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.068 on 998 degrees of freedom
## Multiple R-squared: 0.6442, Adjusted R-squared: 0.6439
## F-statistic: 1807 on 1 and 998 DF, p-value: < 2.2e-16
\(\hat{Y} = b_0 + b_1X\)
\(\hat{Y} = 14.89422 + 0.804347X\)
Modelo General:
Writingscore = 14.89422 + 0.80437 mathscore
##
## Call:
## lm(formula = writingscore ~ mathscore + readingscore, data = Datos_finales)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.7155 -3.0284 -0.1624 3.0640 14.6738
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.16084 0.69866 -1.662 0.0969 .
## mathscore 0.06705 0.01628 4.118 4.14e-05 ***
## readingscore 0.93660 0.01691 55.389 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.493 on 997 degrees of freedom
## Multiple R-squared: 0.9127, Adjusted R-squared: 0.9126
## F-statistic: 5214 on 2 and 997 DF, p-value: < 2.2e-16
El resultado muestra que tanto mathscore como readingscore son predictores significativos de writingscore.Un
aumento de una unidad en mathscore se asocia con un aumento esperado de 0.06705 en writingscore, mientras que un
aumento de una unidad en readingscore se asocia con un aumento esperado de 0.93660 en writingscore. El modelo
explica el 91.26% de la variabilidad en writingscore y la prueba F sugiere que el modelo es estadísticamente
significativo.
##
## Call:
## glm(formula = aprobado ~ mathscore, family = "binomial", data = Datos_finales)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.2884 0.6750 -13.76 <2e-16 ***
## mathscore 0.1667 0.0113 14.76 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1187.79 on 999 degrees of freedom
## Residual deviance: 688.82 on 998 degrees of freedom
## AIC: 692.82
##
## Number of Fisher Scoring iterations: 6
Resultado modelo de regresión logística binaria:
El intercepto estimado es -9.2884, y el coeficiente para mathscore es 0.1667.
Ambos coeficientes son estadísticamente significativos (p < 0.05).
El AIC es 692.82, lo que indica un buen ajuste del modelo.
La devianza residual es 688.82, lo que también sugiere un buen ajuste.
En general, el modelo sugiere que las puntuaciones más altas en mathscore están asociadas con una mayor probabilidad de aprobación.