Introducción



El siguiente informe corresponde a una regresión para los datos del peso de una muestra de árboles, en función de la altura, el diámetro, entre otras. Se buscará estimar el peso de un árbol con un diámetro de 5.5 en la finca 3, el peso de un árbol con diámetro de 3.5 en la finca 2 y finalmente se calculará el MAE del modelo transformado.

data
## # A tibble: 90 × 5
##    finca   mg          peso diametro altura
##    <chr>   <chr>      <dbl>    <dbl>  <dbl>
##  1 FINCA_1 GENOTIPO_1 13.7       4.7    5  
##  2 FINCA_1 GENOTIPO_1 14.6       5.3    5.6
##  3 FINCA_1 GENOTIPO_1 15.9       4.8    5.8
##  4 FINCA_1 GENOTIPO_1  8.99      3.2    4.3
##  5 FINCA_1 GENOTIPO_1  6.99      2.2    3.3
##  6 FINCA_1 GENOTIPO_2 19.3       6.3    7.9
##  7 FINCA_1 GENOTIPO_2 21.4       6.6    8.3
##  8 FINCA_1 GENOTIPO_2 13.8       5.3    7.3
##  9 FINCA_1 GENOTIPO_2 11.9       4.9    6.7
## 10 FINCA_1 GENOTIPO_2 16.6       5.9    7.1
## # ℹ 80 more rows



Planteamiento



Variables

Debido a que se busca evaluar la relacion entre el peso de un árbol respecto a su altura. Se escoge el peso(y) como respuesta a la variable predictora diámetro(x). Se espera que a mayor diámetro, mayor peso del árbol. Se puede observar la relación en la siguiente gráfica.


A continuación se presenta la correlación entre ambas variables:

cor(x,y)
## [1] 0.908123



Modelo de regresión Simple



## (Intercept)           x 
##   -9.020259    5.102578



El coeficiente B1 indica en este caso que por cada metro adicional de diámetro se espera un incremento de 5.1 toneladas de peso.

summary(regresim)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.3775 -2.6594  0.0237  1.8758 11.9876 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -9.0203     1.4129  -6.384 7.86e-09 ***
## x             5.1026     0.2508  20.346  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.435 on 88 degrees of freedom
## Multiple R-squared:  0.8247, Adjusted R-squared:  0.8227 
## F-statistic:   414 on 1 and 88 DF,  p-value: < 2.2e-16



Basado en el R cuadrado, se puede decir que el modelo logra explicar un 82.47% de la variabilidad del peso del árbol.

Además, basado en el valor P, se puede concluir que el diámetro sí es una variable importante a la hora de conocer el peso de un árbol

### Modelo de regresión múltiple

y = data$peso
x1 = data$diametro
x2 = data$altura

plot(data[,3:5])



cor(data[,3:5])
##               peso diametro    altura
## peso     1.0000000 0.908123 0.8582009
## diametro 0.9081230 1.000000 0.9355360
## altura   0.8582009 0.935536 1.0000000



## 
## Call:
## lm(formula = y ~ x1 + x2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.3083 -2.5121  0.1608  2.0088 11.7446 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -9.1205     1.4305  -6.376 8.44e-09 ***
## x1            4.7395     0.7128   6.649 2.49e-09 ***
## x2            0.3132     0.5751   0.544    0.587    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.449 on 87 degrees of freedom
## Multiple R-squared:  0.8253, Adjusted R-squared:  0.8213 
## F-statistic: 205.5 on 2 and 87 DF,  p-value: < 2.2e-16

En este caso se presenta un problema de multicolinealidad debido a que las variables predictoras de diámetro y altura se encuentran altamente correlacionadas.

### Selección de Variables

regremul2 = step(regremul1)
## Start:  AIC=225.79
## y ~ x1 + x2
## 
##        Df Sum of Sq    RSS    AIC
## - x2    1      3.53 1038.2 224.09
## <none>              1034.7 225.79
## - x1    1    525.74 1560.5 260.76
## 
## Step:  AIC=224.09
## y ~ x1
## 
##        Df Sum of Sq    RSS    AIC
## <none>              1038.2 224.09
## - x1    1      4884 5922.2 378.80
summary(regremul2)
## 
## Call:
## lm(formula = y ~ x1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.3775 -2.6594  0.0237  1.8758 11.9876 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -9.0203     1.4129  -6.384 7.86e-09 ***
## x1            5.1026     0.2508  20.346  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.435 on 88 degrees of freedom
## Multiple R-squared:  0.8247, Adjusted R-squared:  0.8227 
## F-statistic:   414 on 1 and 88 DF,  p-value: < 2.2e-16

Debido a que el diámetro explica el peso que puede tener un árbol por sí solo, se descarta utilizar la altura como variable predictora.


### Transformación de Variables

plot(x1,y)



### Validación de supuestos





Varianza: La varianza es aleatoria y no tiene ninguna tendencia en particular
Normalidad: Los datos se ajustan relativamente bien a la línea de normalidad del qqplot



Se concluye que se ha identificado que no existe relación lineal entre el diámetro con el peso del árbol, lo cual indica que se puede mejorar el ajuste con una transformación. Se propone utilizar el logaritmo de Y por su comportamiento creciente.

summary(regremultrans)
## 
## Call:
## lm(formula = log(y) ~ x1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.27395 -0.10180 -0.00328  0.10073  0.33742 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.32798    0.05977   22.22   <2e-16 ***
## x1           0.27818    0.01061   26.22   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1453 on 88 degrees of freedom
## Multiple R-squared:  0.8865, Adjusted R-squared:  0.8852 
## F-statistic: 687.6 on 1 and 88 DF,  p-value: < 2.2e-16

Validamos supuestos nuevamente

Como se puede ver, el R cuadrado del modelo con la variable Y transformada con logaritmo mejora a un 88.5%, además de que mejoran los supuestos de linealidad y normalidad a nivel gráfico

### Variables categóricas

regremultransmulti = lm(log(y)~x1+x3)
summary(regremultransmulti)
## 
## Call:
## lm(formula = log(y) ~ x1 + x3)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.269702 -0.058652  0.000277  0.074438  0.233730 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.260860   0.045803  27.528  < 2e-16 ***
## x1          0.274018   0.009047  30.287  < 2e-16 ***
## x3FINCA_2   0.042002   0.031983   1.313    0.193    
## x3FINCA_3   0.227430   0.028554   7.965 6.23e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1069 on 86 degrees of freedom
## Multiple R-squared:   0.94,  Adjusted R-squared:  0.9379 
## F-statistic: 449.1 on 3 and 86 DF,  p-value: < 2.2e-16

La variable categórica finca mejora el ajuste del modelo a un 94%. Lo que significa que es una variable muy relevante.


### Predicción

pred = predict(regremultransmulti, list(x1=5.5, x3="FINCA_3"))
exp(pred)
##        1 
## 19.99313
pred2 = predict(regremultransmulti, list(x1=3.5, x3="FINCA_2"))
exp(pred2)
##        1 
## 9.601551



Con esto se concluye que un árbol de 5.5 metros de diámetro en la finca 3 tendría un peso de 20 toneladas, mientras que uno de 3.5 metros de diámetro en la finca 2 tendría un peso de 9.6 toneladas.


Cálculo del MAE

datamae <- predict(regremultransmulti, list(x1=data$diametro, x3=data$finca))
mae(data$peso, datamae)
## [1] 15.92326

Se considera que el mae es exageradamente alto.