Trabajo 1 - Regresion Lineal Simple

Datos propios del archivo compartido

Author

Fernando G. Loayza Pizarro

Published

December 14, 2024

1 Ejercicio 4

El conjunto de datos contenidos en el archivo data-table-B3 muestran sobre el rendimiento de la gasolina, en millas, de 32 automóviles diferentes.

Warning: package 'dplyr' was built under R version 4.4.2

Adjuntando el paquete: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
Warning: package 'PerformanceAnalytics' was built under R version 4.4.2
Cargando paquete requerido: xts
Warning: package 'xts' was built under R version 4.4.2
Cargando paquete requerido: zoo

Adjuntando el paquete: 'zoo'
The following objects are masked from 'package:base':

    as.Date, as.Date.numeric

######################### Warning from 'xts' package ##########################
#                                                                             #
# The dplyr lag() function breaks how base R's lag() function is supposed to  #
# work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or       #
# source() into this session won't work correctly.                            #
#                                                                             #
# Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
# conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop           #
# dplyr from breaking base R's lag() function.                                #
#                                                                             #
# Code in packages is not affected. It's protected by R's namespace mechanism #
# Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning.  #
#                                                                             #
###############################################################################

Adjuntando el paquete: 'xts'
The following objects are masked from 'package:dplyr':

    first, last

Adjuntando el paquete: 'PerformanceAnalytics'
The following object is masked from 'package:graphics':

    legend
Warning in par(usr): argument 1 does not name a graphical parameter


Call:
lm(formula = y ~ x1, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.7923 -1.9752  0.0044  1.7677  6.8171 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 33.722677   1.443903   23.36  < 2e-16 ***
x1          -0.047360   0.004695  -10.09 3.74e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.065 on 30 degrees of freedom
Multiple R-squared:  0.7723,    Adjusted R-squared:  0.7647 
F-statistic: 101.7 on 1 and 30 DF,  p-value: 3.743e-11

Interpretación: Tenemos una correlacion fuerte negativa (inversa) de -0.88, esto quiere decir que a mayor cilindrada menor es el rendimiento. La recta que estima los datos es:

\[ y = 33.722 - 0.047 x \]

anova(regresion4)
Analysis of Variance Table

Response: y
          Df Sum Sq Mean Sq F value    Pr(>F)    
x1         1 955.72  955.72  101.74 3.743e-11 ***
Residuals 30 281.82    9.39                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Al realizar el ANOVA para la prueba de hipótesis:

\[\begin{align} H_0: \beta_1 = 0\\ H_1: \beta_1 \neq 0\\ \end{align} \]

Se obtuvo el valor p es igual 3.743e-11 indicando que el modelo de regresión SI es adecuado para los datos con un nivel de confianza al 0.95.

xnew = data.frame(x1=275)
predict(regresion4, xnew, interval="confidence", level=0.95)
       fit      lwr      upr
1 20.69879 19.58807 21.80952

Interpretación: El intervalo de confianza [19.58, 21.81] refleja la incertidumbre en torno a las predicciones medias. Esto significa que, según nuestro modelo, un automóvil con una cilindrada de 275 tiene, en promedio, un rendimiento que oscila entre 19.58 y 21.81 millas.

xnew = data.frame(x1=275)
predict(regresion4, xnew, interval="prediction", level=0.95)
       fit      lwr      upr
1 20.69879 14.34147 27.05611

Interpretación: intervalo de predicción proporciona incertidumbre en torno a un único valor. Esto significa que, según nuestro modelo, el 95% de los automóviles con una cilindrada de 275 pulg tiene un rendimiento entre 14.34 y 27.06.

Como se comentó, un intervalo de predicción refleja la incertidumbre alrededor a un valor único, mientras que un intervalo de confianza refleja la incertidumbre en torno a los valores de predicción medios. Por lo tanto, un intervalo de predicción será generalmente mucho más amplio que un intervalo de confianza para el mismo valor.

A continuación mostramos evidencia de esta ultima conclusión aplicados en nuestro dataset.

Azul: La línea de regresión

Gris: La banda de confianza

Rojo: La banda de predicción

Warning in predict.lm(regresion4, interval = "prediction"): predictions on current data refer to _future_ responses
Warning: Duplicated aesthetics after name standardisation: linetype
Duplicated aesthetics after name standardisation: linetype
`geom_smooth()` using formula = 'y ~ x'

2 Ejercicio 5

Se midió el peso inercial (en toneladas) y el ahorro de combustible (en milla/galón) para una muestra de siete camiones de diesel. En la tabla siguiente se presentan los resultados. (De “Emissions from Heavy ? Duty Diesel Vehicles,” J. Yanowitz, tesis de doctorado, Escuela de Minas de Colorado, 2001.)

Correlacion muestral

Warning in par(usr): argument 1 does not name a graphical parameter

Interpretación: Tienen una correlacion fuerte negativa (inversa) de -0.94, esto quiere decir que a mayor peso menor es el millaje.


Call:
lm(formula = millaje ~ peso, data = data)

Residuals:
      1       2       3       4       5       6       7 
 0.3717  0.2114  0.1892  0.1801  0.2019 -0.3414 -0.8128 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8.5593     0.5014  17.071 1.26e-05 ***
peso         -0.1551     0.0241  -6.437  0.00134 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4624 on 5 degrees of freedom
Multiple R-squared:  0.8923,    Adjusted R-squared:  0.8708 
F-statistic: 41.43 on 1 and 5 DF,  p-value: 0.001345
plot(data$peso, data$millaje,pch=19,col="red",las=1,lwd=2, xlab='Peso', ylab='Millaje', cex.axis=1.5, cex.lab=1.5)
abline(regresion, col=4, lwd=)

Interpretación: Se ha encontrado que la recta obtenida por minimos cuadrados puede ser usada para el pronostico de millaje dado un peso, la ecuación de esta recta es: \[ y = 8.5593 - 0.1551 x \]

confint(regresion,level=0.95)
                 2.5 %    97.5 %
(Intercept)  7.2704631  9.848207
peso        -0.2170815 -0.093180

Interpretación: Del summary del modelo, podemos ver que el valor de la interseccion es 8.5593 y de la pendiente negativa -0.1551 (son los coeficientes de regresion ajustados).

  • IC del 95 % para la intersección = [7.270, 9.848]

  • IC del 95% de la pendiente = [-0.217, -0.093]

anova(regresion)
Analysis of Variance Table

Response: millaje
          Df Sum Sq Mean Sq F value   Pr(>F)   
peso       1 8.8591  8.8591  41.435 0.001345 **
Residuals  5 1.0690  0.2138                    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Al realizar el ANOVA para la prueba de hipótesis:

\[\begin{align} H_0: \beta_1 = 0\\ H_1: \beta_1 \neq 0\\ \end{align} \]

Se obtuvo el valor p es igual 0.001 indicando que el modelo es adecuado para los datos con un nivel de confianza al 0.95.

3 Ejercicio 8

Un comerciante minorista realizó un estudio para determinar la relación que hay entre los gastos semanales de publicidad y las ventas.

Correlacion muestral

Warning in par(usr): argument 1 does not name a graphical parameter

Interpretación: Tienen una correlacion media positiva (directa) de 0.63, esto quiere decir que muchas veces a mayor costo mayor será la cantidad de ventas.


Call:
lm(formula = venta ~ costo, data = data2)

Residuals:
    Min      1Q  Median      3Q     Max 
-87.538 -32.700   8.566  39.118  55.774 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  343.706     44.766   7.678 1.68e-05 ***
costo          3.221      1.240   2.598   0.0266 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 50.23 on 10 degrees of freedom
Multiple R-squared:  0.403, Adjusted R-squared:  0.3433 
F-statistic: 6.751 on 1 and 10 DF,  p-value: 0.02657
plot(data2$costo, data2$venta,pch=19,col="red",las=1,lwd=2, xlab='Costo', ylab='Venta', cex.axis=1.5, cex.lab=1.5)
abline(regresion2, col=4, lwd=)

Interpretación: Se ha encontrado que la recta obtenida por minimos cuadrados puede ser usada para el pronostico de ventas dado un costo, la ecuación de esta recta es:

\[ y = 343.706 + 3.221 x \]

confint(regresion2, level = .95)
                  2.5 %     97.5 %
(Intercept) 243.9603219 443.450846
costo         0.4587991   5.982825

Interpretación: Del summary del modelo, podemos ver que el valor de la interseccion es 343.706 y de la pendiente 3.221 (son los coeficientes de regresion ajustados).

  • IC del 95 % para la intersección = [243.960, 443.451]

  • IC del 95% de la pendiente = [0.459, 5.9828]

anova(regresion2)
Analysis of Variance Table

Response: venta
          Df Sum Sq Mean Sq F value  Pr(>F)  
costo      1  17030 17030.0  6.7509 0.02657 *
Residuals 10  25226  2522.6                  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Al realizar el ANOVA para la prueba de hipótesis:

\[\begin{align} H_0: \beta_1 = 0\\ H_1: \beta_1 \neq 0\\ \end{align} \]

Se obtuvo el valor p es igual 0.026 indicando que el modelo NO es adecuado para los datos con un nivel de confianza al 0.95.

4 Ejercicio 10

La fuerza de impulso de un motor (y) es una función de la temperatura de escape (x) en oF cuando otras variables de importancia se mantienen constantes. Considere los siguientes datos.

x3r = c(4300,4650,3200,3150,4950,4010,3810,4500,3008)#temperatura
y3r = c(1760,1652,1485,1390,1820,1665,1550,1700,1270)#impulso

my_list <- list(temperatura = x3r,
                impulso = y3r)
 
data3 <- as.data.frame(my_list)

# graficando las variables
plot(x3r, y3r, pch=19, col=2,las=1)

Correlacion muestral

Warning in par(usr): argument 1 does not name a graphical parameter

Interpretación: Tienen una correlacion fuerte positiva (directa) de 0.93, esto quiere decir que a mayor temperatura mayor será el impulso.


Call:
lm(formula = impulso ~ temperatura, data = data3)

Residuals:
    Min      1Q  Median      3Q     Max 
-99.280 -16.135  -4.469  63.671  90.725 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 661.79488  145.70867   4.542 0.002662 ** 
temperatura   0.23430    0.03634   6.447 0.000351 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 72.94 on 7 degrees of freedom
Multiple R-squared:  0.8559,    Adjusted R-squared:  0.8353 
F-statistic: 41.56 on 1 and 7 DF,  p-value: 0.0003513
plot(data3$temperatura, data3$impulso,pch=19,col="red",las=1,lwd=2, xlab='Temperatura', ylab='Impulso', cex.axis=1, cex.lab=1)
abline(regresion3, col=4, lwd=)

Interpretación: Se ha encontrado que la recta obtenida por minimos cuadrados puede ser usada para el pronostico de temperatura dado un costo, la ecuación de esta recta es:

\[ y = 661.794 + 0.234 x \]

confint(regresion3, level = .95)
                  2.5 %       97.5 %
(Intercept) 317.2486264 1006.3411431
temperatura   0.1483614    0.3202341

Interpretación: Del summary del modelo, podemos ver que el valor de la interseccion es 661.794 y de la pendiente positiva es 0.234 (son los coeficientes de regresion ajustados).

  • IC del 95 % para la intersección = [317.248, 1006.341]

  • IC del 95% de la pendiente = [0.1483, 0.3202]

anova(regresion3)
Analysis of Variance Table

Response: impulso
            Df Sum Sq Mean Sq F value    Pr(>F)    
temperatura  1 221118  221118  41.563 0.0003513 ***
Residuals    7  37240    5320                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Al realizar el ANOVA para la prueba de hipótesis:

\[\begin{align} H_0: \beta_1 = 0\\ H_1: \beta_1 \neq 0\\ \end{align} \]

Se obtuvo el valor p es igual 0.0003513 indicando que el modelo SI es adecuado para los datos con un nivel de confianza al 0.95.