A lo largo de este trabajo de desarrollarĆ” un modelo de regresión lineal para lo datos āFacebook performance metricsā, se comproboran los supuestos de dicho modelo y se darĆ” una intrepretación clara sobre lo que significa cada parte del modelo. AdemĆ”s, se harĆ”n modificaciones al modelo para asĆ notar que implicaciones (positivas o negativas) tiene esto sobre el modelo.
Primero veamos que variables conforman nuestra base de datos
## [1] "Page.tot.likes" "Type."
## [3] "category" "Post.Month"
## [5] "Post.Weekday" "Post.Hour"
## [7] "Paid" "Lt.Post.Tot.Reach"
## [9] "Lt.Post.Tot.Impr" "Lt.Engaged.Users"
## [11] "Lt.Post.Consumers" "Lt.Post.Consumptions"
## [13] "Lt.Post.Impr.people.liked.Page" "Lt.Post.reach.people.like.Page"
## [15] "Lt.People.likedPage.engaged.post" "comment"
## [17] "like" "share"
## [19] "Tot.Interactions"
Podemos ver que contamos con las sigueintes variables - Page.tot.likes: Referente al total de likes con los que cuenta la pagina.
Type: Referente al tipo de post, ya sea una fotografia, video, estado o un link.
Category: No estoy seguro a que se refiere, tiene 3 niveles (1, 2, 3)
Post Month: Se refiere al mes en que se realizo el post (1 - 12)
Post Weekday: Referente al dia de la semana en la que se realizo el post (1-7)
Post Hour: Referente a la hora del dĆa en la que se realizo el post (1-23)
Paid: Se refiere a si es un post pagado o no, cuenta con 2 niveles (0,1)
Lt Post Tot Reach: Numero de personas que han visto el post
Lt Post Tot Impr: Numero de veces que el post ha sido visto
Lt Engaged Users: El nĆŗmero de personas que hizo clic en cualquier lugar en las publicaciones.
Lt Post Consumers: Numero de personas que han hecho click en un post sin contar aquellos que generen āhistoriasā
Lt Post Consumption: Numero de veces que las personas han hecho click en el post
Lt Post Impr people liked Page: Numero de veces que el post ha sio visto por personas suscritas a la pagina
Lt Post reach people like Page: Numero de personas suscritas que han visto el post
Lt People likedPage engaged post: Numero de personas suscritas que han hecho click en cualquier parte del post
Comment: Numero de comentarios que tiene un post
Like: Numero de likes que tiene el post
Share: Numero de veces que se ha compartido el post
Iteractions: Numero de veces que se ha interactuado con el post
NOTA: Todas aquella entradas que contengan un NA serƔn sustituidas por 0
Tomaremos como nuestra variable dependiente a la variable āIteractionsā y el resto serĆ”n las variables independientes. Esto nos ayudarĆ” para analizar la relación que existe entre la variable āIteractionsā y el resto de ellas, para asĆ saber, de forma mĆ”s clara, la influencia que tienen las variables independientes sobre la dependiente
modelo0 <- lm(Tot.Interactions~., data=datos)
summary(modelo0)
##
## Call:
## lm(formula = Tot.Interactions ~ ., data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.556e-12 -6.790e-14 -2.210e-14 2.790e-14 4.562e-12
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.223e-12 4.484e-13 2.728e+00 0.00661
## Page.tot.likes -3.198e-18 4.889e-18 -6.540e-01 0.51337
## Type.Photo 1.133e-13 1.325e-13 8.560e-01 0.39267
## Type.Status 1.211e-12 1.879e-13 6.445e+00 2.83e-10
## Type.Video 1.139e-12 2.617e-13 4.352e+00 1.65e-05
## category -9.326e-14 3.432e-14 -2.718e+00 0.00681
## Post.Month -3.051e-14 2.435e-14 -1.253e+00 0.21092
## Post.Weekday 1.996e-15 1.264e-14 1.580e-01 0.87462
## Post.Hour -3.510e-16 6.105e-15 -5.700e-02 0.95418
## Paid 1.362e-13 5.767e-14 2.361e+00 0.01860
## Lt.Post.Tot.Reach -1.433e-17 5.038e-18 -2.843e+00 0.00465
## Lt.Post.Tot.Impr -6.575e-19 1.787e-18 -3.680e-01 0.71309
## Lt.Engaged.Users -1.207e-15 8.323e-16 -1.450e+00 0.14768
## Lt.Post.Consumers 8.025e-16 8.306e-16 9.660e-01 0.33444
## Lt.Post.Consumptions 2.312e-17 1.900e-17 1.217e+00 0.22431
## Lt.Post.Impr.people.liked.Page 4.770e-19 1.963e-18 2.430e-01 0.80808
## Lt.Post.reach.people.like.Page 1.003e-17 1.060e-17 9.460e-01 0.34452
## Lt.People.likedPage.engaged.post -5.383e-16 1.236e-16 -4.354e+00 1.63e-05
## comment 1.000e+00 2.676e-15 3.736e+14 < 2e-16
## like 1.000e+00 8.042e-16 1.243e+15 < 2e-16
## share 1.000e+00 1.867e-15 5.355e+14 < 2e-16
##
## (Intercept) **
## Page.tot.likes
## Type.Photo
## Type.Status ***
## Type.Video ***
## category **
## Post.Month
## Post.Weekday
## Post.Hour
## Paid *
## Lt.Post.Tot.Reach **
## Lt.Post.Tot.Impr
## Lt.Engaged.Users
## Lt.Post.Consumers
## Lt.Post.Consumptions
## Lt.Post.Impr.people.liked.Page
## Lt.Post.reach.people.like.Page
## Lt.People.likedPage.engaged.post ***
## comment ***
## like ***
## share ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.624e-13 on 479 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 1.14e+31 on 20 and 479 DF, p-value: < 2.2e-16
Podemos notar que el p valor obtenido por el estadistico F es bastante pequeƱo, lo que nos indica que la variable āIteractionsā sĆ esta siendo explicada por al menos una de las variables independientes. Sin embargo notamos gracias a la \(R^2\) que toda la variabilidad de los datos observados estan siendo explicada por el modelo, pues \(R^2 = 1\), lo que es un poco alarmante pues es muy poco probable que eso suceda en casos reales.
Entonces, analizando los datos nos percatamos que Iteractions = Comment + like + share (que obviamente son las variable mÔs significativas en el modelo anterior), por lo que debemos quitar estas tres variable pues no estan explicando la variable dependiente, si no son las que hacen que dicha variable exista y tome los valores que toma, asà que al tomarlas lo que estamos haciendo es explicar Iterations con las variabes que lo conforman.
Por lo que ahora haremos un nuevo modelo sin considerar esas tres variables
modelo1<-lm(Tot.Interactions~ Page.tot.likes+Type.+category+Post.Month+Post.Weekday+Post.Hour+Paid+Lt.Post.Tot.Reach+Lt.Post.Tot.Impr+Lt.Engaged.Users+Lt.Post.Consumers+Lt.Post.Consumptions+Lt.Post.Impr.people.liked.Page+Lt.Post.reach.people.like.Page+Lt.People.likedPage.engaged.post, data = datos)
summary(modelo1)
##
## Call:
## lm(formula = Tot.Interactions ~ Page.tot.likes + Type. + category +
## Post.Month + Post.Weekday + Post.Hour + Paid + Lt.Post.Tot.Reach +
## Lt.Post.Tot.Impr + Lt.Engaged.Users + Lt.Post.Consumers +
## Lt.Post.Consumptions + Lt.Post.Impr.people.liked.Page + Lt.Post.reach.people.like.Page +
## Lt.People.likedPage.engaged.post, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -375.35 -20.17 -1.97 20.68 499.43
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.534e+00 5.290e+01 -0.142 0.886800
## Page.tot.likes 1.004e-03 5.763e-04 1.742 0.082152
## Type.Photo -2.423e+01 1.571e+01 -1.543 0.123592
## Type.Status -3.706e+01 2.206e+01 -1.680 0.093539
## Type.Video 9.686e+01 3.048e+01 3.178 0.001580
## category -9.861e-01 3.993e+00 -0.247 0.805027
## Post.Month -1.007e+01 2.853e+00 -3.528 0.000458
## Post.Weekday -2.149e-02 1.501e+00 -0.014 0.988582
## Post.Hour -1.045e+00 7.216e-01 -1.448 0.148347
## Paid -6.903e+00 6.858e+00 -1.007 0.314645
## Lt.Post.Tot.Reach -1.725e-03 5.942e-04 -2.902 0.003872
## Lt.Post.Tot.Impr 6.177e-04 2.110e-04 2.928 0.003572
## Lt.Engaged.Users 1.472e+00 1.824e-02 80.724 < 2e-16
## Lt.Post.Consumers -1.456e+00 1.820e-02 -80.019 < 2e-16
## Lt.Post.Consumptions 4.675e-03 2.200e-03 2.126 0.034048
## Lt.Post.Impr.people.liked.Page -4.288e-04 2.328e-04 -1.842 0.066089
## Lt.Post.reach.people.like.Page -2.707e-03 1.244e-03 -2.175 0.030086
## Lt.People.likedPage.engaged.post 5.530e-02 1.427e-02 3.874 0.000122
##
## (Intercept)
## Page.tot.likes .
## Type.Photo
## Type.Status .
## Type.Video **
## category
## Post.Month ***
## Post.Weekday
## Post.Hour
## Paid
## Lt.Post.Tot.Reach **
## Lt.Post.Tot.Impr **
## Lt.Engaged.Users ***
## Lt.Post.Consumers ***
## Lt.Post.Consumptions *
## Lt.Post.Impr.people.liked.Page .
## Lt.Post.reach.people.like.Page *
## Lt.People.likedPage.engaged.post ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 66.99 on 482 degrees of freedom
## Multiple R-squared: 0.97, Adjusted R-squared: 0.969
## F-statistic: 917.4 on 17 and 482 DF, p-value: < 2.2e-16
Ahora bien, con este nuevo modelo notamos que \(R^2 = 0.969\), asà que nuestro modelo esta explicando mÔs del 95% de la varianza, lo que sigue haciendo que podamos afrimar que nuestro modelo sea muy bueno. AdemÔs notanos que el estadistico F nos da un p-value muy pequeño, lo que indica que efectivamente, al menos una de las variables esta explicando la variable dependiente, lo que es aún mÔs notable si notamos que algunas variables independientes son significativas.
Sin embargo, debemos considerar varias cosas antes de dar por hecho la afirmación de que el modelo sea bueno. Primero, notemos que no todas las variables son significativas o son poco significativas, por lo que podriamos armar un modelo con un número menor de variables que explique, igualmente, bien los datos. Y segundo y mÔs importante, debemos verificar los supuestos de la regresión lineal, los cuales son:
La esperanza de los errores es cero \(E(\epsilon _i = 0)\)
La varianza de los errores es contante, homosedasticidad \(Var(\epsilon_i) = \sigma^2\)
Los erroes se distribuyen normal estƔndar \(\epsilon_i\) \(\sim\) N(0, \(\sigma^2\))
Los errores no estan correlacionados \(Cov(\epsilon_i, \epsilon_j) = 0\)
Primero verifiquemos los supuestos para este modelo y posteriormente crearemos un nuevo modelo considerando menos variables. Para ello definimos los residuos como: \(e_i = y_i - \hat{y_i}\) Como podemos ver, estos residuos miden la diferencia entre los valores observados y los estimados por el modelo.
AdemÔs también se tiene que los residuos estandarizados son los residuos pero divididos entre su desviación estandar para evitar la tendencia de los residuos a ser menores para valores de la variable dependiente alejados de la media. Entonces \(d_i = \frac{e_i }{\hat{\sigma}}\)
Entonces, para verificar los supuestos de media cero y varianza constante graficaremos los residuos vs los residuos estandarizados
resestandar<-rstandard(modelo1) #residuos estandarizados
vajustados<-fitted(modelo1) #valores ajustados
plot(vajustados,resestandar, pch=20,
main="Grafica para comprobar homoscedasticidad")
Con esta grƔfica podemos notar que ni la esperanza nula ni la homosedasticidad se cumplen, pues la grƔfica no es simƩtrica y los puntos no estan contenidos entre el -2, 2. Pero hagamos una prueba mƔs formal para estar totalmente seguros sobre la homosedasticidad Breusch-Pagan Test. Esta prueba hace \(H_0\):Hay poca variabilidad en los valores que toma la varianza vs \(H_1\):Hay mucha variabilidad
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 243.53, df = 17, p-value < 2.2e-16
Vemos que la prueba nos arroja un \(p-value < 0.05\) por lo que se rechaza la homoscedasticidad
Ahora veamos que sucede con la normalidad de los errores
Esta grÔfica lo que hace es graficar los cuantiles teóricos reales de una normal estÔndar vs los valores de los cuantiles de la distribución de nuestros residuo muestraless. Notemos que se tienen bastantes datos en las colas y bastante alejados de la linea roja la cual representa a los cuantules de una distribucion \(Normal(0,1)\), lo ideal seria que estuvieran lo mas cercanas a esta linea posible, ya que no lo estan parece indicarnos que tampoco cumple con este supuesto, hagamos otra pureba para verificar lo anterior
##
## Anderson-Darling normality test
##
## data: resestandar
## A = 37.452, p-value < 2.2e-16
La prueba anterior lo que hace es \(H_0\): Los datos siguen una distribución normal vs \(H_1\): Los datos no siguen una distribución normal. Entonces, dado que el \(p-value<.05\) podemos se rechaza que los datos sigan una distribución normal.
Para analizar a profundidad el supuesto de independencia hagamos la prueba Durbin-Watson de Autocorrelación
##
## Durbin-Watson test
##
## data: modelo1
## DW = 1.9496, p-value = 0.4879
## alternative hypothesis: true autocorrelation is not 0
Podemos notar que el valor arrojado es DW = 1.9496 por lo que SI esta entre 1.5 y 2.5 lo que nos dice que NO existe autocorrelacion significativa entre los residuos.
Finalmente veamos si existe multicolinealidad entre las variables, para ello veamos la matriz de correlaciones
## corrplot 0.84 loaded
Aquà se pueden notar correlaciones muy altas, lo que es un gran problema pues implica multicolinealidad lo que no nos permitiria hacer una correcta interpretación de nuestro modelo. Para solucionar este problema (y procueremos que el del resto de los supuestos también) crearemos un nuevo modelo quitando las varibles mÔs correlacionadas y las menos significativas.
Ahora buscaremos un mejor modelo con la esperanza de que cumpla con todos los supuestos Para la realización de este modelo, tomaremos en cuenta a Interactions como la variable dependiente, y las mismas que se tomaron en cuenta para la realizacion del modelo1 como las independientes.
modelo2 <- lm(Tot.Interactions~ Page.tot.likes+Type.+category+Post.Month+Post.Weekday+Post.Hour+Paid+Lt.Post.Tot.Reach+Lt.Post.Tot.Impr+Lt.Engaged.Users+Lt.Post.Consumers+Lt.Post.Consumptions+Lt.Post.Impr.people.liked.Page+Lt.Post.reach.people.like.Page+Lt.People.likedPage.engaged.post, data = datos)
Para la seleccion de variables que entrarÔn en el modelo utilizaremos el método de pasos sucesivos (stepwise), éste método es una combinación de los metodos forward y backard. En cada paso se introduce la variable independiente que no se encuentre ya en la ecuación y que tenga la probabilidad para F mÔs pequeña. Las variables ya introducidas en la ecuación de regresión pueden ser eliminadas del modelo. El método termina cuando ya no hay mÔs variables candidatas a ser incluidas o eliminadas.
step <- stepAIC(modelo2, direction="both")
## Start: AIC=4222.15
## Tot.Interactions ~ Page.tot.likes + Type. + category + Post.Month +
## Post.Weekday + Post.Hour + Paid + Lt.Post.Tot.Reach + Lt.Post.Tot.Impr +
## Lt.Engaged.Users + Lt.Post.Consumers + Lt.Post.Consumptions +
## Lt.Post.Impr.people.liked.Page + Lt.Post.reach.people.like.Page +
## Lt.People.likedPage.engaged.post
##
## Df Sum of Sq RSS AIC
## - Post.Weekday 1 1 2162770 4220.1
## - category 1 274 2163043 4220.2
## - Paid 1 4546 2167315 4221.2
## <none> 2162769 4222.1
## - Post.Hour 1 9404 2172173 4222.3
## - Page.tot.likes 1 13616 2176385 4223.3
## - Lt.Post.Impr.people.liked.Page 1 15225 2177994 4223.7
## - Lt.Post.Consumptions 1 20273 2183042 4224.8
## - Lt.Post.reach.people.like.Page 1 21234 2184003 4225.0
## - Lt.Post.Tot.Reach 1 37801 2200570 4228.8
## - Lt.Post.Tot.Impr 1 38471 2201240 4229.0
## - Post.Month 1 55865 2218634 4232.9
## - Lt.People.likedPage.engaged.post 1 67343 2230112 4235.5
## - Type. 3 104740 2267509 4239.8
## - Lt.Post.Consumers 1 28731107 30893876 5549.7
## - Lt.Engaged.Users 1 29239597 31402366 5557.9
##
## Step: AIC=4220.15
## Tot.Interactions ~ Page.tot.likes + Type. + category + Post.Month +
## Post.Hour + Paid + Lt.Post.Tot.Reach + Lt.Post.Tot.Impr +
## Lt.Engaged.Users + Lt.Post.Consumers + Lt.Post.Consumptions +
## Lt.Post.Impr.people.liked.Page + Lt.Post.reach.people.like.Page +
## Lt.People.likedPage.engaged.post
##
## Df Sum of Sq RSS AIC
## - category 1 273 2163043 4218.2
## - Paid 1 4552 2167322 4219.2
## <none> 2162770 4220.1
## - Post.Hour 1 9433 2172202 4220.3
## - Page.tot.likes 1 13690 2176460 4221.3
## - Lt.Post.Impr.people.liked.Page 1 15232 2178002 4221.7
## + Post.Weekday 1 1 2162769 4222.1
## - Lt.Post.Consumptions 1 20280 2183050 4222.8
## - Lt.Post.reach.people.like.Page 1 21247 2184017 4223.0
## - Lt.Post.Tot.Reach 1 37800 2200570 4226.8
## - Lt.Post.Tot.Impr 1 38497 2201267 4227.0
## - Post.Month 1 56067 2218837 4230.9
## - Lt.People.likedPage.engaged.post 1 67657 2230427 4233.5
## - Type. 3 104882 2267652 4237.8
## - Lt.Post.Consumers 1 28735612 30898381 5547.8
## - Lt.Engaged.Users 1 29288230 31451000 5556.7
##
## Step: AIC=4218.21
## Tot.Interactions ~ Page.tot.likes + Type. + Post.Month + Post.Hour +
## Paid + Lt.Post.Tot.Reach + Lt.Post.Tot.Impr + Lt.Engaged.Users +
## Lt.Post.Consumers + Lt.Post.Consumptions + Lt.Post.Impr.people.liked.Page +
## Lt.Post.reach.people.like.Page + Lt.People.likedPage.engaged.post
##
## Df Sum of Sq RSS AIC
## - Paid 1 4526 2167569 4217.3
## <none> 2163043 4218.2
## - Post.Hour 1 9167 2172210 4218.3
## - Page.tot.likes 1 13477 2176520 4219.3
## - Lt.Post.Impr.people.liked.Page 1 15085 2178128 4219.7
## + category 1 273 2162770 4220.1
## + Post.Weekday 1 0 2163043 4220.2
## - Lt.Post.reach.people.like.Page 1 21004 2184046 4221.0
## - Lt.Post.Consumptions 1 21988 2185030 4221.3
## - Lt.Post.Tot.Reach 1 37527 2200570 4224.8
## - Lt.Post.Tot.Impr 1 38245 2201288 4225.0
## - Post.Month 1 56304 2219347 4229.1
## - Lt.People.likedPage.engaged.post 1 67410 2230453 4231.6
## - Type. 3 106396 2269439 4236.2
## - Lt.Post.Consumers 1 30491613 32654655 5573.4
## - Lt.Engaged.Users 1 31376734 33539777 5586.8
##
## Step: AIC=4217.25
## Tot.Interactions ~ Page.tot.likes + Type. + Post.Month + Post.Hour +
## Lt.Post.Tot.Reach + Lt.Post.Tot.Impr + Lt.Engaged.Users +
## Lt.Post.Consumers + Lt.Post.Consumptions + Lt.Post.Impr.people.liked.Page +
## Lt.Post.reach.people.like.Page + Lt.People.likedPage.engaged.post
##
## Df Sum of Sq RSS AIC
## - Post.Hour 1 8286 2175855 4217.2
## <none> 2167569 4217.3
## - Page.tot.likes 1 12379 2179948 4218.1
## + Paid 1 4526 2163043 4218.2
## - Lt.Post.Impr.people.liked.Page 1 14401 2181969 4218.6
## + category 1 247 2167322 4219.2
## + Post.Weekday 1 3 2167566 4219.3
## - Lt.Post.Consumptions 1 21140 2188709 4220.1
## - Lt.Post.reach.people.like.Page 1 21987 2189556 4220.3
## - Lt.Post.Tot.Reach 1 37021 2204590 4223.7
## - Lt.Post.Tot.Impr 1 37472 2205041 4223.8
## - Post.Month 1 54300 2221869 4227.6
## - Lt.People.likedPage.engaged.post 1 69794 2237363 4231.1
## - Type. 3 104199 2271768 4234.7
## - Lt.Post.Consumers 1 30491811 32659380 5571.5
## - Lt.Engaged.Users 1 31424417 33591986 5585.6
##
## Step: AIC=4217.16
## Tot.Interactions ~ Page.tot.likes + Type. + Post.Month + Lt.Post.Tot.Reach +
## Lt.Post.Tot.Impr + Lt.Engaged.Users + Lt.Post.Consumers +
## Lt.Post.Consumptions + Lt.Post.Impr.people.liked.Page + Lt.Post.reach.people.like.Page +
## Lt.People.likedPage.engaged.post
##
## Df Sum of Sq RSS AIC
## <none> 2175855 4217.2
## + Post.Hour 1 8286 2167569 4217.3
## - Page.tot.likes 1 11997 2187851 4217.9
## + Paid 1 3645 2172210 4218.3
## - Lt.Post.Impr.people.liked.Page 1 15581 2191436 4218.7
## + Post.Weekday 1 42 2175812 4219.2
## + category 1 7 2175847 4219.2
## - Lt.Post.Consumptions 1 19262 2195116 4219.6
## - Lt.Post.reach.people.like.Page 1 21661 2197515 4220.1
## - Lt.Post.Tot.Reach 1 38887 2214742 4224.0
## - Lt.Post.Tot.Impr 1 39708 2215563 4224.2
## - Post.Month 1 51316 2227171 4226.8
## - Lt.People.likedPage.engaged.post 1 66186 2242040 4230.1
## - Type. 3 103878 2279733 4234.5
## - Lt.Post.Consumers 1 30531943 32707798 5570.3
## - Lt.Engaged.Users 1 31710271 33886125 5588.0
step$anova
## Stepwise Model Path
## Analysis of Deviance Table
##
## Initial Model:
## Tot.Interactions ~ Page.tot.likes + Type. + category + Post.Month +
## Post.Weekday + Post.Hour + Paid + Lt.Post.Tot.Reach + Lt.Post.Tot.Impr +
## Lt.Engaged.Users + Lt.Post.Consumers + Lt.Post.Consumptions +
## Lt.Post.Impr.people.liked.Page + Lt.Post.reach.people.like.Page +
## Lt.People.likedPage.engaged.post
##
## Final Model:
## Tot.Interactions ~ Page.tot.likes + Type. + Post.Month + Lt.Post.Tot.Reach +
## Lt.Post.Tot.Impr + Lt.Engaged.Users + Lt.Post.Consumers +
## Lt.Post.Consumptions + Lt.Post.Impr.people.liked.Page + Lt.Post.reach.people.like.Page +
## Lt.People.likedPage.engaged.post
##
##
## Step Df Deviance Resid. Df Resid. Dev AIC
## 1 482 2162769 4222.146
## 2 - Post.Weekday 1 0.9199568 483 2162770 4220.146
## 3 - category 1 272.7997899 484 2163043 4218.209
## 4 - Paid 1 4526.2907791 485 2167569 4217.254
## 5 - Post.Hour 1 8285.7925676 486 2175855 4217.162
Con esto obtenemos un nuevo modelo que llamaremos modeloFin podemos ver que se han eliminado las variables Post.Hour, Paid, Post.Weekday y Category
##
## Call:
## lm(formula = Tot.Interactions ~ Page.tot.likes + Type. + Post.Month +
## Lt.Post.Tot.Reach + Lt.Post.Tot.Impr + Lt.Engaged.Users +
## Lt.Post.Consumers + Lt.Post.Consumptions + Lt.Post.Impr.people.liked.Page +
## Lt.Post.reach.people.like.Page + Lt.People.likedPage.engaged.post,
## data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -374.05 -19.68 -1.98 18.28 501.17
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.235e+01 5.153e+01 -0.240 0.810717
## Page.tot.likes 9.347e-04 5.710e-04 1.637 0.102292
## Type.Photo -2.701e+01 1.538e+01 -1.756 0.079690
## Type.Status -3.884e+01 2.170e+01 -1.790 0.074114
## Type.Video 9.177e+01 3.024e+01 3.035 0.002538
## Post.Month -9.449e+00 2.791e+00 -3.386 0.000768
## Lt.Post.Tot.Reach -1.740e-03 5.904e-04 -2.947 0.003361
## Lt.Post.Tot.Impr 6.247e-04 2.098e-04 2.978 0.003045
## Lt.Engaged.Users 1.472e+00 1.749e-02 84.160 < 2e-16
## Lt.Post.Consumers -1.455e+00 1.762e-02 -82.581 < 2e-16
## Lt.Post.Consumptions 4.455e-03 2.148e-03 2.074 0.038587
## Lt.Post.Impr.people.liked.Page -4.322e-04 2.317e-04 -1.866 0.062712
## Lt.Post.reach.people.like.Page -2.722e-03 1.237e-03 -2.200 0.028307
## Lt.People.likedPage.engaged.post 5.432e-02 1.413e-02 3.845 0.000137
##
## (Intercept)
## Page.tot.likes
## Type.Photo .
## Type.Status .
## Type.Video **
## Post.Month ***
## Lt.Post.Tot.Reach **
## Lt.Post.Tot.Impr **
## Lt.Engaged.Users ***
## Lt.Post.Consumers ***
## Lt.Post.Consumptions *
## Lt.Post.Impr.people.liked.Page .
## Lt.Post.reach.people.like.Page *
## Lt.People.likedPage.engaged.post ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 66.91 on 486 degrees of freedom
## Multiple R-squared: 0.9698, Adjusted R-squared: 0.969
## F-statistic: 1202 on 13 and 486 DF, p-value: < 2.2e-16
Con este nuevo modelo notamos que \(R^2 = 0.969\), por lo que nuestro nuevo modelo esta explicando mĆ”s del 95% de la varianza. AdemĆ”s podemos ver que el estadistico F nos da un p-value \(< 2.2e-16\), lo que nos indica que es un ābuen modeloā explicado por las variables que se tomaron en cuenta. otro factor que podemos notar es que la mayoria de las variables son significativas lo cual implica que cada una ayuda a explicar de buena manera la variable respuesta. AĆŗn asi, hace falta checar los supuestos de la regresion lineal.
Si comparamos las graficas de ambos modelos, podemos ver que para el modeloFin hay una menor cantidad de puntos, pero que las graficas se parecen entre si con leves variaciones, esto se debe proncipalmente a que se redujo el numero de variables excluyendo las menos significativas del primer modelo. a demas podemos notar en la 4ta grÔfica que existen 3 observaciones (245, 416, 447) que tienen un elevado efecto palanca, es decir tienen una combinación inusual de valores predictores
Volveremos a hacer las pruebas de los supuestos, para ver si el modelo mejoro o si empeoro. la primera prueba sera la Breusch-Pagan Test
##
## studentized Breusch-Pagan test
##
## data: modeloFin
## BP = 240.43, df = 13, p-value < 2.2e-16
Vemos que la prueba nos arroja un \(p-value < 2.2e-16\) por lo que se rechaza la homoscedasticidad. lo que nos diria que no todas las variables siguen la misma distribución.
La siguiente prueba sera la Anderson-Darling Test
##
## Anderson-Darling normality test
##
## data: resestandarF
## A = 37.594, p-value < 2.2e-16
Al igual que en el primer modelo, podemos ver que se tiene un \(p-value < 2.2e-16\) lo que nos dice que no tienen una distribución Normal como se esperaria, esto también se puede ver en la GrÔfica Normal Q-Q para este modelo, pues las colas se alejan miucho de la linea roja referente a los cuantiles de una \(Normal (0,1)\)
Se realiza la prueba Durbin-Watson de Autocorrelación
##
## Durbin-Watson test
##
## data: modeloFin
## DW = 1.9396, p-value = 0.429
## alternative hypothesis: true autocorrelation is not 0
Podemos observar que nos da un valor DW = 1.9396 que esta muy cercano al valor esperado de 2 y por lo que podemos concluir que NO existe autocorrelación entre los residuales, cumpliendo asi con el supuesto de la independencia de estos.
Como ultima prueba, veremos si existe multicolinealidad entre las variables, nuevamente realizaremos una matriz de correlaciones, excluyendo las variables Post.Hour, Paid, Post.Weekday y Category pues estas ya no se encuentran en modeloFin
Podemos ver que en el nuevo modelo, las variables que se conservaron fueron las mas correlacionadas entre si, lo que no nos permite realizar una interpretación optima de la variable dependiente.