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)

Regression

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

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

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

ESS1$nwspol <-as.numeric(ESS1$nwspol) 
ESS1$sclmeet <-as.numeric(ESS1$sclmeet) 
ESS1$sclact <-as.numeric(ESS1$sclact) 

hist(ESS1$nwspol)

hist(ESS1$sclmeet)

hist(ESS1$sclact)

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

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.95912, p-value < 0.00000000000000022

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

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

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

model1 <- lm(nwspol ~ sclact, data = ESS1)
summary(model1)
## 
## Call:
## lm(formula = nwspol ~ sclact, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.438  -6.196   0.804   5.804  31.804 
## 
## Coefficients:
##             Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)  16.4714     0.7428  22.173 <0.0000000000000002 ***
## sclact        0.2416     0.2489   0.971               0.332    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.522 on 1534 degrees of freedom
## Multiple R-squared:  0.0006138,  Adjusted R-squared:  -3.77e-05 
## F-statistic: 0.9421 on 1 and 1534 DF,  p-value: 0.3319
ggplot()+geom_point(data = ESS1, aes(x = sclact, y = nwspol))

В первой модели мы проверяли зависимость переменной о количестве времени, затрачиваемом на просмотр новостей и количеством социальной активности. В результате получилось p-value=0.332, т.е. не значимо, значит зависимости между переменными нет, и уровень социальной активности не влияет на количество времени потраченного на просмотр новостей.

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

model2 <- lm(nwspol ~ sclmeet, data = ESS1)
summary(model2)
## 
## Call:
## lm(formula = nwspol ~ sclmeet, data = ESS1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -17.9061  -6.4112   0.5888   6.0870  31.0905 
## 
## Coefficients:
##             Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)  19.9026     0.9087  21.903 < 0.0000000000000002 ***
## sclmeet      -0.4983     0.1604  -3.107              0.00192 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.498 on 1534 degrees of freedom
## Multiple R-squared:  0.006254,   Adjusted R-squared:  0.005606 
## F-statistic: 9.654 on 1 and 1534 DF,  p-value: 0.001924
ggplot()+geom_point(data = ESS1, aes(x = sclmeet, y = nwspol))

Во второй модели мы проверяли зависимость переменной о количестве времени, затрачиваемом на просмотр новостей и переменной показывающей частоту встреч с друзьями, колегами и родственниками. В результате p-value=0.00192 **, т.е. значимо, t value по модулю больше 2, значит коэффициенты значимо отличаются от 0. Однако, Adjusted R-squared = 0.005606, т.е. модель объясняет только 0,5%, поэтому не то чтобы это хорошая модель… (коэффициент а = 19.9026, коэффициент b = -0.4983; y = -0.4983x + 19.9026) У нас отрицательная корреляция, потому что с увеличением x (количество встреч с друзьями) на один, количество времени затраченного на новости будет снижаться на -0.4983.

Model 3: влияют ли вместе переменные социальной активности и количество встреч на время, потраченное на просмотр новостей

model3 <- lm(nwspol ~ sclact + sclmeet, data = ESS1)
summary(model3)
## 
## Call:
## lm(formula = nwspol ~ sclact + sclmeet, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -17.825  -6.542   0.421   5.989  30.853 
## 
## Coefficients:
##             Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)  18.9713     1.0165  18.664 < 0.0000000000000002 ***
## sclact        0.5309     0.2608   2.036             0.041904 *  
## sclmeet      -0.6044     0.1685  -3.588             0.000344 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.489 on 1533 degrees of freedom
## Multiple R-squared:  0.008934,   Adjusted R-squared:  0.007641 
## F-statistic:  6.91 on 2 and 1533 DF,  p-value: 0.001029

Модель описывает зависимость времени потраченного на навости от социальной активности и количестве встреч. В результате p-value значим и равен 0.000344*** для переменной встреч и 0.050746 для переменной активности, значит переменные значимо влияют на зависимую переменную. T-value по модулю больше 2, ( t value=-3.587 для встреч и t value=1.955 для активности), сл-но коэффициенты значимо отличаются от 0. Уравнение выглядит следующим образом: nwspol = 19.0330 - 0.6071sclmeet + 0.5116sclact + e. Однако, Adjusted R-squared = 0.007553, сл-но наша модель объясняет только 0.75%, что очень мало.

H0: две модели не отличаются друг от друга

anova(model1, model3)
## Analysis of Variance Table
## 
## Model 1: nwspol ~ sclact
## Model 2: nwspol ~ sclact + sclmeet
##   Res.Df    RSS Df Sum of Sq     F    Pr(>F)    
## 1   1534 111405                                 
## 2   1533 110477  1    927.52 12.87 0.0003443 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(model2, model3)
## Analysis of Variance Table
## 
## Model 1: nwspol ~ sclmeet
## Model 2: nwspol ~ sclact + sclmeet
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)  
## 1   1534 110776                            
## 2   1533 110477  1    298.79 4.146 0.0419 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

В первом случае для модели 1 и модели 3, p-value = 0.0003445 ***, сл-но значимо, поэтому стоит добвить переменную.

Additional

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

 ESS1 <- select(ESS, c("sclmeet", "sclact", "nwspol", "agea", "gndr", "eduyrs"))
ESS1 = na.omit(ESS1) 

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

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

hist(ESS1$agea)

plot(ESS1$gndr)

mean(ESS1$agea)
## [1] 37.47063
ESS1$agea_c <- ESS1$agea - mean(ESS1$agea) #center age
model4 <- lm(as.numeric(nwspol) ~ as.numeric(agea), data = ESS1)
summary(model4)
## 
## Call:
## lm(formula = as.numeric(nwspol) ~ as.numeric(agea), data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -21.927  -5.589  -0.799   5.197  32.973 
## 
## Coefficients:
##                  Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)      10.49422    0.43965   23.87 <0.0000000000000002 ***
## as.numeric(agea)  0.17761    0.01045   16.99 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.818 on 1530 degrees of freedom
## Multiple R-squared:  0.1588, Adjusted R-squared:  0.1582 
## F-statistic: 288.8 on 1 and 1530 DF,  p-value: < 0.00000000000000022
ggplot()+geom_point(data = ESS1, aes(x = as.numeric(agea), y = as.numeric(nwspol)))

model41 <- lm(as.numeric(nwspol) ~ as.numeric(agea_c), data = ESS1)
summary(model41)
## 
## Call:
## lm(formula = as.numeric(nwspol) ~ as.numeric(agea_c), data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -21.927  -5.589  -0.799   5.197  32.973 
## 
## Coefficients:
##                    Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)        17.14948    0.19975   85.86 <0.0000000000000002 ***
## as.numeric(agea_c)  0.17761    0.01045   16.99 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.818 on 1530 degrees of freedom
## Multiple R-squared:  0.1588, Adjusted R-squared:  0.1582 
## F-statistic: 288.8 on 1 and 1530 DF,  p-value: < 0.00000000000000022
model5 <- lm(as.numeric(nwspol) ~ as.numeric(eduyrs), data = ESS1)
summary(model5)
## 
## Call:
## lm(formula = as.numeric(nwspol) ~ as.numeric(eduyrs), data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.157  -6.152   0.848   5.849  31.856 
## 
## Coefficients:
##                     Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)        17.165770   0.814873  21.066 <0.0000000000000002 ***
## as.numeric(eduyrs) -0.001226   0.059082  -0.021               0.983    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.524 on 1530 degrees of freedom
## Multiple R-squared:  2.814e-07,  Adjusted R-squared:  -0.0006533 
## F-statistic: 0.0004305 on 1 and 1530 DF,  p-value: 0.9834
ggplot()+geom_point(data = ESS1, aes(x = as.numeric(eduyrs), y = as.numeric(nwspol)))

model6 <- lm(as.numeric(nwspol) ~ gndr, data = ESS1)
summary(model6)
## 
## Call:
## lm(formula = as.numeric(nwspol) ~ gndr, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.335  -6.335   0.665   5.665  31.665 
## 
## Coefficients:
##             Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)  17.3346     0.3081  56.259 <0.0000000000000002 ***
## gndrFemale   -0.3698     0.4355  -0.849               0.396    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.522 on 1530 degrees of freedom
## Multiple R-squared:  0.0004712,  Adjusted R-squared:  -0.0001821 
## F-statistic: 0.7213 on 1 and 1530 DF,  p-value: 0.3958
model7 <- lm(nwspol ~ as.numeric(agea_c) + gndr, data = ESS1)
summary(model7)
## 
## Call:
## lm(formula = nwspol ~ as.numeric(agea_c) + gndr, data = ESS1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -21.953  -5.572  -0.867   5.113  32.773 
## 
## Coefficients:
##                    Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)        17.35137    0.28267  61.384 <0.0000000000000002 ***
## as.numeric(agea_c)  0.17766    0.01045  16.998 <0.0000000000000002 ***
## gndrFemale         -0.40326    0.39950  -1.009               0.313    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.818 on 1529 degrees of freedom
## Multiple R-squared:  0.1593, Adjusted R-squared:  0.1582 
## F-statistic: 144.9 on 2 and 1529 DF,  p-value: < 0.00000000000000022