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('Количество респондентов')
