Advertisement
igoryanchik

NIR 3

May 16th, 2023 (edited)
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 12.44 KB | None | 0 0
  1. install.packages("devtools")
  2. devtools::install_github("https://github.com/bdemeshev/rlms", force = TRUE)
  3.  
  4. library("memisc")
  5. library("GGally")
  6. library("dplyr")
  7. library("psych")
  8. library("lmtest")
  9. library("sjPlot")
  10. library("sgof")
  11. library("ggplot2")
  12. library("foreign")
  13. library("car")
  14. library("hexbin")
  15. library("rlms")
  16. library("devtools")
  17. library("rstatix")
  18. library("sandwich")
  19. library("haven")
  20.  
  21.  
  22.  
  23. data <- read.csv("r17i_os26b.csv", sep=",", dec = ".", header=TRUE)
  24. glimpse(data)
  25. #Выборка данных для описания соц-эконом положения граждан РФ
  26. #mh5 Пол(1-М, 2-Ж)
  27. #mj13.2 Среднемесячная з/п за год
  28. #m_marst Семейное положение
  29. # (1-никогда не состоял в браке,
  30. # 2-Состоит в зарег. браке,
  31. # 3-Живут вместе, но не зарег,
  32. # 4-Разведен и не состоит в браке,
  33. # 5-Вдовец(вдова),
  34. # 6-офиц. зарег, но живут не вместе)
  35. #m_diplom Высшее образование
  36. # (1-Окончил 0-6 классов,
  37. # 2-Незаконч среднее образование(7-8кл),
  38. # 3-2+что-то ещё,
  39. # 4-Законч. Ср.Обр,
  40. # 5-Законч. Ср.Спец.Обр,
  41. # 6-Законч. Высш.Обр. и выше)
  42. #m_age возраст
  43. #status Тип населённого пункта
  44. # (1-Обл.Центр,
  45. # 2-Город,
  46. # 3-Посёлок городского типа,
  47. # 4-Село)
  48. #mj6.2 Длительность рабочей недели
  49.  
  50. #отбираем нужные переменные
  51. data = select(data, mh5, m_age, m_marst, m_diplom, status, mj13.2, mj6.2)
  52. glimpse(data)
  53. #убираем все  объекты с NA
  54. data = na.omit(data)
  55. #получаем представление наших даных(вывод)
  56. glimpse(data)
  57.  
  58. #новая база данных с отфильтрованными значениями data2:
  59. data2 = select(data)
  60.  
  61. #Cоздадим  дамми_перменные по параметру m_marst(семейное положение)
  62. #1- женат, 0 - не женат
  63. data2$wed1 = 0 #по умолчанию не женат
  64. data2$wed1[which(data$m_marst == 2)] <- 1 #Если опрашиваемый женат присваеваем 1
  65. data2$wed1[which(data$m_marst == 6)] <- 1 #Если опрашиваемый oфиц. зарег, но живут не вместе
  66.  
  67. #1 -  вдовец или разведен, 0 - не вдовец и не разведен
  68. data2$wed2 = 0 #по умолчанию не вдовец и не разведен
  69. data2$wed2[which(data$m_marst == 4)] <- 1 #Если респондент разведен и не состоит в браке присваеваем 1
  70. data2$wed2[which(data$m_marst == 5)] <- 1 #Если респондент вдовец(вдова) присваеваем 1
  71.  
  72. #1 - никогда не состоял в браке, 0 - состоял
  73. data2$wed3 = 0
  74. data2$wed3[which(data$m_marst == 1)] <- 1 #Если респондент никогда не состоял в браке присваеваем 1
  75.  
  76. #проверим отсуствие линейной зависимости
  77.  
  78. vif(lm(data$m_marst ~ data2$wed1 + data2$wed2 + data2$wed3)) #все хорошо, зависимости нет
  79.  
  80. #делаем переменную пола(sex)
  81. data2["sex"] = 0
  82. data2$sex[which(data$mh5 == 1)] <- 1 #1 - мужчина, 0 - женщина
  83.  
  84. #делаеме из параметра status дамми-переменную, где 1- это город или областной центр и 0 в противоположном случае
  85. data2$city_status = 0
  86. data2$city_status[which(data$status == 1)] <- 1
  87. data2$city_status[which(data$status == 2)] <- 1
  88.  
  89. #вводим параметр  higher_educ, характеризующий наличие полного высшего образования, где 1 - да, 0 - нет
  90. data2$her_educ = 0
  91. data2$her_educ[which(data$m_diplom == 2)] <- 1
  92.  
  93. #Нормализуем перемнные: зарплата, длительность рабочей недели и возраст
  94.  
  95. #зп
  96. salary = data$mj13.2
  97. data2$salary = (salary - mean(salary)) / sqrt(var(salary))
  98.  
  99. #длительность рабочей недели
  100. wh = data$mj6.2
  101. data2$wh = (wh - mean(wh)) / sqrt(var(wh))
  102.  
  103. #возраст
  104. age = data$m_age
  105. data2["age"] = (age - mean(age)) / sqrt(var(age))
  106.  
  107.  
  108. glimpse(data2)
  109. #(1)
  110. model11 = lm(data = data2 ,salary ~ wh + age + city_status + her_educ + sex + wed1 + wed2 + wed3)
  111. summary(model11)
  112. vif(model11)
  113. #Multiple R-squared:  0.03363
  114. #Adjusted R-squared:  0.03178
  115.  
  116.  
  117. #уберем  sex и city_status тк у них плохая  p-статистика(эта норм)
  118. model12 = lm(data = data2 ,salary ~ wh + age  + her_educ  + wed1 + wed2 + wed3)
  119.  
  120. summary(model12)
  121. vif(model12)
  122. #Multiple R-squared:  0.03268
  123. #Adjusted R-squared:  0.03129
  124.  
  125. #2
  126. pow = 0.1
  127. model21 = lm(data = data2, salary ~age  + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow))
  128. summary(model21)
  129. vif(model21)
  130. #Multiple R-squared:  0.03268
  131. #Adjusted R-squared:  0.03107  
  132.  
  133. model22 = lm(data = data2, salary ~ wh + age  + her_educ  + wed1 + wed2 + wed3 + I(Mod(age)^pow))
  134. summary(model22)
  135. vif(model22)
  136. #Multiple R-squared:  0.03372
  137. #Adjusted R-squared:  0.0321  
  138.  
  139.  
  140. model23 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  141. summary(model23)
  142. vif(model23)
  143. #Multiple R-squared:  0.03372
  144. #Adjusted R-squared:  0.0321    
  145.  
  146. pow = 0.2
  147. model24 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  148. summary(model24)
  149. vif(model24)
  150. #Multiple R-squared:  0.03385
  151. #Adjusted R-squared:  0.03224      
  152.  
  153. pow = 0.3
  154. model25 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  155. summary(model25)
  156. vif(model25)
  157. #Multiple R-squared:  0.03397
  158. #Adjusted R-squared:  0.03236  
  159.  
  160. pow = 0.4
  161. model26 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  162. summary(model26)
  163. vif(model26)
  164. #Multiple R-squared:  0.03408
  165. #Adjusted R-squared:  0.03246    
  166.  
  167. pow = 0.5
  168. model27 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  169. summary(model27)
  170. vif(model27)
  171. #Multiple R-squared:  0.03
  172. 417
  173. #Adjusted R-squared:  0.03256    
  174.  
  175.  
  176. pow = 0.6
  177. model28 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  178. summary(model28)
  179. vif(model28)
  180. #Multiple R-squared:  0.03425
  181. #Adjusted R-squared:  0.03264
  182.  
  183. pow = 0.7
  184. model29 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  185. summary(model29)
  186. vif(model29)
  187. #Multiple R-squared:  0.03431
  188. #Adjusted R-squared:  0.0327      
  189.  
  190. pow = 0.8
  191. model2_10 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  192. summary(model2_10)
  193. vif(model2_10)
  194. #Multiple R-squared:  0.03437
  195. #Adjusted R-squared:  0.03275        
  196.  
  197. pow = 0.9
  198. model2_11 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  199. summary(model2_11)
  200. vif(model2_11)
  201. #Multiple R-squared:  0.0344
  202. #Adjusted R-squared:  0.03279        
  203.  
  204.  
  205. pow = 1.0
  206. model2_12 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  207. summary(model2_12)
  208. vif(model2_12)
  209. #Multiple R-squared:  0.03443
  210. #Adjusted R-squared:  0.03282          
  211.  
  212. pow = 1.1
  213. model2_13 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  214. summary(model2_13)
  215. vif(model2_13)
  216. #Multiple R-squared:  0.03445
  217. #Adjusted R-squared:  0.03284    
  218.  
  219. pow = 1.2
  220. model2_14 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  221. summary(model2_14)
  222. vif(model2_14)
  223. #Multiple R-squared:  0.03446
  224. #Adjusted R-squared:  0.03284    
  225.  
  226. pow = 1.3
  227. model2_15 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  228. summary(model2_15)
  229. vif(model2_15)
  230. #Multiple R-squared:  0.03446
  231. #Adjusted R-squared:  0.03285      
  232.  
  233. pow = 1.4
  234. model2_16 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  235. summary(model2_16)
  236. vif(model2_16)
  237. #Multiple R-squared:  0.03445
  238. #Adjusted R-squared:  0.03284      
  239.  
  240.  
  241. pow = 1.5
  242. model2_17 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  243. summary(model2_17)
  244. vif(model2_17)
  245. #Multiple R-squared:  0.03444
  246. #Adjusted R-squared:  0.03283      
  247.  
  248. pow = 1.6
  249. model2_18 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  250. summary(model2_18)
  251. vif(model2_18)
  252. #Multiple R-squared:  0.03443
  253. #Adjusted R-squared:  0.03281    
  254.  
  255. pow = 1.7
  256. model2_19 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  257. summary(model2_19)
  258. vif(model2_19)
  259. #Multiple R-squared:  0.0344
  260. #Adjusted R-squared:  0.03279    
  261.  
  262. pow = 1.8
  263. model2_20 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  264. summary(model2_20)
  265. vif(model2_20)
  266. #Multiple R-squared:  0.03438
  267. #Adjusted R-squared:  0.03277    
  268.  
  269. pow = 1.9
  270. model2_21 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  271. summary(model2_21)
  272. vif(model2_21)
  273. #Multiple R-squared:  0.03435
  274. #Adjusted R-squared:  0.03274      
  275.  
  276. pow = 2.0
  277. model2_22 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  278. summary(model2_22)
  279. vif(model2_22)
  280. #Multiple R-squared:  0.03432
  281. #Adjusted R-squared:  0.03271      
  282.  
  283. #Произведения
  284. model2_23 = m(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh) * Mod(age)))
  285. summary(model2_23)
  286. #Multiple R-squared:   0.03357
  287. #Adjusted R-squared:    0.03196    
  288. vif(model2_23)
  289. #попробуем убрать  wed1 тк vif(wed1) = 3
  290. model2_24 = lm(data = data2, salary ~ wh + age  + her_educ + wed2 + wed3 + I(Mod(wh) * Mod(age)))
  291. summary(model2_24)
  292. #Multiple R-squared:   0.03357
  293. #Adjusted R-squared:    0.03196    
  294. model2_25 = lm(data = data2, salary ~ wh + age +I(Mod(wh) * Mod(age)))
  295. summary(model2_25)
  296. #Multiple R-squared:   0.03097
  297. #Adjusted R-squared:    0.03028    
  298. model2_26 = lm(data = data2, salary ~ wh + age + I(Mod(wh) * Mod(age)))
  299. summary(model2_26)
  300. #Multiple R-squared:   0.03097
  301. #Adjusted R-squared:    0.03028  
  302.  
  303. #Логарифмы
  304. model2_27 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(log(Mod(wh))))
  305. summary(model2_27)
  306. vif(model2_27)
  307. #Multiple R-squared:   0.03268
  308. #Adjusted R-squared:    0.03129    
  309.  
  310. model2_28 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(log(Mod(age))))
  311. summary(model2_28)
  312. vif(model2_28)
  313. #Multiple R-squared:   0.01072
  314. #Adjusted R-squared:    0.009305  
  315.  
  316. model2_28 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(log(Mod(age) * Mod(wh))))
  317. summary(model2_28)
  318. vif(model2_28)
  319. #Multiple R-squared:   0.0198
  320. #Adjusted R-squared:    0.01839    
  321.  
  322. model2_28 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(log(Mod(age))) + I(log(Mod(wh))))
  323. summary(model2_28)
  324. vif(model2_28)
  325. #Multiple R-squared:   0.03358
  326. #Adjusted R-squared:    0.03196    
  327.  
  328.  
  329. #3 Выберем лучшие модели
  330. pow = 1.3
  331. model2_29 = lm(data = data2, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  332. summary(model2_29)
  333. vif(model2_29)
  334. #Multiple R-squared:  0.03446
  335. #Adjusted R-squared:  0.03285    
  336.  
  337. #4 Молодые люди
  338. #5
  339. #С высшим образование, не из города - (her_educ = 1, city_status = 0)
  340. #Разведенные женщины, без высшего образования - (wed2 = 1,her_edc = 0)
  341.  
  342. pow = 1.3
  343. data3 = subset(data2,her_educ = 1 )
  344. data3 = subset(data2,city_status = 0 )
  345. model5 = lm(data = data3, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  346. summary(model5)
  347. #Multiple R-squared:   0.03446
  348. #Adjusted R-squared:    0.03285    
  349.  
  350. pow = 1.3
  351. data4 = subset(data2,wed2 = 1 )
  352. data4 = subset(data2,her_educ = 0 )
  353. model51 = lm(data = data4, salary ~ age + her_educ  + wed1 + wed2 + wed3 + I(Mod(wh)^pow) + I(Mod(age)^pow))
  354. summary(model51)
  355. #Multiple R-squared:   0.03446
  356. #Adjusted R-squared:    0.03285    
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement