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
semanas comerciales ventas
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
estatura peso genero
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