#delimit ; set more off; clear; cap log close; local path `c(pwd)'; use `path'\dta1718, replace; drop y17wage y18wage y17p1 y17p99 y17p5 y17p95 y18p1 y18p99 y18p5 y18p95; log using `path'\column.log, replace; * JPSED2018コラムシリーズ:川口先生 * 全体の賃金率の2年間変化と継続者の伸び率の変化 ******* * データ ******* * Y17回答者の2年間データ(Y18新規除く) ************************* * ウェイト(Y17-Y18脱落ウェイト) ************************* * X18_P17 ********************************** * Step0:時間当たり賃金率に換算して算出 ********************************** *一年中仕事をしていた; gen y17fullyear=0; replace y17fullyear=1 if (y17_q16_1_1>=1&y17_q16_1_1<=3)&(y17_q16_1_2>=1&y17_q16_1_2<=3)& (y17_q16_1_3>=1&y17_q16_1_3<=3)&(y17_q16_1_4>=1&y17_q16_1_4<=3)& (y17_q16_2_1>=1&y17_q16_2_1<=3)&(y17_q16_2_2>=1&y17_q16_2_2<=3)& (y17_q16_2_3>=1&y17_q16_2_3<=3)&(y17_q16_2_4>=1&y17_q16_2_4<=3)& (y17_q16_3_1>=1&y17_q16_3_1<=3)&(y17_q16_3_2>=1&y17_q16_3_2<=3)& (y17_q16_3_3>=1&y17_q16_3_3<=3)&(y17_q17>=1&y17_q17<=4); gen y18fullyear=0; replace y18fullyear=1 if (y18_q16_1_1>=1&y18_q16_1_1<=3)&(y18_q16_1_2>=1&y18_q16_1_2<=3)& (y18_q16_1_3>=1&y18_q16_1_3<=3)&(y18_q16_1_4>=1&y18_q16_1_4<=3)& (y18_q16_2_1>=1&y18_q16_2_1<=3)&(y18_q16_2_2>=1&y18_q16_2_2<=3)& (y18_q16_2_3>=1&y18_q16_2_3<=3)&(y18_q16_2_4>=1&y18_q16_2_4<=3)& (y18_q16_3_1>=1&y18_q16_3_1<=3)&(y18_q16_3_2>=1&y18_q16_3_2<=3)& (y18_q16_3_3>=1&y18_q16_3_3<=3)&(y18_q17>=1&y18_q17<=4); *時給で働いていた; gen y17hourlywage=0; replace y17hourlywage=1 if y17_q37==4; gen y18hourlywage=0; replace y18hourlywage=1 if y18_q41==4; * 賃金率=年収÷(週労働時間×50); gen y17wage=.; replace y17wage=y17_q91_1*10000/(y17_q36_2*50) if y17fullyear; replace y17wage=y17_q38 if y17hourlywage; gen y18wage=.; replace y18wage=y18_q98_1*10000/(y18_q40_2*50) if y18fullyear; replace y18wage=y18_q42 if y18hourlywage; gen gwage=(y18wage-y17wage)/y17wage; sum y17fullyear y18fullyear y17hourlywage y18hourlywage y17wage y18wage gwage; * pctile Y17&Y18; local lower=5; local upper=95; forvalues year = 17/18{; egen y`year'p`lower'=pctile(y`year'wage) ,p(`lower'); egen y`year'p`upper'=pctile(y`year'wage) ,p(`upper'); }; *sample restriction; *CAUTION: Should not drop those whose wages are not reported; forvalues year = 17/18{; drop if y`year'wage~=.&(y`year'p`lower'>=y`year'wage|y`year'wage>=y`year'p`upper'); }; gen y17wagea=y17wage~=.; gen y18wagea=y18wage~=.; gen y1718wagea=(y17wage~=.&y18wage~=.); sum y17wagea y18wagea y1718wagea y17wage y18wage gwage; sum y17wage y18wage if y1718wagea; sum y17wage; local my17wage=r(mean); local y17available=r(N); sum y18wage; local my18wage=r(mean); di (`my18wage'-`my17wage')/`my17wage'; sum gwage; local y17y18available=r(N); di `y17y18available'/`y17available'; sum y17wage if y1718wagea; local smy17wage=r(mean); sum y18wage if y1718wagea; local smy18wage=r(mean); di (`smy18wage'-`smy17wage')/`smy17wage'; log close; exit;