Objetivo
Determinar predicciones de datos bajo el modelo de regresión lineal simple
Descripción
De un conjunto de datos con dos variables (bivariable) en donde una de ellas es X variable independiente y otra de ellas Y variable dependiente, predecir el valor de Y conforme la historia de X.
Cargar librerias
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(mosaic)
## Warning: package 'mosaic' was built under R version 4.0.3
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## The 'mosaic' package masks several functions from core packages in order to add
## additional features. The original behavior of these functions should not be affected by this.
##
## Attaching package: 'mosaic'
## The following object is masked from 'package:Matrix':
##
## mean
## The following object is masked from 'package:ggplot2':
##
## stat
## The following objects are masked from 'package:dplyr':
##
## count, do, tally
## The following objects are masked from 'package:stats':
##
## binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
## quantile, sd, t.test, var
## The following objects are masked from 'package:base':
##
## max, mean, min, prod, range, sample, sum
library(readr)
library(ggplot2)
library(knitr)
Ejercicio
semanas=c(1:12)
comerciales=c(2,5,1,3,4,1,5,3,4,2,3,2)
ventas=c(50,57,41,54,54,38,63,48,59,46, 45, 48 )
datos=data.frame(semanas,comerciales,ventas)
kable(datos, caption = "Ventas en función de inversión en comerciales")
Ventas en función de inversión en comerciales
| 1 |
2 |
50 |
| 2 |
5 |
57 |
| 3 |
1 |
41 |
| 4 |
3 |
54 |
| 5 |
4 |
54 |
| 6 |
1 |
38 |
| 7 |
5 |
63 |
| 8 |
3 |
48 |
| 9 |
4 |
59 |
| 10 |
2 |
46 |
| 11 |
3 |
45 |
| 12 |
2 |
48 |
r=cor(datos$comerciales, datos$ventas)
r
## [1] 0.9006177
ggplot(data = datos, aes(x = comerciales, y = ventas)) +
geom_point(colour = 'blue')

modelo=lm(data = datos, formula = ventas~comerciales)
modelo
##
## Call:
## lm(formula = ventas ~ comerciales, data = datos)
##
## Coefficients:
## (Intercept) comerciales
## 36.131 4.841
summary(modelo)
##
## Call:
## lm(formula = ventas ~ comerciales, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.6534 -2.7331 0.1076 2.8357 4.1873
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 36.1315 2.3650 15.278 2.93e-08 ***
## comerciales 4.8406 0.7387 6.553 6.45e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.378 on 10 degrees of freedom
## Multiple R-squared: 0.8111, Adjusted R-squared: 0.7922
## F-statistic: 42.94 on 1 and 10 DF, p-value: 6.449e-05
paste("El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación: ", r^2)
## [1] "El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación: 0.811112191696598"
a=modelo$coefficients[1]
b=modelo$coefficients[2]
a ; b
## (Intercept)
## 36.13147
## comerciales
## 4.840637
ggplot() +
geom_point(data = datos, aes(x = comerciales, y = ventas), colour='blue') +
geom_line(aes( x = datos$comerciales, y = predict(modelo, datos)), color = "red") +
xlab("Comerciales") +
ylab("Ventas") +
ggtitle("Linea de tendencia sobre Conjunto de Datos")

x=c(4,3.5,2,0,1)
prediccion=predict(object = modelo, newdata = data.frame(comerciales = x))
prediccion
## 1 2 3 4 5
## 55.49402 53.07371 45.81275 36.13147 40.97211
y = a + b * x
y
## [1] 55.49402 53.07371 45.81275 36.13147 40.97211
Ejercicio 2
datos=read.table("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/datos/body.dat.txt", quote="\"", comment.char="")
datos=as.data.frame(datos)
colnames(datos)[23:25]=c("peso", "estatura", "genero")
datos=select(datos, estatura, peso, genero)
kable(head(datos, 10), caption = "Datos de pesos y etaturas de personas")
Datos de pesos y etaturas de personas
| 174.0 |
65.6 |
1 |
| 175.3 |
71.8 |
1 |
| 193.5 |
80.7 |
1 |
| 186.5 |
72.6 |
1 |
| 187.2 |
78.8 |
1 |
| 181.5 |
74.8 |
1 |
| 184.0 |
86.4 |
1 |
| 184.5 |
78.4 |
1 |
| 175.0 |
62.0 |
1 |
| 184.0 |
81.6 |
1 |
r=cor(datos$estatura, datos$peso)
r
## [1] 0.7173011
ggplot(data = datos, aes(x = estatura, y = peso)) +
geom_point(colour = 'blue')

modelo=lm(data = datos, formula = peso~estatura)
modelo
##
## Call:
## lm(formula = peso ~ estatura, data = datos)
##
## Coefficients:
## (Intercept) estatura
## -105.011 1.018
summary(modelo)
##
## Call:
## lm(formula = peso ~ estatura, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.743 -6.402 -1.231 5.059 41.103
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -105.01125 7.53941 -13.93 <2e-16 ***
## estatura 1.01762 0.04399 23.14 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.308 on 505 degrees of freedom
## Multiple R-squared: 0.5145, Adjusted R-squared: 0.5136
## F-statistic: 535.2 on 1 and 505 DF, p-value: < 2.2e-16
paste("El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación :", r^2)
## [1] "El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación : 0.514520837538849"
a=modelo$coefficients[1]
b=modelo$coefficients[2]
a ; b
## (Intercept)
## -105.0113
## estatura
## 1.017617
ggplot() +
geom_point(data = datos, aes(x = estatura, y = peso), colour='blue') +
geom_line(aes( x = datos$estatura, y = predict(modelo, datos)), color = "red") +
xlab("Estarura") +
ylab("Peso") +
ggtitle("Linea de tendencia sobre Conjunto de Datos")

x=c(150, 160, 170, 175, 185, 190)
prediccion=predict(object = modelo, newdata = data.frame(estatura = x))
prediccion
## 1 2 3 4 5 6
## 47.63126 57.80743 67.98360 73.07168 83.24785 88.33593
y = a + b * x
y
## [1] 47.63126 57.80743 67.98360 73.07168 83.24785 88.33593
Interpretacion
Lo primero es cargar un conjunto de datos para una empresa que invierte dinero en comerciales se tienen un historial de ventas de doce semanas, para el primer ejercicio hacemos una tabla donde se ven los datos
Despues sacamos el valor de correlación entre las varibles la cual es 0.9006177 y Graficamos la dispersion
Para dspues Generar el modelo regresión lineal y sacar El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación que es 0.8111 (El coeficiente de determinación r2 con valor de 0.8111 significa que el valor de solido representa el 81.11 % del oxígeno)
Y por ultimo hacemos una grafica de tenderncia y Predecir conforme al modelo la cual dara varios resultados
Para el segundo ejercicio nos dice, Las Mediciones del cuerpo humano en donde se buscar idntificar el coefieicnte de correlación r, el coeficiente de determinació r2 y el modelo de regresión lineal para predecir alturas en relación a el peso de una persona, Primero hacemos una tabla que muestre los datos que nos piden.
Despues sacamos ek Valor de correlación entre las variables el cual es 0.7173, para despues hacer una grafica de dispersion
Para despues Generar el modelo regresión lineal y sacar el coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación 0.51452
Despues hacemos una grafica de tendencia y Predecir conforme al modelo el cual dara muchos resultados