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"]
Ejemplo utilizando los datos de salarios “Wage” Ver gráficos utilizando https://mcastrol.shinyapps.io/finalassigment/ Exploramos los datos
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)
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
Particionar los datos en un 70, 30 y calcular las dimensiones resultantes. Llamar a las particiones “training” “testing”
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')
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
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)
Indicar los coeficientes y tasas de error. Indicar como interpretar alguno de los coeficientes y tasas de error.