Una empresa quiere saber si existe relación entre el salario de un trabajador y las ausencias del mismo al trabajo. Para el estudio se dividió el salario en distintas categorías y se eligió aleatoriamente un grupo de trabajadores para determinar el número de días que habían faltado en los últimos tres años.

¿Se puede construir un modelo que relacione la categoría del salario y las ausencias en el trabajo? Cargamos los datos del archivo William.csv

df <- read.table(file = "william.csv",
                 header = TRUE,
                 sep = ";",
                 dec = ".",
                 encoding = "UTF-8",
                 stringsAsFactors = FALSE)

Ahora comprobaremos si los datos se leyeron exitosamente

head( df )
##   salario ausencias
## 1      11        18
## 2      10        17
## 3       8        29
## 4       5        36
## 5       9        11
## 6       7        28

-Se puede ver que los datos se cargaron correctamente, acontinuacion veremos el detalle de variables

str ( df )
## 'data.frame':    15 obs. of  2 variables:
##  $ salario  : int  11 10 8 5 9 7 3 11 8 7 ...
##  $ ausencias: int  18 17 29 36 11 28 35 14 20 32 ...
  1. Comprueba la normalidad de la variable explicativa (salario) y calcula la correlación entre salario y ausencias. Aqui podremos observar como vamos a realizar el poroceso para comprobar la normalidad, ya que este se realizara con un contraste para normalidad. Lo que utlizaremos para contrastar nuestra normalidad usaremos el test de Shapiro-Wilk, con la sigueinte funcion.
shapiro.test( df$salario ) 
## 
##  Shapiro-Wilk normality test
## 
## data:  df$salario
## W = 0.93541, p-value = 0.3281

Interpretacion : El p-value = 0.3281, este nosidica que es un valor mas alto al que tenwemos de referencia de (0.05), con estos datos que tenemos se puede definir que nuestros datos cumplen el supuesto de normalidad.

-Ahora se procede a estudiar, examinamos la correlacion que existe entre las variables. La correlacion nos indica el grado de asociasion que hay el dos varibles que temos

cor.test( df$salario, df$ausencias )
## 
##  Pearson's product-moment correlation
## 
## data:  df$salario and df$ausencias
## t = -7.4737, df = 13, p-value = 4.672e-06
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.9668476 -0.7211085
## sample estimates:
##        cor 
## -0.9006674

Interpretación: Las variables presentan un alto grado de correlación (-0.9006674), la correlación negativa indica que están asociadas de forma inversa, esto es, valores altos de una de las variables se corresponden con valores bajos de la otra. Con un coeficiente de Pearson significativo (menor de 0.05) podemos asumir correlacion lineal entre las variables salario y ausencias.

Ahora procederemos a comprobar graficamente con nuestras salario y ausencias. Este se mostrara en un digrama de dispersion el cual nos mostrara de manera mas grafica como se relacionan nuetras variables.

plot( df$salario, df$ausencias )

Conclusion : con esta grafica representada asumimos la relacion entre ambas variable, que tanto una depende de la otra, se procedera hacer la regresion simple de este modelo.

  1. Realiza el ajuste del modelo.

Con este analisis se prevee construir un modelo de regresion, el cual relacione la salario con ausencia en el trabajo.

 modeloR <- lm( ausencias ~ salario, 
               data = df )
summary( modeloR )
## 
## Call:
## lm(formula = ausencias ~ salario, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -9.516 -3.053  1.428  2.961  5.475 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  47.6002     3.0789  15.460 9.50e-10 ***
## salario      -3.0094     0.4027  -7.474 4.67e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.294 on 13 degrees of freedom
## Multiple R-squared:  0.8112, Adjusted R-squared:  0.7967 
## F-statistic: 55.86 on 1 and 13 DF,  p-value: 4.672e-06

-El modelo ajustado es significativo: Los coeficientes de regresión son 47.6002 y -3.0094, estos parámetros son significativos, con p-valor menor de 0.05 (9.50e-10, 4.67e-06). El error estándar para cada parámetro es 3.0789 y 0.4027 respectivamente. La R2 ajustada es 0.7967, que indica un buen ajuste del modelo (próximo a 1)

Conclusion: hay una relacion negativa en esta variables, cuan se aumenta el salario del trabajador, disminuyen la ausencia del trabajo un 3.01. De forma que por cada aumento de la categoría del salario, las ausencias de los trabajadores disminuyen en 3.01 días.

Por último, representamos la recta del modelo de regresión: que es la ecuación de una recta y = mx + n, con ordenada en el origen 47.60 (punto de corte con el eje Y), y con pendiente negativa -3.01.

plot( df$salario, 
      df$ausencias, 
      xlim = c( 0, 14 ),
      ylim = c( 0, 70 ), 
      xlab = "Salario", 
      ylab = "Ausencias", pch = 20 )
abline( modeloR, col = "BLUE", lwd = 5 ) 

  1. Estudia la bondad de ajuste con la función anova( ) y explica el significado de los coeficientes obtenidos en la recta de regresión.
anova( modeloR )
## Analysis of Variance Table
## 
## Response: ausencias
##           Df  Sum Sq Mean Sq F value    Pr(>F)    
## salario    1 1030.01 1030.01  55.857 4.672e-06 ***
## Residuals 13  239.72   18.44                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

La variabilidad del modelo se puede descomponer como SST = SSM + SSR. SST es la variación total. SSM es la variación explicada por el modelo. SSR es la variación no explicada por el modelo. Para nuestros datos tenemos: SSM 1030.01, SSR 239.72. Por lo tanto la variabilidad explica por el modelo de regresión es mayor que la que queda sin explicar (residuos).

Un estadístico F mayor de 1 indica un buen ajuste del modelo. El estadístico F (55.857) contrasta si el modelo tiene significativa capacidad predictiva. En el contraste la hipotesis nula es F = 1, con un p-valor menor de 0.05 (4.672e-06) se rechaza la hipótesis nula. Por lo tanto concluimos que el modelo tiene una capacidad predictiva significativa.

  1. Realiza el diagnóstico del modelo. Normalidad de los residuos, homogeneidad de varianzas e incorrelación de los residuos

Obtenemos:

Valores ajustados: valores ajustados (valores de la variable respuesta) para las observaciones originales de la predictora. Residuos: diferencia entre valor observado de la respuesta y valor ajustado por el modelo. Estadísticos: residuos estudentizados del modelo ajustado.

df$fitted.modeloR <- fitted( modeloR ) 

df$residuals.modeloR <- residuals( modeloR ) 

df$rstudent.modeloR <- rstudent( modeloR )

Normalidad de los residuos Comprobar el contraste de normalidad para los residuos estudentizados del modelo ajustado. Para contrastar la normalidad usamos el test de Shapiro-Wilk, con la función shapiro.test( ), que funciona bien con muestras pequeñas (menores a 50).```

shapiro.test( df$rstudent.modeloR )
## 
##  Shapiro-Wilk normality test
## 
## data:  df$rstudent.modeloR
## W = 0.91538, p-value = 0.1637

Interpretación: Se obtiene un p-value mayor de 0.05 (0.1637), no podemos rechazar la hipótesis nula (hipótesis de normalidad). Por lo tanto, podemos suponer normalidad de los residuos.

Homogeneidad de varianzas Comprobar la homocedasticidad para los residuos estudentizados del modelo ajustado. Para contrastarla utilizamos la función bptest( )

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest( modeloR )
## 
##  studentized Breusch-Pagan test
## 
## data:  modeloR
## BP = 0.52916, df = 1, p-value = 0.467

Interpretación: Con un p-value = 0.467, mayor de 0.05, no podemos rechazar la hipótesis nula. Por lo tanto suponemos homogeneidad de varianzas.

Incorrelación de los residuos Comprobar la incorrelación para los residuos estudentizados del modelo ajustado. Se realiza a través del Test de Durbin-Watson (asume bajo la hipótesis nula que no existe correlación). La función dwtest( ) realiza este contraste directamente sobre los residuos estudentizados.

dwtest( ausencias ~ salario, 
        alternative = "two.sided", 
        data = df)
## 
##  Durbin-Watson test
## 
## data:  ausencias ~ salario
## DW = 2.452, p-value = 0.3763
## alternative hypothesis: true autocorrelation is not 0

Interpretación: Con un p-value = 0.3763, mayor de 0.05, no podemos rechazar la hipótesis nula. Por lo tanto suponemos incorrelación para los residuos estudentizados del modelo ajustado.