1.- Cree su propio ejemplo de regresión lineal simple utilizando un conjunto de datos con dos variables y la función lm. Grafique utilizando las funciones plot y abline.
Ejemplo:
Tome un laboratorio de electricidad, en donde se solicita medir un campo electrico con respecto a la distancia desde la fuente que lo emite. Nuestras dos variables son la distancia (metros) y la tension (volts)
Distancia.metros = c(0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13)
Tension.voltaje = c(2.941, 2.791, 2.740, 2.553, 2.412, 2.262, 2.080, 1.940, 1.757, 1.605, 1.443, 1.259, 1.033)
Procedemos a graficar con plot
plot(Tension.voltaje~Distancia.metros)
Luego usamos lm para ajustar modelos lineales
lm.fit=lm(Tension.voltaje~Distancia.metros)
lm.fit
##
## Call:
## lm(formula = Tension.voltaje ~ Distancia.metros)
##
## Coefficients:
## (Intercept) Distancia.metros
## 3.169 -15.809
summary(lm.fit)
##
## Call:
## lm(formula = Tension.voltaje ~ Distancia.metros)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.08124 -0.01333 0.01597 0.03306 0.04488
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.16938 0.02674 118.51 < 2e-16 ***
## Distancia.metros -15.80879 0.33693 -46.92 5.05e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.04545 on 11 degrees of freedom
## Multiple R-squared: 0.995, Adjusted R-squared: 0.9946
## F-statistic: 2202 on 1 and 11 DF, p-value: 5.048e-14
Graficamos nuevamente con la funcion abline (obtuve los valores al evaluar el grafico con las columnas cambiadas)
plot(Tension.voltaje~Distancia.metros)
abline(3.169,-15.809,col='purple')
2.- Utilice el modelo de regresión lineal simple de la actividad 1 para predecir 5 nuevos registros e incorpórelos a su conjunto de datos. Calcule nuevamente la regresión lineal simple ¿Se observa algún cambio en los coeficientes?
pw<-c(0.14,0.15,0.16,0.17,0.18)
newVector = predict.lm(lm.fit,data.frame(Distancia.metros=pw))
newVector
## 1 2 3 4 5
## 0.9561538 0.7980659 0.6399780 0.4818901 0.3238022
Se incorporan datos de la prediccion a “Tension.voltaje”
Tension.volt = c(Tension.voltaje,newVector[1:5])
Distancia.metros = c(Distancia.metros,0.14)
Distancia.metros = c(Distancia.metros,0.15)
Distancia.metros = c(Distancia.metros,0.16)
Distancia.metros = c(Distancia.metros,0.17)
Distancia.metros = c(Distancia.metros,0.18)
plot(Tension.volt~Distancia.metros)
Recalculo regresión lineal
lm.fit2 = lm(Tension.volt~Distancia.metros)
lm.fit2
##
## Call:
## lm(formula = Tension.volt ~ Distancia.metros)
##
## Coefficients:
## (Intercept) Distancia.metros
## 3.169 -15.809
Resumen Datos
summary(lm.fit2)
##
## Call:
## lm(formula = Tension.volt ~ Distancia.metros)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.081242 0.000000 0.005203 0.017047 0.044879
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.16938 0.01853 171.00 <2e-16 ***
## Distancia.metros -15.80879 0.17122 -92.33 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03769 on 16 degrees of freedom
## Multiple R-squared: 0.9981, Adjusted R-squared: 0.998
## F-statistic: 8525 on 1 and 16 DF, p-value: < 2.2e-16
No se observa ningun cambio en los coeficientes, la pendiente y el intercepto se mantienen en los mismos margenes.
3.- Tome un punto cualquiera de su conjunto de datos y multiplíquelo por 100, calcule nuevamente la regresión lineal simple ¿Se observa algún cambio en los coeficientes?
Primero se hace el cambio solo en un valor de la Tension
Tension.volt[8] = Tension.volt[8]*100
Recalculo regresión lineal
lm.fit2 = lm(Tension.volt~Distancia.metros)
lm.fit2
##
## Call:
## lm(formula = Tension.volt ~ Distancia.metros)
##
## Coefficients:
## (Intercept) Distancia.metros
## 19.49 -75.27
plot(Tension.volt~Distancia.metros)
abline(19.49,-75.27,col='purple')
Se observa que efectivamente hay un cambio en los valores de la pendiente(-75.27) y el intercepto(19.49), aunque la tendencia es la misma
Resumen Datos
summary(lm.fit2)
##
## Call:
## lm(formula = Tension.volt ~ Distancia.metros)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.795 -13.162 -10.061 -7.548 180.533
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 19.49 22.89 0.851 0.407
## Distancia.metros -75.27 211.51 -0.356 0.727
##
## Residual standard error: 46.56 on 16 degrees of freedom
## Multiple R-squared: 0.007853, Adjusted R-squared: -0.05416
## F-statistic: 0.1266 on 1 and 16 DF, p-value: 0.7266
Se realiza un segundo caso con el valor de la distancia (misma posicion que en la tension), manteniendo el cambio realizado en la tension
Distancia.metros[8] = Distancia.metros[8]*100
Recalculo regresión lineal
lm.fit2 = lm(Tension.volt~Distancia.metros)
lm.fit2
##
## Call:
## lm(formula = Tension.volt ~ Distancia.metros)
##
## Coefficients:
## (Intercept) Distancia.metros
## -0.6643 24.3025
plot(Tension.volt~Distancia.metros)
abline(-0.6643,24.3025,col='purple')
Para este caso el cambio es mas radical ya que se cambia la linea de tendencia, se observa una pendiente de 24.3025 y un intercepto de -0.6643
Resumen Datos
summary(lm.fit2)
##
## Call:
## lm(formula = Tension.volt ~ Distancia.metros)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.3864 -1.7020 0.0365 1.7629 3.3622
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.6643 0.5413 -1.227 0.237
## Distancia.metros 24.3025 0.2866 84.796 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.202 on 16 degrees of freedom
## Multiple R-squared: 0.9978, Adjusted R-squared: 0.9976
## F-statistic: 7190 on 1 and 16 DF, p-value: < 2.2e-16