Gazdasági aktivitás: aktivitási ráták, az aktivitás valószín ségének logitbecslése
Az adatállomány beolvasása
use alfsx58 2006. 2. negyedév Aktivitás változó
sum aktiv
tab1 csoe csou tab1 - egydimenziós táblázatok tab csoe csou,sum(aktiv)
Nemenként, súlyozva tab sex, sum(aktiv)
tab sex [w=wei], sum(aktiv) számottev különbség a súlyozatlan rátákhoz képest - mi lehet az oka?
Életkor szerinti különbségek korcsoport változó
Ha még nincs ilyen do fájlunk, írjuk do fájlba a változót el állító parancsokat, hogy kés bb is tudjuk használni - korcsoport.do
korcsoport do eleje
capture drop korcs capture - a parancsot végrehajta, de az outputot - bele- értve a hibaüzenetet - nem mutatja, hiba esetén nem áll meg gen byte korcs = 0
replace korcs = 1 if kor > 14 replace korcs = 2 if kor > 19 replace korcs = 3 if kor > 24 replace korcs = 4 if kor > 29 replace korcs = 5 if kor > 39 replace korcs = 6 if kor > 49 replace korcs = 7 if kor > 59 replace korcs = 8 if kor > 69 replace korcs = 9 if kor > 74 label var korcs "Korcsoport"
capture label drop korcs
label define korcs 0 "0-14" 1 "15-19" 2 "20-24" 3 "25-29" ///
4 "30-39" 5 "40-49" 6 "50-59" 7 "60-69" 8 "70-74" 9 "75 vagy több"
három / karakter = a parancs folytatódik a következ sorban label values korcs korcs
korcsoport.do vége
Akitivitási ráták korcsoport és nemek szerint tab korcs sex [w=wei],sum(aktiv)
tab korcs sex [w=wei],sum(aktiv) nost nofr noobs ábrák
graph bar aktiv [w=wei] if sex==1 & a15==2,over(korcs) a15==2 - csak 15-74 évesek ábracímmel, feliratokkal, elmentve az ábrát
graph bar aktiv [w=wei] if sex==1 & a15==2,over(korcs) ///
t1("Férfiak") b1title("korcsoport") ytitle("aktívak aránya") ///
saving(akt_ffi, replace)
graph bar aktiv [w=wei] if sex==2 & a15==2,over(korcs) ///
t1("N k") b1title("korcsoport") ytitle("aktívak aránya") ///
saving(akt_no, replace)
a két ábra együtt (egymás alatt)
graph combine akt_ffi.gph akt_no.gph, cols(1) az y tengely skálája különbözik!
a kombinált ábra mentése
graph combine akt_ffi.gph akt_no.gph, cols(1) saving(akt_ffi_no, replace)
Mit állapíthatunk meg az aktivitás nemek és életkor szerinti alakulásáról?
Milyen különbség tapasztalható a férfiak és n k korcsoport szerinti aktivitásában?
Aktivitási ráták iskolai végzettség és nemek szerint tab educH sex [w=wei],sum(aktiv)nost nofr
ugyanez ábrában
graph hbar aktiv [w=wei],over(educH) over(sex) ///
ytitle("aktívak aránya") ///
saving(akt_isk, replace)
a cimkék miatt nem látjuk az ábrát - rövidebb cimkékkel graph hbar aktiv [w=wei], ///
over(educH, relabel(1"< 8 oszt." 2"8 oszt." 3"szakm." 4"gimn." 5"szakköz." ///
6"f iskola" 7"egyetem")) ///
over(sex, relabel(1"Férfiak" 2"N k"))ytitle("aktívak aránya") ///
saving(akt_isk_2, replace)
csak a 25 évesek és id sebbek - miért?
tab educH sex [w=wei] if kor > 24,sum(aktiv)nost nofr graph hbar aktiv [w=wei] if a15==2 & kor > 24, ///
over(educH, relabel(1"< 8 oszt." 2"8 oszt." 3"szakm." 4"gimn." 5"szakköz." ///
6"f iskola" 7"egyetem")) ///
over(sex, relabel(1"Férfiak" 2"N k"))ytitle("aktívak aránya") ///
saving(akt_isk_24felett, replace)
Mit állapíthatunk meg az aktivitás nemek és iskolai végzettésg szerinti alakulásáról?
Az aktivitás területi különbségei megyék szerint nemenként tab county sex [w=wei],sum(aktiv)
tab county sex [w=wei],sum(aktiv) nost nofr noobs ábra
graph hbar aktiv [w=wei] if sex == 1, over(county)
a skála módosítása, sorbarendezés csökken sorrendben
graph hbar aktiv [w=wei] if sex == 1, over(county, sort(1) descending) ///
ylabel(.4(.05).7) exclude0 saving(akt_megye_ffi, replace)
graph hbar aktiv [w=wei] if sex == 2, over(county, sort(1) descending) ///
ylabel(.3(.05).55) exclude0 saving(akt_megye_no, replace)
a kistérségi munkanélküliségi ráta nagysága szerint codebook rmnk 149 kistérség
sum rmnk 1,5-23 százalék közötti rátaértékek centile rmnk if a15 == 2, centile(10(10)90)
return list a centile utasítás végrehajtásakor elmentett eredmények
Számítás után elmentett eredmények - r() centile saves the following in r():
Scalars
r(N) number of observations
r(n_cent) number of centiles requested r(c_#) value of # centile
r(lb_#) #-requested centile lower confidence bound r(ub_#) #-requested centile upper confidence bound
Az elmentett eredményekr l részletesen:
help return
Users' Manual 13.6 Accessing results from Stata commands R 1671. o. saved results fejezet
A kistérségi munkanélküliségi ráta osztályközökbe sorolása gen byte mnkat = 1
replace mnkat = 2 if rmnk > r(c_1) replace mnkat = 3 if rmnk > r(c_2) replace mnkat = 4 if rmnk > r(c_3) replace mnkat = 5 if rmnk > r(c_4) replace mnkat = 6 if rmnk > r(c_5) replace mnkat = 7 if rmnk > r(c_6) replace mnkat = 8 if rmnk > r(c_7) replace mnkat = 9 if rmnk > r(c_8) replace mnkat = 10 if rmnk > r(c_9)
replace mnkat = . if a15 != 2 legyen hiányzó érték a mk. koron kívülieknél label var mnkat "Munkanélküliségi ráta osztályközökbe sorolva"
tab mnkat sex [w=wei], sum(aktiv) nofr nost
ábrák - felhasználva a korábban alkalmazott skálát graph hbar aktiv [w=wei] if sex == 1, over(mnkat) ///
ylabel(.4(.05).7) exclude0 saving(akt_mnrata_ffi, replace) graph hbar aktiv [w=wei] if sex == 2, over(mnkat) ///
ylabel(.3(.05).55) exclude0 saving(akt_mnrata_no, replace)
a kistérségi ráták megyei átlaga természetesen eltér tab county,sum(rmnk)
tabstat rmnk aktiv [w=wei],by(county) és az aktivitással korrelál Mit állapíthatunk meg az aktivitás területi különbségeir l?
Háztartás-összetétel szerinti különbségek
családi állapot: egyedül vagy párkapcsolatban él tab fstat
gen byte parkapcs = 0
replace parkapcs = 1 if fstat > 0 & fstat < 4 label var parkapcs "párkapcsolatban él"
gen byte egyedul = 0
replace egyedul = 1 if parkapcs != 1 label var egyedul "egyedülálló"
tab parka sex if a15==2,sum(aktiv)
tab korcs parka if sex == 1 & a15 == 2,sum(aktiv) tab korcs parka if sex == 1 & a15 == 2,sum(aktiv) nost tab korcs parka if sex == 2 & a15 == 2,sum(aktiv) nost
Mit állapíthatunk meg az aktivitás és a családi állapot összefüggésér l?
Gyereknevelés
Nincs olyan változónk, amely megmutatná, hogy kinek van gyereke, és hány gyereke van. Viszont a háztartás összes tagjának személyes jellemz it ismerjük - ennek alapján meg lehet állapítani a gyerekszámot.
Tanulmányozzuk a gyerekek.do programot!
- egen utasítás
- esetszámra hivatkozás a parancsban: változónév[_esetszám]
do gyerekek.do
eredmények ellen rzése
list htazon family korH fstat apa anya gyerdb tab gyerdb sex
gyerekszám és aktivitás tab gyerdb,sum(aktiv)
by sex, sort:tab gyerdb,sum(aktiv)
4 és több gyerek kerüljön egy kategóriába gen gyszam = gyerdb
replace gyszam=4 if gyszam>4 & gyszam!=.
label define gyszam 4"4 és több"
label values gyszam gyszam ábrák
graph bar aktiv [w=wei] if sex == 1,over(gyszam) saving(akt_gyerszam_ffi.gph, replace)
graph bar aktiv [w=wei] if sex == 2,over(gyszam) saving(akt_gyerszam_no.gph, replace)
gyerekek kora szerint
legfiatalabb gyerek korcsoportja változó gen byte fgyerek = 0
replace fgyerek = 4 if gydb1114 > 0 replace fgyerek = 3 if gydb610 > 0 replace fgyerek = 2 if gydb35 > 0 replace fgyerek = 1 if gydb02 > 0
label define fgyerek 1"0-2 év" 2"3-5 év" 3"6-10 év" 4"11-14 év" 0"nincs gyerek"
label values fgyerek fgyerek
by sex,sort:tab fgyerek, sum(aktiv) by prefix parancs: „by varlist: stata_cmd”
help by
k
graph bar aktiv if sex == 2,over(fgyerek) korcsoport szerint bontva
graph hbar aktiv [w=wei] if sex == 2 & korH>14 & korH<60,over(fgyerek) over(korcs) graph hbar aktiv [w=wei] if sex == 2 & korH>14 & korH<60,over(fgyerek) over(korcs) ysize(7) saving(akt_fgykor_no.gph,replace)
elemszámok!!!
tab korcs fgyerek [w=wei] if sex == 2 & korH>14 & korH<60, sum(aktiv) férfiak
graph bar aktiv [w=wei] if sex == 1,over(fgyerek)
graph hbar aktiv [w=wei] if sex == 1 & korH>14 & korH<60,over(fgyerek) over(korcs) ysize(7) saving(akt_fgykor_ffi.gph,replace)
elemszámok
tab korcs fgyerek [w=wei] if sex == 1 & korH>14 & korH<60, sum(aktiv) Mit állapíthatunk meg a gyerekszám és az aktivitás összefüggésér l?
Többváltozós becslések
0/1 (dummy) változók a becsléshez iskolai végzettség
gen byte isk = educH
replace isk = 6 if isk == 7 fels fokú végzettségek összevonása label values isk educH
tab isk, gen(ed) dummy változók létrehozása korcsoport
tab korcs, gen(kcs) budapest gen budapest = 0
replace budapest = 1 if county == 1 Modellek
korcsoport (30-40), iskolai végz. (8 o.), egyedülálló, gyerekszám férfiak
logit aktiv kcs2-kcs4 kcs6 kcs7 ed1 ed3-ed6 egyedul gyerdb rmnk budapest if sex == 1 &
age < 60 k
logit aktiv kcs2-kcs4 kcs6 kcs7 ed1 ed3-ed6 egyedul gyerdb rmnk budapest if sex == 2 &
age < 57
Az el rehozott öregségi nyugdíj korhatárai 2006-ban: n k 57 év, férfiak 60 év
2008-ban: n k 57 év, férfiak 60 év Forrás: Munkaer piaci Tükör 2009 Interakciós változók
gyerekszám*egyedülálló interakicók gen egy_gy02 = egyedul gydb02 gen egy_gy35 = egyedul gydb35 gen egy_gy610 = egyedul gydb610 gen egy_gy1114 = egyedul gydb1114 gen egy_gyerdb = egyedul gyerdb egyedülálló es nincs gyereke gen byte egyngy = 0
replace egyngy = 1 if gyerdb == 0 & egyedul == 1
label var egyngy "egyedülálló és nincs gyereke"
A Nagy(2000) cikkben használt modellek - log file-ba írjuk log using aktiv2006_2.log, replace
férfiak
logit aktiv kcs2-kcs4 kcs6 kcs7 ed1 ed3-ed6 egyngy gyerdb egy_gyerdb rmnk budapest if sex == 1 & age < 60
marginális hatások margins, dydx(_all)
k
logit aktiv kcs2-kcs4 kcs6 kcs7 ed1 ed3-ed6 egyngy gydb02 egy_gy02 gydb35 egy_gy35 gydb610 egy_gy610 gydb1114 egy_gy1114 rmnk budapest if sex == 2 & age < 57
margins, dydx(_all) log close
További lehetséges változók:
településtípus részletesebben
megye (munkanélküliségi ráta helyett)
Stata utasítások a gyakorlatban:
Memória-allokálás memory
set memory
Stata állomány beolvasása use fájlnév
Adatállomány és változók jellemz i describe
Táblázat tabulate
Átlagok és más mutatók táblázatos formában tabstat
Új változó létrehozása, változó módosítása:
generate replace Cimkézés label var(iable) label define label values
label drop Ábrakészítés:
graph bar graph hbar graph combine
Percentilisek számítása centile
Változó jellemz i codebook
Számítások után elmentett eredmények return
Adatok listázása list
Kétérték (0/1, dummy) változók létrehozása kategoriális változókból:
tab var, gen(newvar) Logitmodell
logit
Marginális hatások számítása margins
Függelék a gyakorlathoz:
A gyakorlatanyagot tartalmazó do fájl