Modelo de Regresión Wage 1

Modelo de regresión basado en un modelo de regresión lineal utilzando datos de las salarios. En primer lugar, cargamos las librerias a utilizar y la función para graficar para un predictor. Excluimos la columna “logwage” de los datos Wage.

suppressMessages(library(caret))
suppressMessages(library(kernlab))
suppressMessages(library(e1071))
suppressMessages(library(sjstats))
## Warning in checkMatrixPackageVersion(): Package version inconsistency detected.
## TMB was built with Matrix version 1.2.14
## Current Matrix version is 1.2.12
## Please re-install 'TMB' from source using install.packages('TMB', type = 'source') or ask CRAN for a binary version of 'TMB' matching CRAN's 'Matrix' package
suppressMessages(library(ISLR))
suppressMessages(library(ggplot2))
ggplotRegression <- function (fit,predictor) {
      ggplot(fit$model, aes_string(x = names(fit$model)[2], y = names(fit$model)[1])) + geom_point() +
        stat_smooth(method = "lm", col = "red") +
        labs(title = paste("Wage by",predictor, ": Adj R2 = ",signif(summary(fit)$adj.r.squared, 5),
                           "Intercept =",signif(fit$coef[[1]],5 ),
                           " Slope =",signif(fit$coef[[2]], 5),
                           " P =",signif(summary(fit)$coef[2,4], 5)))
}
data(Wage)
#exclude the column to predict
Wage<-Wage[,!names(Wage) %in% "logwage"]

Modelo de Regresión Wage 2

Ejemplo utilizando los datos de salarios “Wage” Ver gráficos utilizando https://mcastrol.shinyapps.io/finalassigment/ Exploramos los datos

Modelo de Regresión Wage 3

A continuación, vemos como se crea un modelo de predicción llamado “fit” entre el salario “wage” y la variable “year”. Utilizando la función ggplotRegresion, se hace el grafico del modelo y se indican los coeficientes.

#regresion por año 
predictor<-"año"
fit<-lm(Wage$wage~Wage$year)
ggplotRegression(fit,predictor)

Modelo de Regresión Wage 4

De la misma manera, hacer los modelos de regresión por edad “age”, por nivel de educación “education” y raza “race” y graficarlas. Pueden usar el recurso web para verificar los resultados

Modelo de Regresión Wage 5

Particionar los datos en un 70, 30 y calcular las dimensiones resultantes. Llamar a las particiones “training” “testing”

Modelo de Regresión Wage 6

Cuando se disponga de los datos de training, Cambiar a eval=FALSE para ver un gráfico de salarios segun la clase de trabajo “jobclass”.

qplot(age, wage, colour=jobclass, data=training)
qplot(wage, colour=education, data=training, geom='density')

Modelo de Regresión Wage 7

Crea un modelo de predicción en base a la edad, educacion y raza y predice algunos casos. Hay diferencia entre utiliza Predecir algun caso y comparar con la web.

fit<-lm(wage~year+age+as.integer(education)+as.integer(race),Wage)
newdata=data.frame(year=as.integer("2012"), age=42,education=4, race=1)
pred<-predict(fit,newdata=newdata)
pred
##        1 
## 134.9426

Modelo de Regresión Wage 7

Se crean modelos de regresión uilizando la función train. Se hace la predicción y se grafican los resultados. Indicar los coeficientes y tasas de error. Indicar como interpretar alguno de los coeficientes y tasas de error.

modFit<-train(wage ~ year+age+as.integer(education)+as.integer(race), method='lm',data=training)
pred<-predict(modFit,testing)
qplot(wage, pred, colour=year, data=testing)
modFit_all<-train(wage ~ . , method='lm',data=training)
modFit_all
pred_all<-predict(modFit_all,testing)
qplot(wage, pred_all, colour=year, data=testing)

Modelo de Regresión Wage 7

Indicar los coeficientes y tasas de error. Indicar como interpretar alguno de los coeficientes y tasas de error.