library(ggplot2) # Gráficos mas amigables
poblacion <- c( 2, 6, 8, 8, 12, 16, 20, 20, 22, 26)
ventas <- c(58, 105, 88, 118, 117, 137, 157, 169, 149, 202)
datos <- data.frame(poblacion, ventas)
datos
## poblacion ventas
## 1 2 58
## 2 6 105
## 3 8 88
## 4 8 118
## 5 12 117
## 6 16 137
## 7 20 157
## 8 20 169
## 9 22 149
## 10 26 202
ggplot(data = datos, mapping = aes(poblacion, ventas)) +
geom_point()
cor(datos$poblacion, datos$ventas)
## [1] 0.950123
modelo <- lm(data = datos, formula = ventas ~ poblacion)
summary(modelo)
##
## Call:
## lm(formula = ventas ~ poblacion, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.00 -9.75 -3.00 11.25 18.00
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 60.0000 9.2260 6.503 0.000187 ***
## poblacion 5.0000 0.5803 8.617 2.55e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.83 on 8 degrees of freedom
## Multiple R-squared: 0.9027, Adjusted R-squared: 0.8906
## F-statistic: 74.25 on 1 and 8 DF, p-value: 2.549e-05
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
resumen <- summary(modelo)
sqrt(resumen$r.squared) #
## [1] 0.950123
ggplot(data = datos, mapping = aes(poblacion, ventas)) +
geom_point() +
geom_line(aes(poblacion, modelo$fitted.values, color = "red"))
x <- 25
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 185
valornuevo <- data.frame(poblacion=c(25, 30, 28, 15, 10))
prediccion.Y <- predict(object = modelo, newdata = valornuevo)
prediccion.Y
## 1 2 3 4 5
## 185 210 200 135 110
x <- 8
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 100
x <- 14
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 130
x <- 20
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 160
x <- 30
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 210
x <- 28
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 200
x <- 40
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 260
x <- 50
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 310
valornuevo <- data.frame(poblacion=c(8, 14, 20, 30, 28, 40, 50))
prediccion.Y <- predict(object = modelo, newdata = valornuevo)
prediccion.Y
## 1 2 3 4 5 6 7
## 100 130 160 210 200 260 310
CONCLUSIONES
La regresion lineal sirve para comparar dos variables con cierto grados de coeficiente de relacion, entre una variable dependiente y una independiente en donde la variable independiente es quien dicta el compartamiento de la otra, algo que hay que tomar en cuenta es que esto no nos sirve para la toma de desiciones ya que no explica una grafica de causa y efecto, solo nos explica la relacion entre una variable y otra, con cierta relacion entre las dos, de alli que el grafico tenga una linea que atrivieza todos los puntos centrales, siendo esta linea la tendencia de la mayoria de los datos y siendo el coeficiente de relacion que tan separadas estan las demas muestras de la tendencia