Modelos

Se va realizar un modelo log-log, log-lin, lin-log, cuadrático, cubico y un modelo estandarizado con los datos proporcionados. Comparar los resultados con el modelo Lin-lin. Interpertar coeficientes, significancia y ajustes (R2 ajustado, AIC, BIC, log-likehood, RMSE y dado el caso el R2 generalizado) Hacer una tabla entre ellos y escoger el mejor modelo.

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(readxl)
datos <- read_excel("D:/DOCUMENTOS DE USUARIO/Downloads/Datos preparación examen.xlsx")
colnames(datos) <- c("Ciudad", "Habitantes", "PIB")
View(datos)


# Definir variables
y <- datos$PIB
x <- datos$Habitantes

datos$y=as.numeric(as.character(y))

datos$x=as.numeric(as.character(x))

#modelo log - log
datos$log_y=log(datos$y)

datos$log_x=log(datos$x)

loglog=lm(log_y~log_x, data=datos)

summary(loglog)
## 
## Call:
## lm(formula = log_y ~ log_x, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.97778 -0.38771 -0.02097  0.31554  2.94380 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.75462    0.14792  -32.14   <2e-16 ***
## log_x        1.02901    0.01535   67.05   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6118 on 1120 degrees of freedom
## Multiple R-squared:  0.8006, Adjusted R-squared:  0.8004 
## F-statistic:  4496 on 1 and 1120 DF,  p-value: < 2.2e-16
#  Modelo Lin-Lin 
linlin <- lm(y ~ x)
summary(linlin)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -19387.5     -2.9    220.0    329.1  20774.5 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -3.959e+02  4.540e+01   -8.72   <2e-16 ***
## x            2.711e-02  1.723e-04  157.31   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1499 on 1120 degrees of freedom
## Multiple R-squared:  0.9567, Adjusted R-squared:  0.9567 
## F-statistic: 2.475e+04 on 1 and 1120 DF,  p-value: < 2.2e-16
#  Modelo Log-Lin
loglin <- lm(log(y) ~ x)
summary(loglin)
## 
## Call:
## lm(formula = log(y) ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.3065 -0.8214 -0.1078  0.6790  4.1706 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 4.997e+00  3.819e-02  130.87   <2e-16 ***
## x           2.060e-06  1.449e-07   14.21   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.261 on 1120 degrees of freedom
## Multiple R-squared:  0.1528, Adjusted R-squared:  0.152 
## F-statistic:   202 on 1 and 1120 DF,  p-value: < 2.2e-16
#  Modelo Lin-Log
linlog <- lm(y ~ log(x))
summary(linlog)
## 
## Call:
## lm(formula = y ~ log(x))
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -4875  -1546   -321    857 213440 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -17438.9     1653.3  -10.55   <2e-16 ***
## log(x)        1906.6      171.5   11.12   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6838 on 1120 degrees of freedom
## Multiple R-squared:  0.09935,    Adjusted R-squared:  0.09855 
## F-statistic: 123.6 on 1 and 1120 DF,  p-value: < 2.2e-16
# Modelo Cuadrático
cuadratico <- lm(y ~ x + I(x^2))
summary(cuadratico)
## 
## Call:
## lm(formula = y ~ x + I(x^2))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6825.3  -114.8   -27.7    11.1 11434.7 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.109e+01  2.433e+01  -0.456    0.648    
## x            1.536e-02  2.281e-04  67.346   <2e-16 ***
## I(x^2)       1.906e-09  3.411e-11  55.879   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 770.5 on 1119 degrees of freedom
## Multiple R-squared:  0.9886, Adjusted R-squared:  0.9886 
## F-statistic: 4.842e+04 on 2 and 1119 DF,  p-value: < 2.2e-16
# Modelo Cúbico
cubico <- lm(y ~ x + I(x^2) + I(x^3))
summary(cubico)
## 
## Call:
## lm(formula = y ~ x + I(x^2) + I(x^3))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6359.1  -121.9   -49.0   -13.9 11664.6 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.807e+01  2.569e+01   1.093    0.275    
## x            1.380e-02  4.179e-04  33.028   <2e-16 ***
## I(x^2)       3.202e-09  2.941e-10  10.889   <2e-16 ***
## I(x^3)      -1.444e-16  3.254e-17  -4.437    1e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 764.2 on 1118 degrees of freedom
## Multiple R-squared:  0.9888, Adjusted R-squared:  0.9887 
## F-statistic: 3.282e+04 on 3 and 1118 DF,  p-value: < 2.2e-16
## Modelo Estandarizado
y_estandar <- scale(y)
x_estandar <- scale(x)
estandarizado <- lm(y_estandar ~ x_estandar)
summary(estandarizado)
## 
## Call:
## lm(formula = y_estandar ~ x_estandar)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.69173 -0.00041  0.03054  0.04569  2.88430 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.232e-17  6.215e-03     0.0        1    
## x_estandar  9.781e-01  6.218e-03   157.3   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2082 on 1120 degrees of freedom
## Multiple R-squared:  0.9567, Adjusted R-squared:  0.9567 
## F-statistic: 2.475e+04 on 1 and 1120 DF,  p-value: < 2.2e-16
# Comparar modelos: AIC, BIC, R2 ajustado, RMSE
modelos <- list(m_LinLin = linlin, m_LogLog = loglog, m_LogLin = loglin,
                m_LinLog = linlog, m_Cuadratico = cuadratico, m_Cubico = cubico,
                m_Estandarizado = estandarizado)
summary(modelos)
##                 Length Class Mode
## m_LinLin        12     lm    list
## m_LogLog        12     lm    list
## m_LogLin        12     lm    list
## m_LinLog        12     lm    list
## m_Cuadratico    12     lm    list
## m_Cubico        12     lm    list
## m_Estandarizado 12     lm    list
# Crear tabla comparativa
comparacion <- sapply(modelos, function(model) {
  c(
    R2_ajustado = summary(model)$adj.r.squared,
    AIC = AIC(model),
    BIC = BIC(model),
    LogLik = logLik(model),
    RMSE = sqrt(mean(residuals(model)^2))
  )
})
# Imprimir tabla comparativa
print(t(comparacion))
##                 R2_ajustado        AIC        BIC      LogLik         RMSE
## m_LinLin         0.95666148 19598.1150 19613.1836  -9796.0575 1498.0963700
## m_LogLog         0.80039039  2085.6768  2100.7454  -1039.8384    0.6113007
## m_LogLin         0.15201213  3708.6530  3723.7216  -1851.3265    1.2599664
## m_LinLog         0.09855082 23003.3422 23018.4108 -11498.6711 6832.4010946
## m_Cuadratico     0.98855611 18105.0738 18125.1652  -9048.5369  769.4770197
## m_Cubico         0.98874411 18087.4855 18112.5998  -9038.7427  762.7893555
## m_Estandarizado  0.95666148  -333.5403  -318.4717    169.7701    0.2079934

Con base en la tabla de comparación de modelos y los valores obtenidos, los modelos cúbico y cuadrático destacan como las mejores opciones. Esto se debe a que presentan los valores más adecuados para un buen ajuste.

Se considerados: R ajustado: Ambos modelos (cúbico y cuadrático) muestran un mayor R ajustado, indicando que explican mejor la variabilidad de los datos.

AIC: Un valor más bajo indica un mejor equilibrio entre ajuste.

BIC: Similar al AIC, pero con mayor restriccion al modelo.

Log-Likelihood: Cuanto mayor es el Log-Likelihood.

RMSE: Un RMSE más bajo refleja que las predicciones están más cerca de los valores reales.

Dado que los modelos cúbico y cuadrático tienen un rendimiento destacado en estas métricas, se consideran las mejores opciones para este análisis.