#1. Regresión lineal simple

Graficando la magnitud de los sismos y la cantidad de estaciones que lo detectaron del conjunto de datos quakes. ¿Se puede observar alguna relación entre estas variables?¿Cuál?

dataset <- datasets::quakes
plot(stations~mag,data=quakes)

Entonces, utilizamos la funcion lm para ajustar un modelo lineal de los datos:

lm.fit <- lm(stations~mag,data=quakes)
lm.fit
## 
## Call:
## lm(formula = stations ~ mag, data = quakes)
## 
## Coefficients:
## (Intercept)          mag  
##     -180.42        46.28
summary(lm.fit)
## 
## Call:
## lm(formula = stations ~ mag, data = quakes)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -48.871  -7.102  -0.474   6.783  50.244 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -180.4243     4.1899  -43.06   <2e-16 ***
## mag           46.2822     0.9034   51.23   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.5 on 998 degrees of freedom
## Multiple R-squared:  0.7245, Adjusted R-squared:  0.7242 
## F-statistic:  2625 on 1 and 998 DF,  p-value: < 2.2e-16
plot(stations~mag,data=quakes);abline(-180.4,46.28,col="magenta")

Podemos intentar predecir con este modelo lineal los valores utilizando la funcion predict.lm:

predict.lm(lm.fit,data.frame(mag=5))
##        1 
## 50.98673

Igualmente, podemos predecir varios puntos a la vez:

pw <- c (4,4.5,5,5.5,6)

predict.lm(lm.fit,data.frame(mag=pw))
##         1         2         3         4         5 
##  4.704516 27.845622 50.986727 74.127833 97.268938

Incorporaremos estos datos calculados a los datos que ya estaban en el conjunto de datos para ver que ocurre:

lat <- c(12.25,12.25,12.25,12.25,12.25)
long <- c(166.60,166.60,166.60,166.60,166.60)
depth <- c(123,123,123,123,123)
mag <- c(4.0,4.5,5.0,5.5,6.0)
stations <- c(4.704516,27.845622, 50.986727, 74.127833, 97.268938)
DnewData <- data.frame(lat=lat,long=long,depth=depth,mag=mag,stations=stations)
newdataset <- rbind(dataset,DnewData)

Ahora calculamos nuevamente la regresion lineal:

lm.fit <- lm(stations~mag,data=newdataset)
lm.fit
## 
## Call:
## lm(formula = stations ~ mag, data = newdataset)
## 
## Coefficients:
## (Intercept)          mag  
##     -180.42        46.28
summary(lm.fit)
## 
## Call:
## lm(formula = stations ~ mag, data = newdataset)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -48.871  -7.102  -0.359   6.757  50.244 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -180.4243     4.1404  -43.58   <2e-16 ***
## mag           46.2822     0.8923   51.87   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.47 on 1003 degrees of freedom
## Multiple R-squared:  0.7284, Adjusted R-squared:  0.7281 
## F-statistic:  2690 on 1 and 1003 DF,  p-value: < 2.2e-16

Como podemos ver, los coeficientes siguen siendo los mismos que antes de agregar estos datos.

Ahora veremos que ocurre si tomamos un punto muy por fuera de los datos y calculamos su regresion lineal:

#en este caso utilizaremos el primer dato x100 que aparece en la tabla de datos
datoExterno <- data.frame(lat=0,long=0,depth=0,mag=4.8*100,stations=41*100)

Extdataset <- rbind(dataset,datoExterno)

Calculamos la aproximacion lineal:

lm.fit <- lm(stations~mag,data=Extdataset)
lm.fit
## 
## Call:
## lm(formula = stations ~ mag, data = Extdataset)
## 
## Coefficients:
## (Intercept)          mag  
##      -6.245        8.581
summary(lm.fit)
## 
## Call:
## lm(formula = stations ~ mag, data = Extdataset)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -23.237 -13.372  -6.230   7.054  87.188 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -6.24460    0.63578  -9.822   <2e-16 ***
## mag          8.58145    0.04008 214.122   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 19.05 on 999 degrees of freedom
## Multiple R-squared:  0.9787, Adjusted R-squared:  0.9787 
## F-statistic: 4.585e+04 on 1 and 999 DF,  p-value: < 2.2e-16

En este caso podemos ver que los coeficientes se ven muy alterados en comparacion con como estaban antes, ya que el intercepto paso de ~-180 a ~-6, mientras que “mag” paso de ~46 a ~8