Con base en los datos de arboles proponga un modelo de regresion lineal multiple que permita predecir el peso del arbol en funcion de las covariables que considere importantes y seleccionandolas de acuerdo con un proceso adecuado. tenga en cuenta realizar una evaluación de la significancia de los parametros, interpretación y proponga un metodo de evaluacion por medio de validacion cruzada. presente metricas apropiadas como RMSE y MAE.
library(readxl)
arboles <- read_excel("E:/Data Science/Estadistica/Mod 1/Nueva carpeta/data arboles.xlsx", col_types = c("text", "text", "numeric",
"numeric", "numeric"))
head(arboles)
| finca | mg | peso | diametro | altura |
|---|---|---|---|---|
| FINCA_1 | GENOTIPO_1 | 13.73 | 4.7 | 5.0 |
| FINCA_1 | GENOTIPO_1 | 14.58 | 5.3 | 5.6 |
| FINCA_1 | GENOTIPO_1 | 15.88 | 4.8 | 5.8 |
| FINCA_1 | GENOTIPO_1 | 8.99 | 3.2 | 4.3 |
| FINCA_1 | GENOTIPO_1 | 6.99 | 2.2 | 3.3 |
| FINCA_1 | GENOTIPO_2 | 19.34 | 6.3 | 7.9 |
| correlacionDiametro | correlacionAltura | correlacionAltDiam | correlacionDiametrosqrt |
|---|---|---|---|
| 0.908123 | 0.8582009 | 0.935536 | 0.9345586 |
De acuerdo con los resultados de correlación entre el peso con la altura y el el diametro, se observa que en ambos casos existe una correlación positiva indicando que cuando aumenta la altura o el diametro, el peso aumenta. la correlacion entre el peso y el diametro es mayor.
La correlación entre la altura y diametro es bastante alta por lo tanto seria viable plantar un modelo tomando solo la variable diametro
modelo=lm(sqrt(peso)~diametro,data=arboles)
summary(modelo)
##
## Call:
## lm(formula = sqrt(peso) ~ diametro, data = arboles)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.63426 -0.24303 -0.05893 0.23216 0.72631
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.06348 0.13326 7.98 5.08e-12 ***
## diametro 0.58284 0.02365 24.64 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.324 on 88 degrees of freedom
## Multiple R-squared: 0.8734, Adjusted R-squared: 0.872
## F-statistic: 607.1 on 1 and 88 DF, p-value: < 2.2e-16
de acuerdo a lo evidenciado al plantear un modelo simple y uno multiple se encuentra que en el multiple la variable altura no tiene significancia y el coeficiente de determinación para ambos modelos es muy similar. en este caso se prefiere trabajar solo con una varible realizando una transformación al modelo
\(Raiz(peso)=1,0634 + 0,5828*Diametro\)
Validación cruzada
#Validación Cruzada
Peso_predict=array(NA,90)
for(i in 1:90){
datos_training=arboles[-i,]
datos_test=arboles[i,]
modelo_predict=lm(sqrt(peso)~diametro,data=datos_training)
Peso_predict[i]=predict(modelo_predict,list(diametro=datos_test$diametro))^2
}
Resultado_predict=data.frame(arboles,Peso_predict)
head(Resultado_predict)
| finca | mg | peso | diametro | altura | Peso_predict |
|---|---|---|---|---|---|
| FINCA_1 | GENOTIPO_1 | 13.73 | 4.7 | 5.0 | 14.472213 |
| FINCA_1 | GENOTIPO_1 | 14.58 | 5.3 | 5.6 | 17.275197 |
| FINCA_1 | GENOTIPO_1 | 15.88 | 4.8 | 5.8 | 14.895400 |
| FINCA_1 | GENOTIPO_1 | 8.99 | 3.2 | 4.3 | 8.560460 |
| FINCA_1 | GENOTIPO_1 | 6.99 | 2.2 | 3.3 | 5.402086 |
| FINCA_1 | GENOTIPO_2 | 19.34 | 6.3 | 7.9 | 22.472688 |
Mean absolute error (MAE)
MAE=mean(abs(Resultado_predict$peso-Resultado_predict$Peso_predict))
MAE
## [1] 2.414654
MAE/mean(Resultado_predict$peso)*100
## [1] 12.8671
El modelo propuesto presenta un error absoluto medio del 12,86% en el valor de prediccion del peso
Root Mean Squared Error (RMSE)
RMSE=sqrt(mean((Resultado_predict$peso-Resultado_predict$Peso_predict)^2))
RMSE
## [1] 3.022849
RMSE/mean(Resultado_predict$peso)*100
## [1] 16.10802
el modelo propuesto presenta un error cuadratico medio de 16% en la prediccion del peso