Work was done by:

Team “CandyCrash”

BSC-163

Gugnina Daria

Korolik Irina

Sokolova Anna

Country: Sweden

Topic: “Social inclusion and the level of happiness (desired and subjectively available) among men and women of different ages”

Preparation

Downolading packages

# libraries for tables
library(knitr)
library(kableExtra)

# for spss
library(foreign)

# for select
library(dplyr)

# library for graphs
library(ggplot2)

# for regression tables
library(stargazer)

library(GGally)

Regression

Let’s start with the selection of variables relevant to our topic:

#set new directory
setwd("F:/gfgrf/ESS8SE_spss") 
getwd()
## [1] "F:/gfgrf/ESS8SE_spss"
ESS <- read.spss("ESS8SE.sav", use.value.labels=T, to.data.frame=T) 
 ESS1 <- select(ESS, c("sclmeet", "nwspol", "agea", "gndr", "eduyrs", "hinctnta", "wkhtot", "region"))
ESS1 = na.omit(ESS1) 

Перекодируем наши переменные в тип numeric:

#перекодировка
ESS1$nwspol <-as.numeric(ESS1$nwspol) 
ESS1$sclmeet <-as.numeric(ESS1$sclmeet) 
ESS1$hinctnta <-as.numeric(ESS1$hinctnta) 
ESS1$wkhtot <-as.numeric(ESS1$wkhtot) 
ESS1$agea <-as.numeric(ESS1$agea) 
ESS1$eduyrs <-as.numeric(ESS1$eduyrs) 

Визуализация:

#визуализация
hist(ESS1$nwspol)

hist(ESS1$eduyrs)

hist(ESS1$agea)

plot(ESS1$gndr)

hist(ESS1$hinctnta)

hist(ESS1$wkhtot)

hist(ESS1$sclmeet)

plot(ESS1$region)

mean(ESS1$agea)
## [1] 38.0924
ESS1$agea_c <- ESS1$agea - mean(ESS1$agea) #center age

По гистограмме видно, что распределение зависимой переменной близко к нормальному.

Также проверим нормальность зависимой переменной по тесту Шапира:

H0: The distribution of nwspol does not differ from normal distribution.

H1: The distribution of nwspol differs from normal distribution.

shapiro.test(ESS1$nwspol)
## 
##  Shapiro-Wilk normality test
## 
## data:  ESS1$nwspol
## W = 0.95904, p-value < 0.00000000000000022

По тесту Шапира, p-value значимо (p-value < 0.00000000000000022), следовательно мы отвергаем нулевую гипотезу, значит распределение не нормальное.

Регрессионная модель:

Model0 все переменные

model0 <- lm(nwspol ~ agea_c + gndr + eduyrs + hinctnta + wkhtot + sclmeet  + as.numeric(region), data = ESS1)
summary(model0)
## 
## Call:
## lm(formula = nwspol ~ agea_c + gndr + eduyrs + hinctnta + wkhtot + 
##     sclmeet + as.numeric(region), data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -21.917  -5.517  -0.655   5.097  31.827 
## 
## Coefficients:
##                    Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)        31.74498    5.99058   5.299          0.000000135 ***
## agea_c              0.17450    0.01226  14.234 < 0.0000000000000002 ***
## gndrFemale         -0.62240    0.42290  -1.472              0.14131    
## eduyrs              0.16796    0.06336   2.651              0.00812 ** 
## hinctnta           -0.09449    0.07839  -1.205              0.22830    
## wkhtot             -0.02019    0.01862  -1.084              0.27839    
## sclmeet             0.09260    0.15771   0.587              0.55717    
## as.numeric(region) -0.09465    0.03435  -2.755              0.00594 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.805 on 1399 degrees of freedom
## Multiple R-squared:  0.1423, Adjusted R-squared:  0.138 
## F-statistic: 33.16 on 7 and 1399 DF,  p-value: < 0.00000000000000022

Сделаем таблицу по нашей модели:

stargazer(model0, type = "text", title = "Regression results for model0")
## 
## Regression results for model0
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                               nwspol           
## -----------------------------------------------
## agea_c                       0.175***          
##                               (0.012)          
##                                                
## gndrFemale                    -0.622           
##                               (0.423)          
##                                                
## eduyrs                       0.168***          
##                               (0.063)          
##                                                
## hinctnta                      -0.094           
##                               (0.078)          
##                                                
## wkhtot                        -0.020           
##                               (0.019)          
##                                                
## sclmeet                        0.093           
##                               (0.158)          
##                                                
## as.numeric(region)           -0.095***         
##                               (0.034)          
##                                                
## Constant                     31.745***         
##                               (5.991)          
##                                                
## -----------------------------------------------
## Observations                   1,407           
## R2                             0.142           
## Adjusted R2                    0.138           
## Residual Std. Error      7.805 (df = 1399)     
## F Statistic          33.160*** (df = 7; 1399)  
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

Значимость имеют переменные: …

Далее посмотрим на влияние каждой переменной на зависимую:

Модель 1 есть ли связь между количеством просматриваемых новостей и возрастом

model1 <- lm(as.numeric(nwspol) ~ as.numeric(agea), data = ESS1)
summary(model1)
## 
## Call:
## lm(formula = as.numeric(nwspol) ~ as.numeric(agea), data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -21.469  -5.636  -0.802   5.031  32.697 
## 
## Coefficients:
##                  Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)       10.8034     0.4853   22.26 <0.0000000000000002 ***
## as.numeric(agea)   0.1666     0.0115   14.49 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.844 on 1405 degrees of freedom
## Multiple R-squared:  0.1301, Adjusted R-squared:  0.1295 
## F-statistic: 210.1 on 1 and 1405 DF,  p-value: < 0.00000000000000022
ggplot()+geom_point(data = ESS1, aes(x = as.numeric(agea), y = as.numeric(nwspol)))

model1_1 <- lm(as.numeric(nwspol) ~ as.numeric(agea_c), data = ESS1)
summary(model1_1)
## 
## Call:
## lm(formula = as.numeric(nwspol) ~ as.numeric(agea_c), data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -21.469  -5.636  -0.802   5.031  32.697 
## 
## Coefficients:
##                    Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)         17.1514     0.2091   82.02 <0.0000000000000002 ***
## as.numeric(agea_c)   0.1666     0.0115   14.49 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.844 on 1405 degrees of freedom
## Multiple R-squared:  0.1301, Adjusted R-squared:  0.1295 
## F-statistic: 210.1 on 1 and 1405 DF,  p-value: < 0.00000000000000022

пи хорошее, меньше 0.05, значимый, эф статистика большая, модель объясняет 13% данных, не то чтобы супер, но терпимо, ти значение больше двух, вообще заебца (значит коэффициенты в порядке, не нули)

Модель2: есть ли зависимость между количеством просматриваемых новостей и количеством лет, потраченным на образование

model2 <- lm(nwspol ~ eduyrs, data = ESS1)
summary(model2)
## 
## Call:
## lm(formula = nwspol ~ eduyrs, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.503  -6.230   0.715   5.770  32.098 
## 
## Coefficients:
##             Estimate Std. Error t value            Pr(>|t|)    
## (Intercept) 17.88512    0.85862  20.830 <0.0000000000000002 ***
## eduyrs      -0.05459    0.06167  -0.885               0.376    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.408 on 1405 degrees of freedom
## Multiple R-squared:  0.0005574,  Adjusted R-squared:  -0.0001539 
## F-statistic: 0.7837 on 1 and 1405 DF,  p-value: 0.3762
#visualization
ggplot()+geom_point(data = ESS1, aes(x = eduyrs, y = nwspol))

не значимо, пи большое, эф статистика маленькая, влияния лет образование на количество времени потраченного на новости нету

Model 3: влияет ли регион на время, потраченное на просмотр новостей

model3 <- lm(nwspol ~ as.numeric(region), data = ESS1)
summary(model3)
## 
## Call:
## lm(formula = nwspol ~ as.numeric(region), data = ESS1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -17.1100  -6.6612   0.1243   5.8999  30.8900 
## 
## Coefficients:
##                    Estimate Std. Error t value      Pr(>|t|)    
## (Intercept)        35.83925    6.01374    5.96 0.00000000319 ***
## as.numeric(region) -0.11221    0.03608   -3.11       0.00191 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.381 on 1405 degrees of freedom
## Multiple R-squared:  0.006836,   Adjusted R-squared:  0.006129 
## F-statistic:  9.67 on 1 and 1405 DF,  p-value: 0.001911
model3_1 <- lm(nwspol ~ region, data = ESS1)
summary(model3_1)
## 
## Call:
## lm(formula = nwspol ~ region, data = ESS1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -18.3385  -6.5294  -0.1648   4.8846  29.6615 
## 
## Coefficients:
##                               Estimate Std. Error t value
## (Intercept)                    19.3385     0.5182  37.316
## regionUppsala län             -3.3385     1.3972  -2.390
## regionSödermanlands län      -1.8091     1.2736  -1.421
## regionÖstergötlands län     -4.9489     1.0793  -4.585
## regionÖrebro län             -3.1112     1.3555  -2.295
## regionVästmanlands län       -0.1099     1.4969  -0.073
## regionJönköpings län        -0.8547     1.5796  -0.541
## regionKronobergs län          -0.1385     2.6778  -0.052
## regionKalmar län              -3.0052     2.0256  -1.484
## regionGotlands län            -1.1737     0.8049  -1.458
## regionBlekinge län            -3.2596     1.4439  -2.257
## regionSkåne län              -3.4713     0.7576  -4.582
## regionHallands län            -4.8107     1.4785  -3.254
## regionVästra Götalands län  -1.2231     1.2633  -0.968
## regionVärmlands län          -1.8840     1.5363  -1.226
## regionDalarnas län            -2.0785     1.2841  -1.619
## regionGävleborgs län         -4.9432     1.3688  -3.611
## regionVästernorrlands län    -4.2231     1.2633  -3.343
## regionJämtlands län          -1.8840     1.5363  -1.226
## regionVästerbottens län      -3.1203     1.2343  -2.528
## regionNorrbottens län         -1.2455     1.3688  -0.910
##                                           Pr(>|t|)    
## (Intercept)                   < 0.0000000000000002 ***
## regionUppsala län                        0.017003 *  
## regionSödermanlands län                 0.155681    
## regionÖstergötlands län              0.00000495 ***
## regionÖrebro län                        0.021861 *  
## regionVästmanlands län                  0.941456    
## regionJönköpings län                   0.588553    
## regionKronobergs län                     0.958752    
## regionKalmar län                         0.138145    
## regionGotlands län                       0.145002    
## regionBlekinge län                       0.024136 *  
## regionSkåne län                       0.00000502 ***
## regionHallands län                       0.001166 ** 
## regionVästra Götalands län             0.333108    
## regionVärmlands län                     0.220284    
## regionDalarnas län                       0.105758    
## regionGävleborgs län                    0.000316 ***
## regionVästernorrlands län               0.000851 ***
## regionJämtlands län                     0.220284    
## regionVästerbottens län                 0.011581 *  
## regionNorrbottens län                    0.363038    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.308 on 1386 degrees of freedom
## Multiple R-squared:  0.03734,    Adjusted R-squared:  0.02344 
## F-statistic: 2.688 on 20 and 1386 DF,  p-value: 0.00007912
#visualization
ggplot()+geom_point(data = ESS1, aes(x = as.factor(region), y = nwspol))

посмотреть как объяснить и как расширить, чтобы все надписи влазили, переделать регион

Model 4: влияет ли гендер на время, потраченное на просмотр новостей

model4 <- lm(nwspol ~ gndr, data = ESS1)
summary(model4)
## 
## Call:
## lm(formula = nwspol ~ gndr, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.393  -6.393   0.607   5.607  31.607 
## 
## Coefficients:
##             Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)  17.3930     0.3155  55.130 <0.0000000000000002 ***
## gndrFemale   -0.4876     0.4482  -1.088               0.277    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.407 on 1405 degrees of freedom
## Multiple R-squared:  0.0008417,  Adjusted R-squared:  0.0001305 
## F-statistic: 1.184 on 1 and 1405 DF,  p-value: 0.2768
#visualization
boxplot(ESS1$nwspol ~ ESS1$gndr)

неt влияния

Model 5: влияет ли доход на время, потраченное на просмотр новостей

model5 <- lm(nwspol ~ hinctnta, data = ESS1)
summary(model5)
## 
## Call:
## lm(formula = nwspol ~ hinctnta, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -17.218  -6.620   0.579   5.779  31.779 
## 
## Coefficients:
##             Estimate Std. Error t value             Pr(>|t|)    
## (Intercept) 18.41721    0.53925   34.15 < 0.0000000000000002 ***
## hinctnta    -0.19929    0.07725   -2.58              0.00999 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.39 on 1405 degrees of freedom
## Multiple R-squared:  0.004715,   Adjusted R-squared:  0.004006 
## F-statistic: 6.655 on 1 and 1405 DF,  p-value: 0.009987
#visualization
ggplot()+geom_point(data = ESS1, aes(x = hinctnta, y = nwspol))

boxplot(ESS1$nwspol ~ ESS1$hinctnta)

пи значимо, с коэфф все в порядке, эф статистика в норма, корреляция отрицательная, объясняет мало, лишь 0,4% случаев, не оч хорошая модель, однако зависимость есть

Model 6: влияет ли количество часов, потраченных на работу на время, потраченное на просмотр новостей

model6 <- lm(nwspol ~ wkhtot, data = ESS1)
summary(model6)
## 
## Call:
## lm(formula = nwspol ~ wkhtot, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.388  -6.186   0.788   5.832  31.744 
## 
## Coefficients:
##             Estimate Std. Error t value            Pr(>|t|)    
## (Intercept) 16.85152    0.69808  24.140 <0.0000000000000002 ***
## wkhtot       0.00879    0.01938