library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(haven)
library(writexl)
library(ggplot2)

data = read_sav("r29iall_42.sav")

data = data %>% select(yl90, yj60, yj13.2, y_age, yj21.3, status, y_age, yh5, yj4.1, yj6.2, yj11.1, yj29, yj72.171, yj72.173, ym20.61, ym20.62, ym20.63, ym20.64, ym20.65, ym20.66, ym20.620, ym20.69, ym20.610, ym20.611, ym20.612, ym20.613, ym20.614, ym20.615, ym20.616, ym20.617, ym20.618, ym20.619, ym20.67, ym20.7, ym39) 

data = data %>% filter(is.na(yl90) == FALSE & is.na(yj60) == FALSE & is.na(yj13.2) == FALSE)

data$yl90 = as.numeric(data$yl90)
data$yj60 = as.numeric(data$yj60)
data$yj13.2 = as.numeric(data$yj13.2)
data$y_age = as.numeric(data$y_age)
data$yj21.3 = as.numeric(data$yj21.3)
data$status = as.numeric(data$status)
data$yh5 = as.numeric(data$yh5)
data$yj4.1 = as.numeric(data$yj4.1)
data$yj6.2 = as.numeric(data$yj6.2)
data$yj11.1 = as.numeric(data$yj11.1)
data$yj29 = as.numeric(data$yj29)
data$yj72.171 = as.numeric(data$yj72.171)
data$yj72.173 = as.numeric(data$yj72.173)
data$ym20.61 = as.numeric(data$ym20.61)
data$ym20.62 = as.numeric(data$ym20.62)
data$ym20.63 = as.numeric(data$ym20.63)
data$ym20.64 = as.numeric(data$ym20.64)
data$ym20.65 = as.numeric(data$ym20.65)
data$ym20.66 = as.numeric(data$ym20.66)
data$ym20.620 = as.numeric(data$ym20.620)
data$ym20.69 = as.numeric(data$ym20.69)
data$ym20.610 = as.numeric(data$ym20.610)
data$ym20.611 = as.numeric(data$ym20.611)
data$ym20.612 = as.numeric(data$ym20.612)
data$ym20.613 = as.numeric(data$ym20.613)
data$ym20.614 = as.numeric(data$ym20.614)
data$ym20.615 = as.numeric(data$ym20.615)
data$ym20.616 = as.numeric(data$ym20.616)
data$ym20.617 = as.numeric(data$ym20.617)
data$ym20.618 = as.numeric(data$ym20.618)
data$ym20.619 = as.numeric(data$ym20.619)
data$ym20.67 = as.numeric(data$ym20.67)
data$ym20.7 = as.numeric(data$ym20.7)
data$ym39 = as.numeric(data$ym39)

data[is.na(data$yj72.173), "yj72.173"] <- 0 #про детей моложе 18
data[is.na(data$ym20.614), "ym20.614"] <- 2 #про гинекологические заболевания

data = data %>% filter(ym39 < 9999990) %>% filter(ym20.7 < 9999990) %>% filter(ym20.618 < 9999990) %>% filter(ym20.617 < 9999990) %>% filter(ym20.616 < 9999990) %>% filter(ym20.615 < 9999990) %>% filter(ym20.613 < 9999990) %>% filter(ym20.612 < 9999990) %>% filter(ym20.610 < 9999990) %>% filter(ym20.620 < 9999990) %>% filter(ym20.64 < 9999990) %>% filter(ym20.63 < 9999990) %>% filter(ym20.62 < 9999990) %>% filter(yj72.173 < 9999990) %>% filter(yj72.171 < 9999990) %>% filter(yj4.1 < 9999990) %>% filter(yh5 < 9999990) %>% filter(status < 9999990) %>% filter(y_age < 9999990) %>% filter(yl90 < 9999990)  %>% filter(yj13.2 < 9999990) %>% filter(yj60 < 9999990) %>% filter(yj21.3 < 9999990) %>% filter(yj6.2 < 99999990) %>% filter(yj11.1 < 9999990) %>% filter(yj29 < 9999990) %>% filter(ym20.61 < 9999990) %>% filter(ym20.65 < 9999990) %>% filter(ym20.66 < 9999990) %>% filter(ym20.69 < 9999990) %>% filter(ym20.611 < 9999990) %>% filter(ym20.619 < 9999990) %>% filter(ym20.67 < 9999990) %>% filter(ym20.614 < 9999990)

data$yl90 = data$yl90/12

data[data$ym20.61 == 2, "ym20.61"] <- 0
data[data$ym20.62 == 2, "ym20.62"] <- 0
data[data$ym20.63 == 2, "ym20.63"] <- 0
data[data$ym20.64 == 2, "ym20.64"] <- 0
data[data$ym20.65 == 2, "ym20.65"] <- 0
data[data$ym20.66 == 2, "ym20.66"] <- 0
data[data$ym20.67 == 2, "ym20.67"] <- 0
data[data$ym20.69 == 2, "ym20.69"] <- 0
data[data$ym20.610 == 2, "ym20.610"] <- 0
data[data$ym20.611 == 2, "ym20.611"] <- 0
data[data$ym20.612 == 2, "ym20.612"] <- 0
data[data$ym20.613 == 2, "ym20.613"] <- 0
data[data$ym20.614 == 2, "ym20.614"] <- 0
data[data$ym20.615 == 2, "ym20.615"] <- 0
data[data$ym20.616 == 2, "ym20.616"] <- 0
data[data$ym20.617 == 2, "ym20.617"] <- 0
data[data$ym20.618 == 2, "ym20.618"] <- 0
data[data$ym20.619 == 2, "ym20.619"] <- 0
data[data$ym20.620 == 2, "ym20.620"] <- 0
data = data %>% mutate(quant_chron_zabol = ym20.61 + ym20.62 + ym20.620 + ym20.63 + ym20.64 + ym20.65 + ym20.66 + ym20.67 + ym20.69 + ym20.610 + ym20.611 + ym20.612 + ym20.613 + ym20.614 + ym20.615 + ym20.616 + ym20.617 + ym20.618 + ym20.619) %>% dplyr::select(-ym20.61,-ym20.62,-ym20.620,-ym20.63,-ym20.64,-ym20.65,-ym20.66,-ym20.67,-ym20.69,-ym20.610,-ym20.611,-ym20.612,-ym20.613,-ym20.614,-ym20.615,-ym20.616,-ym20.617,-ym20.618,-ym20.619)

data$yj21.3 = as.factor(data$yj21.3)
data$status = as.factor(data$status)
data$yh5 = as.factor(data$yh5)
data$yj4.1 = as.factor(data$yj4.1)
data$yj11.1 = as.factor(data$yj11.1)
data$yj29 = as.factor(data$yj29)
data$yj72.171 = as.factor(data$yj72.171)
data$yj72.173 = as.factor(data$yj72.173)
data$ym20.7 = as.factor(data$ym20.7)
data$ym39 = as.factor(data$ym39)

data = data %>% filter(yj60 > 0, yj13.2 > 0, yj6.2 < 100)
summary(data)
##       yl90               yj60            yj13.2           y_age    yj21.3  
##  Min.   : 0.08333   Min.   :  3000   Min.   :  4000   Min.   :18   1: 211  
##  1st Qu.: 0.58333   1st Qu.: 21700   1st Qu.: 19000   1st Qu.:33   2:1126  
##  Median : 1.08333   Median : 30000   Median : 27000   Median :41           
##  Mean   : 1.40470   Mean   : 36736   Mean   : 31091   Mean   :42           
##  3rd Qu.: 1.66667   3rd Qu.: 45000   3rd Qu.: 40000   3rd Qu.:50           
##  Max.   :16.66667   Max.   :433000   Max.   :200000   Max.   :81           
##                                                                            
##  status  yh5         yj4.1         yj6.2       yj11.1   yj29     yj72.171
##  1:698   1:530   14     :255   Min.   :10.00   1:1292   1:  62   1:1080  
##  2:402   2:807   10     :175   1st Qu.:40.00   2:  45   2:1275   2: 257  
##  3: 65           12     :140   Median :40.00                             
##  4:172           7      :104   Mean   :42.58                             
##                  6      : 84   3rd Qu.:45.00                             
##                  1      : 79   Max.   :98.00                             
##                  (Other):500                                             
##     yj72.173   ym20.7   ym39     quant_chron_zabol
##  0      :687   1:  30   1:  75   Min.   : 0.000   
##  1      :377   2:1307   2:1262   1st Qu.: 0.000   
##  2      :239                     Median : 1.000   
##  3      : 22                     Mean   : 1.616   
##  4      :  9                     3rd Qu.: 2.000   
##  5      :  1                     Max.   :14.000   
##  (Other):  2
ggplot(data, mapping = aes(x = yj60, y = yl90)) + 
  geom_point(alpha = 0.5) +
  scale_x_log10() +
  scale_y_log10() +
  ggtitle('Соотношение логарифма количества пропущенных дней на логарифм дохода') +
  xlab('Логарифм общего дохода за последний месяц') +
  ylab('Логарифм количества пропущенных дней')

ggplot(data, mapping = aes(x = yj13.2 , y = yl90)) + 
  geom_point(alpha = 0.5) +
  scale_x_log10() +
  scale_y_log10() +
  ggtitle('Соотношение логарифма количества пропущенных дней на логарифм зп') +
  xlab('Логарифм общего средней зп за год') +
  ylab('Логарифм количества пропущенных дней за год')

model = lm(log(yl90) ~ log(yj60), data)
summary(model)
## 
## Call:
## lm(formula = log(yl90) ~ log(yj60), data = data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.54404 -0.50081  0.04676  0.48192  2.89752 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  0.84524    0.39203   2.156   0.0313 *
## log(yj60)   -0.07919    0.03784  -2.093   0.0366 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7784 on 1335 degrees of freedom
## Multiple R-squared:  0.003269,   Adjusted R-squared:  0.002523 
## F-statistic: 4.379 on 1 and 1335 DF,  p-value: 0.03657
ggplot(data, mapping = aes(x = yj60, y = yl90, color = yh5)) + 
  geom_point(alpha = 0.5) +
  scale_x_log10() +
  scale_y_log10() +
  labs(color = "Пол") +
 # scale_color_discrete(limits = c("да", "нет")) +
  ggtitle('Соотношение логарифма количества пропущенных рабочих дней\n на логарифм дохода',
          subtitle = 'Распределение по полу') +
  xlab('Логарифм общего дохода за последний месяц') +
  ylab('Логарифм количества пропущенных дней')

summary(data$yh5)
##   1   2 
## 530 807
ggplot(data = data)+
  geom_bar(aes(x = yh5))+
    ggtitle('Распределение полов в выборке') +
  xlab('Пол') +
  ylab('Количество')

ggplot(data = data)+
  geom_bar(aes(x = status))+
    ggtitle('Распределение типов населенного пункта в выборке') +
  xlab('Тип') +
  ylab('Количество')

ggplot(data = data)+
  geom_bar(aes(x = y_age))+
    ggtitle('Распределение возрастов в выборке') +
  xlab('Возраст') +
  ylab('Количество')

ggplot(data = data)+
  geom_bar(aes(x = yj72.171))+
    ggtitle('Распределение наличия детей в выборке') +
  xlab('Наличие детей') +
  ylab('Количество')

ggplot(data = data)+
  geom_bar(aes(x = yj11.1))+
    ggtitle('Распределение количества работающих по трудовому договору в выборке') +
  xlab('Наличие договора') +
  ylab('Количество респондентов')

ggplot(data = data)+
  geom_bar(aes(x = yj29))+
    ggtitle('Распределение количества занимающихся\n предпринимательством в выборке') +
  xlab('Предприминательская ли деятельность') +
  ylab('Количество респондентов')

ggplot(data = data)+
  geom_bar(aes(x = ym20.7))+
    ggtitle('Распределение количества человек имеющих инвалидность в выборке') +
  xlab('Наличие инвалидности') +
  ylab('Количество респондентов')

ggplot(data = data)+
  geom_bar(aes(x = yj4.1))+
    ggtitle('Распределение по отраслям в выборке') +
  xlab('Номер отрасли') +
  ylab('Количество респондентов')