MODULO 1. TECNICAS ESTADISTICAS
TALLER DE SIMULACION ESTADISTICA EN R
Alumno: Oscar Andres Ramirez Avendaño
codigo: 1118863919
Maestria en Ciencia de datos
Pontificia Universidad Javeriana
### Punto 1
library(readxl)
ecopetrol <- read_excel("C:/Users/user/Desktop/ecopetrol.xlsx")
View(ecopetrol)
attach(ecopetrol)
summary(p_accion)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 955 1066 1120 1108 1164 1230
summary(p_barril)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 30.44 34.65 36.05 35.53 36.98 37.87
plot(p_barril,p_accion)
cor(p_barril,p_accion)
## [1] 0.7093688
modelo=lm(p_accion~p_barril)
summary(modelo)
##
## Call:
## lm(formula = p_accion ~ p_barril)
##
## Residuals:
## Min 1Q Median 3Q Max
## -59.88 -40.73 -15.77 33.38 135.87
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 174.894 232.272 0.753 0.462404
## p_barril 26.271 6.526 4.026 0.000978 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 56.98 on 16 degrees of freedom
## Multiple R-squared: 0.5032, Adjusted R-squared: 0.4722
## F-statistic: 16.21 on 1 and 16 DF, p-value: 0.0009777
Modelo propuesto:
p_accion = 174.8 + 26.27(p_barril)
R^2 = 0.5331
summary(modelo)
##
## Call:
## lm(formula = p_accion ~ p_barril)
##
## Residuals:
## Min 1Q Median 3Q Max
## -59.88 -40.73 -15.77 33.38 135.87
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 174.894 232.272 0.753 0.462404
## p_barril 26.271 6.526 4.026 0.000978 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 56.98 on 16 degrees of freedom
## Multiple R-squared: 0.5032, Adjusted R-squared: 0.4722
## F-statistic: 16.21 on 1 and 16 DF, p-value: 0.0009777
H0= La Variable “Precio del Barril” no influye en el precio de la accion H1 = La Variable “Precio del Barril” si influye en el precio de la accion
Se observa un valor p_value de 0.000977 lo cual rechaza la hipotesis nula de que la variable no tiene relacion con el modelo, y se acepta la hipotesis alternativa de que la variable “Precio del Barril” si influye directamente en el precio de las acciones de ecopetrol.
Interprete los coeficientes del modelo propuesto en “a)”
modelo
p_accion = 174.8 + 26.27(p_barril)
Intercepto o B0= 174.8 significa que si el precio del barril es igual a 0, la accion de ecopetrol tendria un costo de 174.8
Pendiente o B1= 26.27 significa que si el precio del barril aumenta 1 unidad, el valor del precio de la accion de ecopetrol aumentara 26.27
Haga un análisis de los residuos. ¿Qué supuesto no se cumple?
par(mfrow=c(2,2))
plot(modelo)
plot(p_barril, p_accion); abline(modelo, col="red")
residuos = residuals(modelo)
summary(residuos)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -59.88 -40.72 -15.77 0.00 33.38 135.87
shapiro.test(residuos)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.89333, p-value = 0.04403
hist(residuos)
1. Media cero: Se cumple por defecto. 2. Varianza Constante: Se observa en la grafica 1 de residuales vs ajustados que el comportamiento no es aleatorio y presenta una concentracion en la parte alta de los datos, indicando una advertencia. 3. Normalidad: Se observa en la grafica 2 que los datos se ajustan bien a la linea de normalidad en la parte media, pero presentan desviaciones en las colas de los graficos. 4. Dentro de el grafico del histograma de normalidad, tambien se observa que los datos no son normales presentando una tendencia hacia la parte alta. 5.realizando el test de shapiro se comprueba que los residuos no cumplen el test de normalidad
Se observa que el modelo tiene un nivel de certeza bajo, apesar de que la variable del precio del barril tiene influencia sobre el precio de las acciones, seguramente existen mas variables para explicar el precio de la accion. El modelo es afectado porque en los niveles donde mas alto fue el valor de la accion no coincidieron con los precios mas altos del barril.
### Punto 2
library(readxl)
salarios <- read_excel("C:/Users/user/Desktop/salarios.xlsx")
## New names:
## * `` -> ...5
## * `` -> ...6
attach(salarios)
summary(inflacion_acumulada)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 9.23 39.11 59.63 56.00 76.20 91.01
summary(smlm)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 236460 332000 433700 436902 535600 644350
plot(smlm,inflacion_acumulada)
cor(smlm,inflacion_acumulada)
## [1] 0.9849531
modelo_salarios=lm(smlm~inflacion_acumulada)
summary(modelo_salarios)
##
## Call:
## lm(formula = smlm ~ inflacion_acumulada)
##
## Residuals:
## Min 1Q Median 3Q Max
## -33710 -18291 -6880 19314 40812
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 148034.0 14228.0 10.40 2.96e-08 ***
## inflacion_acumulada 5158.6 233.7 22.07 7.52e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23020 on 15 degrees of freedom
## Multiple R-squared: 0.9701, Adjusted R-squared: 0.9681
## F-statistic: 487.2 on 1 and 15 DF, p-value: 7.524e-13
Se observa un R2 de 0.97 y se procede a realizar una transformacion polinomica grado 2 para mejorar la aceptacion del modelo logrando un r2 de 0.99
modelo_polinomico=lm(smlm ~ poly(inflacion_acumulada, 2, raw = TRUE), data = salarios)
summary(modelo_polinomico)
##
## Call:
## lm(formula = smlm ~ poly(inflacion_acumulada, 2, raw = TRUE),
## data = salarios)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21039 -1976 1014 3811 14023
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.250e+05 9.766e+03 23.041 1.57e-12
## poly(inflacion_acumulada, 2, raw = TRUE)1 1.250e+03 4.223e+02 2.959 0.0104
## poly(inflacion_acumulada, 2, raw = TRUE)2 3.829e+01 4.044e+00 9.469 1.83e-07
##
## (Intercept) ***
## poly(inflacion_acumulada, 2, raw = TRUE)1 *
## poly(inflacion_acumulada, 2, raw = TRUE)2 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8756 on 14 degrees of freedom
## Multiple R-squared: 0.996, Adjusted R-squared: 0.9954
## F-statistic: 1728 on 2 and 14 DF, p-value: < 2.2e-16
modelo_polinomico$coefficients
## (Intercept)
## 225007.10819
## poly(inflacion_acumulada, 2, raw = TRUE)1
## 1249.66510
## poly(inflacion_acumulada, 2, raw = TRUE)2
## 38.29074
Escriba la ecuación del modelo
Segun el modelo de regresion lineal simple la ecuacion seria:
smlm = 148034 + 5158.6(Inflacion_acumulada)
Segun el modelo de regresion trasnformado polinomicamente:
smlm = 225007 + 1249,7(inflacion_acumulada) + 38,291(inflacion_acumulada^2)
Para efectos de tener un modelo con mayor nivel de precision se trabaja con la inflacion acumulada año tras año. esto significa que si para el año 2016 la inflacion es igual a cero el smlm seria:
inflacion_acumulada = 91.06
smlm = 148034 + 5158.6(91.06)
B. plantee y valide las hipótesis correspondientes a la linealidad general del modelo propuesto en a)
summary(modelo_salarios)
##
## Call:
## lm(formula = smlm ~ inflacion_acumulada)
##
## Residuals:
## Min 1Q Median 3Q Max
## -33710 -18291 -6880 19314 40812
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 148034.0 14228.0 10.40 2.96e-08 ***
## inflacion_acumulada 5158.6 233.7 22.07 7.52e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23020 on 15 degrees of freedom
## Multiple R-squared: 0.9701, Adjusted R-squared: 0.9681
## F-statistic: 487.2 on 1 and 15 DF, p-value: 7.524e-13
H0= La Variable “Inflacion” no influye en el valor del salario H1 = La Variable “inflacion” si influye en el precio de la accion
Se observa un valor p_value casi igual a cero lo cual rechaza la hipotesis nula de que la variable no tiene relacion con el modelo, y se acepta la hipotesis alternativa de que la variable “inflacion” si tiene una influencia directa en el valor del salario minimo mensual. dato que se puede evidenciar tambien con el coeficiente de correlacion de 0.98
Interprete los coeficientes del modelo propuesto en “a)”
modelo
smlm = 148034 + 5158.6(Inflacion_acumulada)
Intercepto o B0= 148034 significa que si para el siguiente año la inflacion es cero el valor del incremento del salario seria igual a 617463
Pendiente o B1= 5158 significa que si el precio del barril aumenta 1 unidad, el valor del precio de la accion de ecopetrol aumentara 26.27
Haga un análisis de los residuos. ¿Qué supuesto no se cumple?
par(mfrow=c(2,2))
plot(modelo_salarios)
plot(inflacion_acumulada, smlm); abline(modelo_salarios, col="red")
residuos2 = residuals(modelo_salarios)
summary(residuos2)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -33710 -18291 -6880 0 19314 40812
shapiro.test(residuos2)
##
## Shapiro-Wilk normality test
##
## data: residuos2
## W = 0.93599, p-value = 0.2737
hist(residuos2)
1. Media cero: Se cumple por defecto. 2. Varianza Constante: Se observa en la grafica 1 de residuales vs ajustados que el comportamiento no es aleatorio y presenta una concentracion en la parte alta y baja de los datos, indicando una advertencia. 3. Normalidad: Se observa en la grafica 2 que los datos se ajustan bien a la linea de normalidad en la parte media, pero presentan desviaciones en las colas de los graficos. 4. Dentro de el grafico del histograma de normalidad, se observa que los datos son normales 5.realizando el test de shapiro se comprueba que los residuos si cumplen el test de normalidad
Se observa que el modelo tiene un nivel de alto de confiabilidad, cuando se trabajan con inflaciones acumuladas, ya que con solo la inflacion del año el modelo no es acertado.
el modelo presenta un buen nivel de confianza frente a el comportamiento real de los salarios minimos mensuales año a año, aunque tambien existen factores adicionales que se deben tener en cuenta, como las politicas de gobierno, las emergencias sanitarias que ha sufrido el pais, las posibles recepciones, entre otras.