• Nem Talált Eredményt

Gyakorlat: Munkaer -piaci mutatók id sorai

Munkaer -piaci mutatók id sorai

Aktivitási, foglalkoztatottsági és munkanélküliségi ráták id sora nemek szerint az 1993-2009. közötti id szakra a 2. negyedévek adatai alapján

clear

set mem 300000

A korábban új változókkal kiegészített 70. hullám adatait használjuk use alfsx70b

A munkaer piaci mutatókat tartalmazó változók:

d csoe active U sum csoe active U Ha nincsenek meg:

use alfsx70

gen active = 0 if kor > 14 & kor < 75 replace active = 1 if csoe == 1 replace active = 1 if csou == 1

label var active "Munkaer -piaci részvétel (aktivitás)"

gen U = 0 if active == 1 replace U = 1 if csou == 1 save alfsx70b, replace

Átlagokból és más statisztikákból álló adaállomány készítése - collapse tab U

collapse U alapértelmezés: átlag a teljes mintára list

help collapse use alfsx70b, clear

collapse (mean) mU=U (count) n=U [w=wei]

A munkanélküliek aránya súlyozással és az esetszám (esetszám = ahol az U változó értéke nem missing).

(mean): számítson átlagot; mU=U: mU legyen az U változó átlagát tartalmazó új változó neve; (count): számolja össze, hány nemhiányzó érték van; n=U: n legyen az U változó nemhiányzó értékeinek számát tartalmazó változó

list

Iskolai végzettség szerint bontva use alfsx70b, replace

collapse (mean) mU=U (count) n=U [w=wei], by(educH)

list így annyi megfigyelés lesz, ahány értéke van az educH változónak Iskolai végzettség és nem szerint bontva

use alfsx70b, replace

collapse (mean) mU=U (count) nU=U [w=wei], by(educH sex) list esetszám: educH*sex

Három ráta iskolai végzettség szerint, elemszámokkal use alfsx70b, replace

collapse (mean) mP=active mE=csoe1 mU=U (count) nP=active nE=csoe1 nU=U [w=wei], by(educH)

list

"Ráta változók" nemek szerint külön-külön, amelyek átlaga a nemre jellemz rátát adja, a másik nem esetében hiányzó az értéke.

Mire jó? A kapott állományban nem sokszorozzuk meg a megfigyelések számát a csoportosító változó értéke szerint, hanem egy megfigyeléshez kerülnek a csoportosító változó szerinti mutatók

aktivitási ráták use alfsx70b, replace

gen byte aktf = active if sex == 1 label var aktf "aktivitás, férfiak"

gen byte aktn = active if sex == 2 label var aktn "aktivitás, n k"

ellen rzés

tab sex [w=wei],sum(active) sum aktf aktn [w=wei]

foglalkoztatási ráták

gen byte foglf = csoe1 if sex == 1 label var foglf "foglalkoztatott, férfiak"

gen byte fogln = csoe1 if sex == 2 label var fogln "foglalkoztatott, n k"

tab sex [w=wei],sum(csoe1) sum foglf fogln [w=wei]

munkanélküliségi ráták

gen byte mnrf = U if active == 1 & sex == 1

label var mnrf "munkanélküli, aktívak között férfiak"

gen byte mnrn = U if active == 1 & sex == 2

label var mnrn "munkanélküli, aktívak között n k"

tab sex [w=wei],sum(U) sum mnrf mnrn [w=wei]

collapse active aktf-mnrn [w=wei]

list

eredmények mentése text fájlba táblázat formában outsheet using mutatok2009q2.xls, replace

Most több hullámban fogunk ilyen rátákat számítani, ehhez megtanuljuk, hogyan kell utasításokat ismételni

Stata utasítások ismétlése: foreach számokból álló lista

foreach sz of numlist 1 2 4 7 9 { dis `sz'

}

` - nyitó zárójel, ' - záró zárójel, `sz' - sz nev lokális makro behelyettesítése A makro a definiált lista elemeivel lesz egyenl egymás után sorban.

a nyitó zárójel a billenty zeten a Alt-Gr+7 a záró zárójel pedig a Shift+1

Példák a foreach használatára számokból álló lista 2

foreach n of numlist 1/20 { dis `n'

}

a pause paranccsal nyomon tudjuk követni, mi történik:

pause on bekapcsoljuk, álljon meg a végrehajtás a pause utasításra foreach n of numlist 1/8 {

pause `n' következik pause=utasítás, utána a kiírandó szöveg áll

q vagy end beírásával lehet folytatni a végrehajtást, BREAK beírásával megszakítani (csupa nagybet ) dis `n'

}

változólista

use alfsx70b, replace két változó

foreach v of varlist county sex { sum `v'

}

változólista tól-ig

foreach v of varlist county-sex { sum `v'

}

új változók létrehozása

foreach var of newlist z1-z20 {

gen `var' = runiform() runiform() véletlen szám 0-1 között }

d var*

sum var*

Rövidített adatállományok sok negyedévre – vlfs1.dta – vlfs70.dta use vlfs2, replace

des

use vlfs6, replace des

use vlfs42, replace d

use vlfs66, replace d

use vlfs70, replace d

Most a foreach numlist utasítást használjuk a program végrehajtására a munkaer -felmérés hullámain egymás után. A második negyedévi hullámokat használjuk, a 6.

hullámmal kezdünk, és minden 4. hullámon hajtjuk végre az utasításokat egymás után, egészen a 70. hullámig, ami 2009. 2. negyedév. A következ részt érdemes egy do fájlba írni.

mutatok.do

munkaer -piaci mutatók a 2. negyedévekre, 1993-2009 clear

set more off

more on/off: megáll-e egy képerny nyi eredmény megjelenítése után (on), vagy nem áll meg (off). A program futása közben nem kell billenty t nyomogatni, ha kikapcsoljuk foreach w of numlist 6(4)70 {

use "vlfs`w'" normál idéz jel, vlfs, nyitó szipla idéz jel, w, záró szimpla idéz jel, normál idéz jel

a munkaképes koron kívülieket töröljük keep if korH >= 15 & korH <= 74

aktivitás 0/1 változó gen active = 0

replace active = 1 if csoe1 == 1 | csou == 1

foglalkoztatottság 0/1 változónk van: csoe1 munkanélküliség 0/1 változónk van: csou állapot-változók létrehozása nemek szerint aktivitás

gen byte aktf = active if sex == 1

gen byte aktn = active if sex == 2 foglalkoztatottság

gen byte foglf = csoe1 if sex == 1 gen byte fogln = csoe1 if sex == 2 munkanélküliség

gen byte mnr = 0 if active == 1

replace mnr = 1 if mnr == 0 & csou == 1 gen byte mnrf = mnr if sex == 1

gen byte mnrn = mnr if sex == 2 év

gen ev = iyear

collapse – átlagokat kérünk

collapse (mean) ev active csoe1 csou aktf-mnrn [w=weight]

változók sorrendje

order ev active csoe1 csou mnr az év változó legyen az els a változólistában ezt kövesse a három rátaváltozó (majd a nemek szerinti változók) save afmnratak`w',replace

} itt ér véget a foreach parancs, ami az 57. oldalon kezd dött

a mutatókat tartalmazó fájlok összerakása

use afmnratak6 a 2. negyedévit beolvassuk a memóriába foreach n of numlist 10(4)70 { a 6., 10., 14. … 70. fájlok append

append using afmnratak`n' }

save afmnratak,replace dta file

outsheet using afmnratak.xls, replace mentés text fájlba táblázat formában mutatok.do vége

Futtatás:

do mutatok

Excelben lehet folytatni a szerkesztést, és ábrákat készíteni!

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

Adatok listázása list

list in +range, list if +feltétel

Átlagokból és más statisztikákból álló adatállomány készítése: collapse collapse clist [if] [in] [weight] [, options]

clist:

[(stat)] varlist [ [(stat)] ... ]

vagy: [(stat)] target_var=varname [target_var=varname ...] [ [(stat)] ...]

Új változó létrehozása, változó módosítása:

generate replace Táblázat tabulate Cimkézés:

label var(iable) label define label values

Stata utasítások ismétlése – foreach foreach of numlist – számokból álló lista:

foreach lname of numlist numlist { utasítások

}

foreach of varlist – változókból álló lista foreach lname of varlist varlist {

utasítások }

foreach of newlist – új változókból álló lista foreach lname of newlist newvarlist { utasítások

}

A program végrehajtásának felfüggesztése pause

Változók sorrendjének megadása order varlist

Adatok mentése text formában outsheet using filename

Függelék a gyakorlathoz:

A gyakorlatanyagot tartalmazó do fájl