This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
#Objetivo
#Realizar prediciones con Regression lineal Simple. Caso de restaurante pizzas y estudiantes.
#Librerias
library(ggplot2)
#DATOS
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
#Visualización de datos:
ggplot(data = datos, mapping = aes(poblacion, ventas)) +
geom_point()
#Valor de la correlación:
cor(datos$poblacion, datos$ventas)
## [1] 0.950123
#Encontrar la recta de regresión:
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]
#Multiple R-squared: 0.9027:
#Igual al valor de la correlación. Raiz de M R-squared
#Se usa una variable para almacenar summary(modelo) y determinar el valor de r.squared
resumen <- summary(modelo)
sqrt(resumen$r.squared)
## [1] 0.950123
#Dibujar la linea de tendencia:
ggplot(data = datos, mapping = aes(poblacion, ventas)) +
geom_point() +
geom_line(aes(poblacion, modelo$fitted.values, color = "red"))
#Predecir para 25 mil estudiantes:
#Mediante formula:
x <- 25
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 185
#Mediante la función predict():
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
#Predecir para 8 mil estudiantes:
x <- 8
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 100
#Predecir para 14 mil estudiantes:
x <- 14
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 130
#Predecir para 20 mil estudiantes:
x <- 20
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 160
#Predecir para 30 mil estudiantes
x <- 30
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 210
#Predecir para 28 mil estudiantes
x <- 28
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 200
#Predecir para 40 mil estudiantes:
x <- 40
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 260
#Predecir para 50 mil estudiantes:
x <- 50
prediccion.Y <- a + b * x
prediccion.Y
## (Intercept)
## 310
#Varias predicciones:
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
You can also embed plots, for example:
Note that the echo = FALSE
parameter was added to the code chunk to prevent printing of the R code that generated the plot.