Facebook dataset - Regresión lineal

Cortés Herrera, Heryc M.

Ramirez Paz, Isaac

7 de marzo de 2020

Análisis de supuestos para modelos de regresión lineal

La base de datos que trabajaremos es Facebook performance metrics extraida de:

(Moro et al., 2016) S. Moro, P. Rita and B. Vala. Predicting social media performance metrics and evaluation of the impact on brand building: A data mining approach. Journal of Business Research, Elsevier, In press.

La cual esta se encuentra disponible en la red en el siguiente enlace:

http://dx.doi.org/10.1016/j.jbusres.2016.02.010

Información de la Base de Datos

Los datos estan relacionados a publicaciones hechas durante el año de 2014 en la pagina de Facebook de una renombrada marca de cosmeticos.

Esta base de datos contiene 500 de las 790 filas y parte de las caracteristicas analizadas por Moro et al. en el a?o 2016.Las filas faltantes son omitidas por acuerdos de confidencialidad.

La Base da datos esta conformada por 500 observaciones con 19 variables a observar. Con la siguiente información general:

Modelación Lineal

La variable de interes que queremos modelar es “Total Interactions” , deseamos saber como las 18 observaciones de las variables restantes la afectan, convirtiendola en la variable dependiente. A continuacion mostramos el modelo de regresion lineal con todas las variables restantes, es decir las variables independientes.

## Warning in summary.lm(modelo1): essentially perfect fit: summary may be
## unreliable
## 
## Call:
## lm(formula = Total.Interactions ~ ., data = datos)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -2.908e-12 -3.660e-14  2.300e-15  3.400e-14  6.001e-12 
## 
## Coefficients:
##                                                                       Estimate
## (Intercept)                                                         -2.341e-13
## Page.total.likes                                                     4.076e-18
## TypePhoto                                                            2.040e-13
## TypeStatus                                                           1.704e-13
## TypeVideo                                                            1.930e-16
## Category                                                            -4.173e-14
## Post.Month                                                          -1.867e-14
## Post.Weekday                                                        -4.173e-15
## Post.Hour                                                           -2.542e-15
## Paid                                                                -1.104e-13
## Lifetime.Post.Total.Reach                                           -7.198e-18
## Lifetime.Post.Total.Impressions                                      1.061e-19
## Lifetime.Engaged.Users                                               2.024e-15
## Lifetime.Post.Consumers                                             -1.818e-15
## Lifetime.Post.Consumptions                                           1.707e-17
## Lifetime.Post.Impressions.by.people.who.have.liked.your.Page         4.736e-19
## Lifetime.Post.reach.by.people.who.like.your.Page                    -3.680e-18
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post  3.447e-17
## comment                                                              1.000e+00
## like                                                                 1.000e+00
## share                                                                1.000e+00
##                                                                     Std. Error
## (Intercept)                                                          2.786e-13
## Page.total.likes                                                     3.032e-18
## TypePhoto                                                            8.169e-14
## TypeStatus                                                           1.158e-13
## TypeVideo                                                            1.613e-13
## Category                                                             2.122e-14
## Post.Month                                                           1.504e-14
## Post.Weekday                                                         7.819e-15
## Post.Hour                                                            3.766e-15
## Paid                                                                 3.556e-14
## Lifetime.Post.Total.Reach                                            3.102e-18
## Lifetime.Post.Total.Impressions                                      1.100e-18
## Lifetime.Engaged.Users                                               5.125e-16
## Lifetime.Post.Consumers                                              5.114e-16
## Lifetime.Post.Consumptions                                           1.171e-17
## Lifetime.Post.Impressions.by.people.who.have.liked.your.Page         1.208e-18
## Lifetime.Post.reach.by.people.who.like.your.Page                     6.529e-18
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post  7.615e-17
## comment                                                              1.648e-15
## like                                                                 4.953e-16
## share                                                                1.151e-15
##                                                                        t value
## (Intercept)                                                         -8.400e-01
## Page.total.likes                                                     1.344e+00
## TypePhoto                                                            2.497e+00
## TypeStatus                                                           1.472e+00
## TypeVideo                                                            1.000e-03
## Category                                                            -1.967e+00
## Post.Month                                                          -1.242e+00
## Post.Weekday                                                        -5.340e-01
## Post.Hour                                                           -6.750e-01
## Paid                                                                -3.105e+00
## Lifetime.Post.Total.Reach                                           -2.320e+00
## Lifetime.Post.Total.Impressions                                      9.600e-02
## Lifetime.Engaged.Users                                               3.950e+00
## Lifetime.Post.Consumers                                             -3.555e+00
## Lifetime.Post.Consumptions                                           1.458e+00
## Lifetime.Post.Impressions.by.people.who.have.liked.your.Page         3.920e-01
## Lifetime.Post.reach.by.people.who.like.your.Page                    -5.640e-01
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post  4.530e-01
## comment                                                              6.068e+14
## like                                                                 2.019e+15
## share                                                                8.690e+14
##                                                                     Pr(>|t|)
## (Intercept)                                                         0.401128
## Page.total.likes                                                    0.179504
## TypePhoto                                                           0.012860
## TypeStatus                                                          0.141693
## TypeVideo                                                           0.999046
## Category                                                            0.049819
## Post.Month                                                          0.214829
## Post.Weekday                                                        0.593865
## Post.Hour                                                           0.500007
## Paid                                                                0.002015
## Lifetime.Post.Total.Reach                                           0.020752
## Lifetime.Post.Total.Impressions                                     0.923253
## Lifetime.Engaged.Users                                              9.02e-05
## Lifetime.Post.Consumers                                             0.000415
## Lifetime.Post.Consumptions                                          0.145407
## Lifetime.Post.Impressions.by.people.who.have.liked.your.Page        0.695336
## Lifetime.Post.reach.by.people.who.like.your.Page                    0.573260
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post 0.651003
## comment                                                              < 2e-16
## like                                                                 < 2e-16
## share                                                                < 2e-16
##                                                                        
## (Intercept)                                                            
## Page.total.likes                                                       
## TypePhoto                                                           *  
## TypeStatus                                                             
## TypeVideo                                                              
## Category                                                            *  
## Post.Month                                                             
## Post.Weekday                                                           
## Post.Hour                                                              
## Paid                                                                ** 
## Lifetime.Post.Total.Reach                                           *  
## Lifetime.Post.Total.Impressions                                        
## Lifetime.Engaged.Users                                              ***
## Lifetime.Post.Consumers                                             ***
## Lifetime.Post.Consumptions                                             
## Lifetime.Post.Impressions.by.people.who.have.liked.your.Page           
## Lifetime.Post.reach.by.people.who.like.your.Page                       
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post    
## comment                                                             ***
## like                                                                ***
## share                                                               ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.463e-13 on 474 degrees of freedom
##   (5 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 3.001e+31 on 20 and 474 DF,  p-value: < 2.2e-16

Observamos que el p-value es menor a 2.2e-16 < .05 por lo tanto es un buen modelo para la varible independiente. Notemos que el Multiple R-squared es de 1, es decir el modelo ajusta muy bien las observaciones calculadas con las presentadas en el dataframe. Notemos el mensaje “essentially perfect fit: summary may be unreliable” el cual nos dice que no nos fiemos mucho de los resultados obtenidos. Este modelo se ajusta “perfectamente” a los datos obtenidos, lo cual lo hace muy sospechoso ¿Estaremos pasando algo por alto?

Multicolinealidad (Análisis Teórico)

Cuando hay una dependencia lineal entre las variables independientes, se dice que estamos en presencia de un problema de multicolinealidad. Esto quiere decir que las variables con las que queremos explicar el modelo repiten información, esto debido a que hay alguna relación entre ellas y esto no es bueno para el modelo.

Podemos analizar las correlaciones entre pares de variables, esto para ver si están linealmente relacionadas, es posible que alguna de las correlaciones entre cada par de variables sea grande. Con ayuda de la función “corrplot”, haremos una gráfica de las correlaciones. Para efectos prácticos, cambiaremos el nombre de las variables por numeros del 1 al 19.

Podemos observa que la diagonal a lo largo de la grafica es 1 pues efectivamente la relacion de una variable con la misma es del 100%. Debemos concentrarnos en valores de correlacion altos en variables que no sean las mismas,justo como se da en las variables 16,17 y 18 que son las variables:

  • Comment
  • Like
  • Share

Analizando el dataframe de nuevo podemos observar claramente por que se eliminan estas 3 variables, ya que la suma de las 3 dan como resultado “Total interactions” mostrando que sí estaban linealmente relacionadas.

Propuesta de Nuevo Modelo

También, debemos hacernos la pregunta ¿En realidad esta variable es significativa para mi modelo? Este tipo de analisis es complicado en el sentido que es un análisis subjetivo de los datos, mientras que para alguien unos datos pueden ser irrelevantes para otros pueden ser de importancia aunque sea de nivel bajo.

Las variables que decidimos omitir en nuestro modelos son las 2,3,4,5,6 y 7 las cuales son:

  • Type
  • Category
  • Post Month
  • Post Weekday
  • Post Hour
  • Paid

A partir de las observaciones anteriores podemos definir otro modelo omitiendo las variables independientes que por análisis tanto teorico como práctico, decidimos que no mejorarían nuestro modelo. (Notemos que al final decidimos conserva la variable “Type” puesto que reconcideramos que el formato de la publicacion era de vital importancia para las interacciones que recibe asi como elimar la variable “Lifetime Post Impressions by People who have Liked your Page”).

## 
## Call:
## lm(formula = Total.Interactions ~ ., data = aux2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -381.07  -18.61   -2.67   21.22  506.24 
## 
## Coefficients:
##                                                                       Estimate
## (Intercept)                                                          1.333e+02
## Page.total.likes                                                    -8.800e-04
## TypePhoto                                                           -1.514e+01
## TypeStatus                                                          -3.239e+01
## TypeVideo                                                            9.526e+01
## Lifetime.Post.Total.Reach                                           -6.770e-04
## Lifetime.Post.Total.Impressions                                      2.275e-04
## Lifetime.Engaged.Users                                               1.460e+00
## Lifetime.Post.Consumers                                             -1.451e+00
## Lifetime.Post.Consumptions                                           4.951e-03
## Lifetime.Post.reach.by.people.who.like.your.Page                    -4.192e-03
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post  6.647e-02
##                                                                     Std. Error
## (Intercept)                                                          2.870e+01
## Page.total.likes                                                     2.061e-04
## TypePhoto                                                            1.524e+01
## TypeStatus                                                           2.189e+01
## TypeVideo                                                            3.060e+01
## Lifetime.Post.Total.Reach                                            2.611e-04
## Lifetime.Post.Total.Impressions                                      5.962e-05
## Lifetime.Engaged.Users                                               1.724e-02
## Lifetime.Post.Consumers                                              1.780e-02
## Lifetime.Post.Consumptions                                           2.170e-03
## Lifetime.Post.reach.by.people.who.like.your.Page                     8.570e-04
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post  1.346e-02
##                                                                     t value
## (Intercept)                                                           4.646
## Page.total.likes                                                     -4.269
## TypePhoto                                                            -0.993
## TypeStatus                                                           -1.480
## TypeVideo                                                             3.113
## Lifetime.Post.Total.Reach                                            -2.593
## Lifetime.Post.Total.Impressions                                       3.816
## Lifetime.Engaged.Users                                               84.689
## Lifetime.Post.Consumers                                             -81.500
## Lifetime.Post.Consumptions                                            2.281
## Lifetime.Post.reach.by.people.who.like.your.Page                     -4.892
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post   4.939
##                                                                     Pr(>|t|)
## (Intercept)                                                         4.36e-06
## Page.total.likes                                                    2.36e-05
## TypePhoto                                                           0.320994
## TypeStatus                                                          0.139492
## TypeVideo                                                           0.001960
## Lifetime.Post.Total.Reach                                           0.009804
## Lifetime.Post.Total.Impressions                                     0.000153
## Lifetime.Engaged.Users                                               < 2e-16
## Lifetime.Post.Consumers                                              < 2e-16
## Lifetime.Post.Consumptions                                          0.022965
## Lifetime.Post.reach.by.people.who.like.your.Page                    1.36e-06
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post 1.08e-06
##                                                                        
## (Intercept)                                                         ***
## Page.total.likes                                                    ***
## TypePhoto                                                              
## TypeStatus                                                             
## TypeVideo                                                           ** 
## Lifetime.Post.Total.Reach                                           ** 
## Lifetime.Post.Total.Impressions                                     ***
## Lifetime.Engaged.Users                                              ***
## Lifetime.Post.Consumers                                             ***
## Lifetime.Post.Consumptions                                          *  
## Lifetime.Post.reach.by.people.who.like.your.Page                    ***
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 67.74 on 488 degrees of freedom
## Multiple R-squared:  0.969,  Adjusted R-squared:  0.9683 
## F-statistic:  1385 on 11 and 488 DF,  p-value: < 2.2e-16

Observemos que con estos cambios ha “empeorado” nuestro modelo, ya que nuestra \(R^2\) es menor a 1. Pero esto era de esperarse, porque el modelo anterior explicaba perfectamente el fénomeno, debido a la relación que había entre las variables explicativas y la variable a explicar. Es por esto que nuestro modelo no es tan bueno explicando el fenómeno, pero es más confiable.

Últimos ajustes

Para finalizar decidimos hacer un ultimo modelo solo con un ajuste, eliminamos la variable “Type” y agregamos una nueva llamada “Type2” la cual indica si la publicacion hecha fue un video o no, ya que en el ajuste anterior, TypeVideo era significativa y las otras categorías de la variable Type no lo eran. Es por esto que creamos una nueva variable, en la que decimos si la publicación era un video o no.

## 
## Call:
## lm(formula = Total.Interactions ~ ., data = aux3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -382.20  -19.05   -1.64   20.04  513.08 
## 
## Coefficients:
##                                                                       Estimate
## (Intercept)                                                          1.271e+02
## Page.total.likes                                                    -9.380e-04
## Lifetime.Post.Total.Reach                                           -6.682e-04
## Lifetime.Post.Total.Impressions                                      2.279e-04
## Lifetime.Engaged.Users                                               1.464e+00
## Lifetime.Post.Consumers                                             -1.455e+00
## Lifetime.Post.Consumptions                                           5.227e-03
## Lifetime.Post.reach.by.people.who.like.your.Page                    -4.002e-03
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post  5.818e-02
## Type2Video                                                           1.123e+02
##                                                                     Std. Error
## (Intercept)                                                          2.549e+01
## Page.total.likes                                                     2.021e-04
## Lifetime.Post.Total.Reach                                            2.593e-04
## Lifetime.Post.Total.Impressions                                      5.926e-05
## Lifetime.Engaged.Users                                               1.636e-02
## Lifetime.Post.Consumers                                              1.710e-02
## Lifetime.Post.Consumptions                                           2.147e-03
## Lifetime.Post.reach.by.people.who.like.your.Page                     8.471e-04
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post  1.158e-02
## Type2Video                                                           2.702e+01
##                                                                     t value
## (Intercept)                                                           4.988
## Page.total.likes                                                     -4.641
## Lifetime.Post.Total.Reach                                            -2.577
## Lifetime.Post.Total.Impressions                                       3.846
## Lifetime.Engaged.Users                                               89.478
## Lifetime.Post.Consumers                                             -85.129
## Lifetime.Post.Consumptions                                            2.435
## Lifetime.Post.reach.by.people.who.like.your.Page                     -4.724
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post   5.023
## Type2Video                                                            4.156
##                                                                     Pr(>|t|)
## (Intercept)                                                         8.48e-07
## Page.total.likes                                                    4.46e-06
## Lifetime.Post.Total.Reach                                           0.010250
## Lifetime.Post.Total.Impressions                                     0.000136
## Lifetime.Engaged.Users                                               < 2e-16
## Lifetime.Post.Consumers                                              < 2e-16
## Lifetime.Post.Consumptions                                          0.015257
## Lifetime.Post.reach.by.people.who.like.your.Page                    3.02e-06
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post 7.13e-07
## Type2Video                                                          3.82e-05
##                                                                        
## (Intercept)                                                         ***
## Page.total.likes                                                    ***
## Lifetime.Post.Total.Reach                                           *  
## Lifetime.Post.Total.Impressions                                     ***
## Lifetime.Engaged.Users                                              ***
## Lifetime.Post.Consumers                                             ***
## Lifetime.Post.Consumptions                                          *  
## Lifetime.Post.reach.by.people.who.like.your.Page                    ***
## Lifetime.People.who.have.liked.your.Page.and.engaged.with.your.post ***
## Type2Video                                                          ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 67.75 on 490 degrees of freedom
## Multiple R-squared:  0.9688, Adjusted R-squared:  0.9683 
## F-statistic:  1692 on 9 and 490 DF,  p-value: < 2.2e-16

Según el resumen de nuestro modelo, todas las variables que usamos son significativas, pero no hemos terminado, falta ver si nuestro modelo cumple con las suposiciones necesarias.

La primera gráfica sirve para ver si hay patrones no lineales en nuestros errores, lo que sería malo. Vemos que casi todos los puntos se acumulan en el intervalo de 0 a 1000, excepto por algunas observaciones que se alejan bastante. El comportamiento esperado en esta gráfica es ver una dispersión aleatorio de los puntos alrededor del cero. La línea roja marca la tendencia de los puntos y esta va a la baja debido a la influencia que tienen las observaciones atípicas del modelo. Si ignoramos esas observaciones, es probable que la línea sea más horizontal, como debería de ser en un buen modelo.

En la segunda gráfica, tratamos de ver si los errores se distribuyen normal. Lo que esperamos ver en esta gráfica es que los puntos sigan la tendencia que tiene la línea punteada y es ese el comportamiento que vemos. En los extremos los puntos se alejan de la línea, pero es normal, así que parece que en efecto, los residuales tienen una distribución normal.

En la tercera gráfica, buscamos probar el supuesto de homocedasticidad, este habla de como se comporta la varianza de los residuales. Si se aprecia una variable constante, el supuesto de homocedasticidad se cumple. Es difícil apreciar bien el comportamiento en esta gráfica, ya que las observaciones más alejadas hacen que la escala sea muy grande. Hay varios puntos que se alejan del cúmulo principal y estos pueden ser preocupantes, porque parece que siguen una tendencia no lineal, comprometiendo la homocedasticidad del modelo.

Por último, en la gráfica final tratamos de ver si hay observaciones influyentes, observaciones que afectarían considerablemente al modelo si las sacamos ¿Cómo podemos apreciar esto? Viendo las líneas punteadas, si hay observaciones fuera de esos rangos, estas observaciones son influyentes en el modelo. Vemos que hay tres observaciones, y algo que vale la pena notar, es que la observación 245 es resaltada en las últimas tres gráficas. Valdría la pena analizar esta observación en especial, es posible que sea un caso muy atípico del comportamiento esperado en las publicaciones en Facebook o tal vez sea el caso de una observación mal registrada en la base de datos.