*Løsninger til opgaver i "Stata - en praktisk introduktion , 2. udgave" *Numrene refererer til opgavenumrene i teksten ***************************************************** *********************KAPITEL 2*********************** ***************************************************** *1: Åbner data use "C:\temp\Stata\DifferentGoods.dta", clear *2: Beskriver alle variable describe *3: Kodebog for alle variable codebook *4: Slår -more- fra set more off, permanently *5:Kodebog igen codebook *11: Kodebog for gst codebook gst *12 Describe igen describe *13: Noter for alle variable notes *14: Kodebog med noter codebook, notes *15: Åbner databrowseren browse *19: Sorterer data stigende efter recycle sort recycle *20: Frekvensfordeling for elecsystem tabulate elecsystem *21: Frekvensfordeling for elecsystem inkl missing tabulate elecsystem, missing *23: Frekvensfordeling for elecsystem uden labels tabulate elecsystem, missing nolabel *24: Codebook for elecsystem codebook elecsystem *25: Frekvensfordeling for tre variable tab1 eu seaaccess recycle *26: Inspect for alle variable inspect *27: Histogram for recycle histogram recycle, frequency *29: summarize //summarize for alle vriable med standard visning summarize, detail //summarize med additional statistics *30: Gentager nogle kommandoer *a) summarize, detail *b) inspect *c) Histogram for organic histogram organic, frequency *d) Kodebog codebook *32: *a) Overfører use- og describe-kommandoen use "C:\temp\Stata\DifferentGoods.dta", clear describe *b) Histogram for gdpcap histogram gdpcap, frequency *35: Gemmersættet data med navnet DifferentGoodsCh2.dta save "C:\temp\Stata\DifferentGoodsCh2.dta" *37: Åbner hjælpen til codebook help codebook *39: Åbner hjælpefilen for summarize help summarize *Åbner dialogboksen til codebook db codebook *40: Åbner hjælpefilen til codebook help codebook ***************************************************** *********************KAPITEL 3*********************** ***************************************************** *43: Åbner data fra forrige kapitel use "C:\temp\Stata\DifferentGoodsCh2.dta", clear *45: Tildeler labels til urban og female label variable urban "Urbanization" label variable female "Females' share of population" *46 b): Tildeler labels til education label variable education "Tertiary education (share)" *47: *a) Tildeler note til frac notes frac: Ethnic fractionalization (late 1990s) from Alesina et al. 2003 *b) Tildeler label label variable frac "Ethnic fractionalization" *c) Redigerer noten notes replace education in 1: Share of population above 25 with a tertiary education (in 2001) *48: Viser eksisterende value labels label list *49: Tilknytter noyesLB til eu label values eu noyesLB *50: Opretter random1, random2, text og welfarestate generate random1 = . //a) generate random2 = . //a) generate str text = "" //b) generate byte welfarestate = . //c) browse //d) codebook random1 random2 text welfarestate //d) *51: Indtastning af tal og tekst replace random1 = 1.1 in 1 replace random1 = 2.2 in 2 replace random2 = 1.2 in 1 replace random2 = 1.3 in 2 replace text = "test" in 1 replace text = "retest" in 2 *52: Opretter value label med navnet welfareLB label define welfareLB 1 "Conservative" 2 "Liberal" 3 "Socialdemocratic" //a) label values welfarestate welfareLB // b) tilknytter labelen til variablen welfarestate describe welfarestate // c) tjekker med describe *53: *a): Indtater data replace welfarestate = 1 in 1 replace welfarestate = 1 in 2 replace welfarestate = 1 in 7 replace welfarestate = 1 in 8 replace welfarestate = 1 in 9 replace welfarestate = 1 in 14 replace welfarestate = 1 in 26 replace welfarestate = 1 in 17 replace welfarestate = 2 in 13 replace welfarestate = 2 in 27 replace welfarestate = 3 in 5 replace welfarestate = 3 in 18 replace welfarestate = 3 in 25 *b) Tildeler varibel-label label variable welfarestate "Welfare state regime" *c): Tildeler note notes welfarestate: Data are entered 07.10.2013. Source: Esping-Andersen, The three world of welfare capitalism, 1990. *54: sletter variable drop random1 random2 text *55: summarize for gst, git, pm4 og gdpcap ; bestilt med bindestreg summarize gst-gdpcap *56: *a) Gemmer datasættet med et nyt navn save "C:\temp\Stata\DifferentGoodsCh3.dta" *b) Sletter observationer, der ikke er kategoriseret som socialdemokratiske drop if welfarestate !=3 *d) Finder BNP pr indbygger summarize gdpcap *e) Åbner det gemte datasæt use "C:\temp\Stata\DifferentGoodsCh3.dta",clear *57: Finder BNP for socialdemokratiske lande summarize gdpcap if welfarestate==3 ***************************************************** *********************KAPITEL 4*********************** ***************************************************** *58: Åbner nyt datasæt use "C:\temp\stata\DanishElectionStudy2005.dta", clear // a+b) åbner data describe //c) beskriver data browse //d) åbner datamatricen *59: Søger efter oplysninger om køn lookfor sex gender *60: generate gender1 = v312 //a) kopierer v312 til gender1 codebook v312 gender1 //b) kodebog *61: clonevar gender = v312 //a) kopierer med clonevar codebook v312 gender* //b) kodebog drop gender1 //c) sletter køn_gen *62: Flytter gender til starten af datasættet order gender *63: Åbner dialogboksen til codebook db codebook *64: Dialogboks for recode findes under "Data > Create or change data > Other variable-transformation commands > Recode categorical variable" *65: Kodebog for variablen gender codebook gender *66: recode gender (2=0), generate(male) //omkoder gender til male codebook male //kodebog for male *67: Krydstabulering mellem gender og male tabulate gender male *68: drop male //a) sletter male recode gender (1=1 "Male") (2=0 "Female"), generate(male) label(FeMaLB) //b) omkoder og tildeler labels codebook male //c) *69: codebook v314,ta(100) //a) inspicerer kodning recode v314 (1=1 "Denmark") (2 3 10 = 2 "Western") (nonmissing = 3 "Non-Western"), gen(birthplace) label(birthLB) //a)omkoder og tildeler value labels label variable birthplace "Country of birth, 3 categories" // c) tildeler variable-labels tabulate v314 birthplace //d) kontrollerer omkodning *70: codebook v20, tabulate (100) // a) inspicerer kodning af v20 recode v20 (1 2 5 7 10 = 0 "Red") (3 4 6 8 9=1 "Blue") (nonmissing=.), generate(blue) label(rbLB) //a) omkoder og tildeler value-label label variable blue "Red/blue vote" //b)tildeler variabel-label tabulate blue //c)undersøger stemmefordelingen *71: Frekvensfordeling for v20 tabulate v20 *72: Inspicerer partychoice tabulate partychoice codebook partychoice, tabulate(100) *73: codebook v351, tabulate (100) //a) viser oplysninger om v351 recode v351 (14 = .a) (15=.b) (16=.c) (17=.d) (18=.e) (19=.f), generate(partychoicetoday) //a)omkoder værdierne 13-19 til missing label copy V351 PaChToDLB //b) kopierer value-label til PaChToDLB label values partychoicetoday PaChToDLB //c)tilknytter labelen til variablen *74: label define PaChToDLB 1 "Social Democrats" 2 "Social Liberals" 3 "Conservatives" 4 "Centre Democrats" 5 "Socialist People’s Party" /// 6 "Christian Democrats" 7 "Minority Party" 8 "Danish People’s Party" 9 "Liberals" 10 "Leftwing Alliance" /// 11 "Unaffiliated candidate" 13 "Other party" .a "Voted blank" .b "Don’t remember" .c "Decline" .d "Will not vote" /// .e "Ineligible to vote" .f "Other", replace //a) redigerer value labels codebook partychoicetoday, tabulate(100) //b) kodebog *75: codebook v188 v195 v224 v226 //a) inspicerer variablene med kodebogen recode v188 v224 v226 (1=5) (2=4) (4=2) (5=1) (8=.), generate (intol1 intol3 intol4) //b) vender disse variable om og sorterer missing fra recode v195 (8=.), generate(intol2) //b) sorterer missing fra tab1 intol* //c)inspicerer fordelingerne; det fremgår at v222 om udvisning fremkalder flest fremmedskeptiske svar *76: codebook v137-v144 //inspecerer variablene recode v137-v144 (1=0) (2=1) (3=.a) (8=.b), prefix(agreeB_) //omkoder til agreeB_v137 osv *77: Omkoder v357 til en 4 delt variabel inkl. value-labels og variabel-label recode v357 (65/100 = 4 "65+") (50/65 = 3 "50-64") (30/50=2 "30-49") (1/30=1 "<30"),generate(age4cat) label variable age4cat "Age, 4 categories" *78: tabulate v357 //a)frekvensfordeling for alder tabulate partychoicetoday if v357 == 17, missing //b)frekvensfordelig for partychoicetoday for 17-årrige inkl. missing *79: clonevar partychoicetoday20 = partychoicetoday //kopierer til ny variabel replace partychoicetoday20 = .e if v357 < 20 //omkoder for respondenter under 20 år *80: codebook male v357 //kodebog for variable clonevar partychoicetoday_male30 = partychoicetoday //opretter partivalgnu_kønalder som kopi af partivalgnu replace partychoicetoday_male30 = .e if male==1 & v357 <30 //erstatter med .e hvis respondenten er mand og under 30 år *81 tabulate partychoice, generate(party) //a) browse partychoice party1-party11 //b) *85: Gemmer datasættet med et nyt navn save "C:\temp\stata\Election05Ch4.dta" ***************************************************** *********************KAPITEL 5*********************** ***************************************************** *86: Starter log capture log close log using "C:\temp\Stata\Ch5", text replace *87: Søger efter catplot search catplot *88: Søger efter gr0002_3 search gr0002_03 *89: Åbner datasættet use "C:\temp\Stata\Election05Ch4.dta", clear *90: Frekvensfordeling for partychoicetoday tabulate partychoicetoday *91: Lagkagediagram i farver graph pie, over(partychoice) note(Kilde: Valgundersøgelsen 2005) //a) lagkagediagram i farver graph pie, over(partychoice) sort(blue) note(Kilde: Valgundersøgelsen 2005) //b) sorteret efter regeringspræference *92: Catplot for partychoice catplot partychoice,percent *93: Histogram for partivalg histogram partychoice, discrete percent *94: Histogram med afstand histogram partychoice, discrete percent gap(10) *95: Ændrer Y-label og indsætter linje ved 2% histogram partychoice, discrete percent gap(10) ytitle(Stemmefordeling (%)) yline(2, lpattern(dash)) *96: Inkluderer partinavne histogram partychoice, discrete percent gap(10) ytitle(Stemmefordeling (%)) yline(2, lpattern(dash)) xlabel(, valuelabel) *97: Inkluderer alle partinavne histogram partychoice, discrete percent gap(10) ytitle(Stemmefordeling (%)) yline(2, lpattern(dash)) xlabel(1(1)11, valuelabel) *98: Drejer labels histogram partychoice, discrete percent gap(10) ytitle(Stemmefordeling (%)) yline(2, lpattern(dash)) xlabel(1(1)11, angle(forty_five) valuelabel) *99: Fjerner label på X-aksen og tilføjer noter histogram partychoice, discrete percent gap(10) ytitle(Stemmefordeling (%)) yline(2, lpattern(dash)) xtitle("") xlabel(1(1)11, angle(forty_five) valuelabel) note(Stiplede linje indikerer spæregrænsen (2%); Kilde: Valgundersøgelsen 2005) scheme(Lean2) *100: Opsplitter forrige kommando så den er nemmere at læse histogram partychoice, discrete percent gap(10) ytitle(Stemmefordeling (%)) yline(2, lpattern(dash)) xtitle("") /// xlabel(1(1)11, angle(forty_five) valuelabel) note(Den stiplede linje indikerer spærregrænsen (2%); Kilde: Valgundersøgelsen 2005) scheme(Lean2) *101: Danner dummyvariable på baggrund af partychoicetoday tabulate partychoicetoday, generate(partytd) *102: ci partytd3, binomial //a) 95% konfidensinterval for andelen at observationerne der angivar at de ville stemme på De Konservative bitest partytd6==0.02 //b)Test for om andelen af observationene der angiver at de vil stemme på Kristendemokrateren er lig med 2% *103: codebook v252, tabulate(20) //a)kodebog for v252; tabulate(20) bevirker at der vises en frekvensfordeling selvom der er mere end 10 unikke værdier recode v252 (88=.), generate(lrplacement) //b)omkoder til lrplacement, hvor Ved ikke er kodet til missing summarize lrplacement, detail //c) summarize for lrplacement *104: Deskriptive statistikker for lrplacement og v357 tabstat lrplacement v357, statistics( mean iqr ) columns(variables) *105: Histogrammer for lrplacement histogram lrplacement // histogram for lrplacement, kontinuerlig specifikation histogram lrplacement, discrete // histogram for lrplacement, diskret specifikation *106: 4 histogrammer med forskellige målestokker på y-aksen histogram lrplacement, discrete histogram lrplacement, discrete fraction histogram lrplacement, discrete frequency histogram lrplacement, discrete percent *107: ci lrplacement //a) 95% konfidensinterval ci lrplacement,level(99) //a) 99% konfidensinterval ttest lrplacement == 5 //b) t-test for om gennemsnittet for lrplacement er lig 5 *108: Gemmer log close //b) lukker log-filen save "C:\temp\Stata\Election05Ch5.dta" //c) gemmer data *109: Gentager opgave 90 tabulate partychoicetoday ***************************************************** *********************KAPITEL 6*********************** ***************************************************** *113: capture log close log using "C:\temp\Stata\Ch6", text replace use "C:\temp\Stata\Election05Ch5.dta", clear //Åbner datasættet db tabulate2 // dialogboksen til krydstabulering *114: codebook v180 recode v180 (1=0 "tax cuts") (2=1 "service") (8=.), generate(service) label(serviceLB) //omkoder og tildeler value-labels lab var service "Service (vs. tax cuts)" //tildeler variabel labels tabulate service male //krydstabulering *115: Krydstabularing med relative (kolonne-)frekvenser tabulate service male, column *116: catplot service male, percent(male) scheme(lean2) catplot service male, percent(male) stack asyvars scheme(lean2) *117: Sammenligning af to gruppers andele prtest service, by(male) *118: Krydstabulering af male og partychoice tabulate partychoice male, column *119: net install lambda, from(http://fmwww.bc.edu/RePEc/bocode/l) //a Installerer lambda lambda partychoice male //b *120: Catplot for male og partychoice catplot male partychoice, percent(male) //a *121: Chi2-test for male og partychoice tabulate partychoice male, chi2 column *122: tabulate blue v335,column //a catplot blue v335, percent(v335) //c *123: catplot blue v335, percent(v335) asyvars stack scheme(lean2) //a catplot blue v335, percent(v335) asyvars stack //b *124: Som opg 123 men med specificerede farver catplot blue v335, percent(v335) asyvars stack bar(1, color(red)) bar(2,color(blue)) *125: Gamma og tau-b tabulate rc_v188 age4cat, colum gamma taub *126: Catplot for age4cat og v188 catplot v188 age4cat, percent(age4cat) asyvars stack scheme(lean2) *127: Dotplot for male og lrplacement graph dot lrplacement, over(male) scheme(lean2) *128: Dotplot fra opg 127, med tilpasninger graph dot (mean) lrplacement , over(male) scheme(lean2) exclude0 yscale(range(5 6)) /// ylabel(5(0.2)6) ytitle("Gennemsnit, lrplacement") *129: ttest for male og lrplacement ttest lrplacement, by(male) *130: Test af varianshomogenitet robvar lrplacement, by(male) *131: recode v337 (8=.) //a mean lrplacement, over(v337) //b *132: graph dot (mean) lrplacement , over(v337) scheme(lean2) exclude0 yscale(range(4.6 6.2)) /// ylabel(4.6(0.2)6.2) ytitle("Gennemsnit, lrplacement") *133: oneway lrplacement v337,tabulate *134: correlate lrplacement v357 pwcorr lrplacement v357 *135: correlate intol* pwcorr intol*, obs pwcorr intol*, obs listwise *136: Pairwise correlation med signifikanstest pwcorr lrplacement v357, sig *137: Scatterplot scatter lrplacement v357 *138: Sunflower-plot sunflower lrplacement v357 *139: save C:\temp\Stata\Election05Ch6.dta //gemmer datasættet use C:\temp\Stata\DifferentGoodsCh3.dta //åbner datasæt *140: Scatterplot scatter gst git //a) scatterplot pwcorr gst git,sig //b) korrelation og P-værdi *141: Scatterplot via menuen twoway (scatter gst git) *142: Samme plot, men med landenavne twoway (scatter gst git, mlabel(country)) *143: twoway (scatter gst git, mlabel(country)) (lfit gst git) //som før men med OLS linje twoway (scatter gst frac, mlabel(country)) (lfit gst frac) //nye variable *144: Samme plots, med navne twoway (scatter gst git, mlabel(country)) (lfit gst git) , name(scat_gst_git) twoway (scatter gst frac, mlabel(country)) (lfit gst frac) , name(scat_gst_frac) *145: set autotabgraphs on, permanently //fanevisning af grafer twoway (scatter gst git, mlabel(country)) (lfit gst git) , name(scat_gst_git, replace) twoway (scatter gst frac, mlabel(country)) (lfit gst frac) , name(scat_gst_frac, replace) *147: Konfidenintervaller med tre stikprøvestørrelser cii 250 0.52 cii 500 0.52 cii 1000 0.52 *148: Gamma-koefficient for sammenhængen mellem var3 og var4 tabi 30 20 \ 40 10 \ 45 5, gamma *149: Åbner hjælpefilen til tabulate h tabulate twoway *150: use "C:\temp\Stata\Election05Ch6.dta", clear //a tab service male, gamma taub //b return list //c *151: Beregner gamma display r(gamma) *152: Beregner gamma med standardfejl display r(gamma)/r(ase_gam) *153: Beregner P-værdi og tau-b display normal(r(taub)/r(ase_taub)) log close ***************************************************** *********************KAPITEL 7*********************** ***************************************************** *154: log + Åbner data capture log close log using "C:\temp\Stata\Ch7", text replace use "C:\temp\Stata\Election05Ch6.dta", clear *155: Kodebog codebook rc_v184 rc_v188 rc_v195 rc_v224 rc_v226 *156: recode rc_v184 (1=1) (2=3) (3=5) //omkoder rc_v184 til ny variationsbredde recode rc_v188 rc_v224 rc_v226 (1=5) (2=4) (3=3) (4=2) (5=1) //vender items *157: item-item-analyser med gamma og Pearsons r tab2 rc_*,gamma pwcorr rc_* *158: reliabilitetstest alpha rc_* , item casewise *159: danner tempindeks, kun observationer med mindst to gyldige værdier medtages alpha rc_* , min(2) generate(tempscale) item *160: su tempscale //summarize for indekset generate intolerance = ((tempscale-1)/(5-1))*100 //reskalerer, så det nye indeks går fra 0-100 *161: sum intolerance,detail //summarize for indekset histogram intolerance //histogram drop tempscale //sletter tempscale *162 foreach var in v188 v195 { recode `var' (8=.a),generate(`var'mis) sum `var'mis replace `var'mis = r(mean) if `var'mis ==.a } *163: sletter og gemmer drop v188mis v195mis save "C:\temp\Stata\Election05Ch7.dta" log close ***************************************************** *********************KAPITEL 8*********************** ***************************************************** *164: starter log og åbner data capture log close log using "C:\temp\Stata\Ch8", text replace use "C:\temp\Stata\Election05Ch7.dta", clear *165: bivariat regression reg intolerance v357 *166: reg intolerance v357, beta //som før men med beta pwcorr intolerance v357, sig obs //pearsons r *167: reg intolerance male //mænd og kvinders fremmedskepticisme med regress ttest intolerance, by(male) //samme med ttest *168: tab v337, generate(durban) //danner dummevariable reg intolerance durban2-durban5 //sammenhængen mellem urbanisering og fremmedskepticisme med regress + dummyvariable *169: reg intolerance i.v337 //som foregående men med faktorvariable *170 testparm i.v337 *171 reg intolerance ib(3).v337 //som 169 men med kategori 3 som reference *172: codebook v314,tabulate(25) recode v314 (1=1 native) (nonmis=0 immigrant),generate(native) *173: reg intolerance v357 i.native i.male *174: reg intolerance v357 i.native i.male,robust *175: reg intolerance i.highschool //Model 1 reg intolerance i.highschool v357 i.native i.male //Model 2 reg intolerance i.highschool v357 i.native i.male i.v337 //Model 3 *176 reg intolerance i.highschool v357 i.native i.male i.v337 //Model 3 reg intolerance i.highschool v357 i.native i.male if e(sample) == 1 //Model 2 reg intolerance i.highschool if e(sample)==1 //Model 1 *177 reg intolerance i.highschool v357 i.native i.male i.v337 eststo m3 reg intolerance i.highschool v357 i.native i.male if e(sample) == 1 eststo m2 reg intolerance i.highschool if e(sample)==1 eststo m1 esttab m1 m2 m3 *178 esttab m1 m2 m3 using tabel1, r2 ar2 se *180 regress intolerance i.male v357 i.v337 //a margins v337, pwcompare(effects) //b margins v337, pwcompare(effects) nofvlabel //b *181 margins v337, pwcompare(effects groups) *182 margins v337, at((mean) _c male=0) save "C:\temp\Stata\Election05Ch8.dta" *183 net install gr0056, from(http://www.stata-journal.com/software/sj13-3) net install coefplot, from(http://fmwww.bc.edu/RePEc/bocode/c) *184 *Øverste graf i figur 8.2 regress intolerance i.male v357 i.v337 //regressionen margins v337 //estimerer gennemsnit marginsplot, /// recast(scatter) ///fjerner linjer mellem punkter ytitle(Intolerance) ///ændrer titlel på Y-aksen xtitle ("") ///fjerner titlen på x-aksen xlabel(, angle(20)) /// drejer labels på X 20 grader title("") ///fjerner overordnet titel scheme(s1mono) ///ændrer scheme note("Estimater med 95% konfidensintervaller") //tilføjer note *Nederste graf i figur 8.2 regress intolerance i.male v357 i.v337 //regressionen margins v337, pwcompare(effects) //estimerer forskelle marginsplot, /// horizontal unique recast(scatter) yscale(reverse) /// svært at forklare... xline(0) ///indsætter vertikal linje ytitle(Sammenligninger) /// ændrer titlen på Y-aksen title("") ///Fjerner titlen xtitle(Forskel) ///Ændrer titlel på X-aksen note("95 % konfidensintervaller""Grupper: 1: Rural, 2: Town, <10.000" /// tilføjer noter "3: Town, 10-50.000, 4: Town, 50-500.000, 5: Metropolitan area",span) /// do /// span rykker noten til venstre scheme(s1mono) //ændrer scheme *185 regress intolerance i.male v357 //regressionen marginscontplot v357, at1(18 (2) 80) /// ci ///tilføjer konfidensintervallet plotopts(ytitle("Intolerance") xtitle("Alder (år)") ///Ændrer titlen på X- og Y-aksen scheme(s1mono)) // Ændrer scheme *Kommandoerne bag figur 8.4 reg intolerance i.male v357 i.native //regressionen marginscontplot v357 male, /// plotopts(ytitle("Intolerance") xtitle("Age (years)") ///Ændrer titlen på X- og Y-aksen legend(ring(0) /// flytter forklairingen ind i grafen lab(1 "Female") lab(2 "Male")) /// ændrer labels note("The control variable urbanization is held at the observed values",placement(center)) ///note, centreret scheme(lean1)) // Ændrer scheme *186 reg intolerance i.male v357 i.native //regressionen marginscontplot v357 male *187 reg intolerance i.highschool v357 i.native i.male i.v337 eststo m3 reg intolerance i.highschool v357 i.native i.male if e(sample) == 1 eststo m2 reg intolerance i.highschool if e(sample)==1 eststo m1 coefplot /// starter coefplot (m1,label("Uden kontrol")) ///labler model 1 (m2,label("+køn, alder og fødeland")) /// labler model 2 (m3,label("+urbanisering")), /// labler model 3 keep(1.highschool) /// se forklaring ovenfor vertical /// specificerer at plottet skal være vertikalt level(99 95) scheme(s1mono) /// specificerer konfidensintervaller og scheme legend(row(1)) ///specificerer at forklaringen skal stå på én række ytitle("Koefficient, uddannelse") xlabel("") ///Tilføjer og fjerne titler på akserne note("Konfidensintervaller: 95% (bred) 99% (smal)",placement(center)) //tilføjer note, centreret *Simpel udgave coefplot m1 m2 m3, keep(1.highschool) ***************************************************** *********************KAPITEL 9*********************** ***************************************************** *188: capture log close log using "C:\temp\Stata\Ch9", text replace //a) starter log use "C:\temp\Stata\election05Ch8",clear //a) åbner data reg intolerance v357 male //b) regression acprplot v357, lowess //c) acpr-plot for alder *189: leverage-versus-residual-squared-plot lvr2plot *190: predict tempcooksd, cooksd //beregner cook's d display 4/e(N) //udregner kritisk værdi summarize tempcooksd if tempcooksd >(4/e(N)) //opsummerer observationer med kritiske værdier *191 browse if tempcooksd >(4/e(N)) & tempcooksd <. *192: avplots avplots *193: DFBETA predict tempdfbeta, dfbeta(v357) //a summarize tempdfbeta if abs(tempdfbeta) > 2/sqrt(e(N)) //b *194: Histogram *beregning af residualer, der gemmes i variablen 'tempresid': predict tempresid, residuals *Histogram, inkl. normalfordelingskurve, for residualernes fordeling: histogram tempresid, normal *195: q-q-plot qnorm tempresid *196: rvfplot,yline(0) //rvfplot rvpplot v357, yline(0) *rvpplot male, yline(0) *197: white's test estat imtest,white *198: VIF vif *199: drop temp* //rydder op *200 generate intol101 = intolerance + 1 //a) reskallerer intolerance generate lnintol = ln(intol101) //b) tranformerer intol101 regress lnintol v357 i.male //b) logartitmisk regression regress intolerance c.v357##c.v357 i.male //c) kvadratisk regression *201 marginscontplot v357, ci /// plotopts(ytitle("Intolerance") xtitle("Alder (år)") scheme(s1mono)) save "C:\temp\Stata\Election05Ch9.dta" //gemmer datasæt log close ***************************************************** *********************KAPITEL 10********************** ***************************************************** *202: Åbner data capture log close log using "C:\temp\Stata\Ch10", text replace use "C:\temp\Stata\GrowthCh10.dta", clear *203: regressionsmodellen reg meangrowth aidcap goodgov initial forinvest eduyears,robust //uden interaktion reg meangrowth aidcap goodgov c.aidcap#c.goodgov initial forinvest eduyears,robust //med interaktion *204: statistikker for variblene fra forrige estimation baseret på estimationssamplen estat summarize *205: Begegning af marginale effekter margins, dydx(aidcap) at(goodgov=(-1.8(0.2)1.8)) vsquish *206: marginsplot marginsplot *207: Illustration af Figur 10.5 marginsplot, /// starter kommandoen marginsplot recast(line) /// beder om en linje fremfor punkter recastci(rline) /// specificerer ar konfidensintervallet også skal tegner med linjer ciopts(lpattern(dash)) /// specificerer at konfidensintervallet skal tegnes med stiplede linjer yline(0) /// indsætter en linje ved y=0 xlabel(#5) /// nedjusterer antallet af tal på x-aksen legend(on /// beder om at få vist forklaring label(1 "95% konfidensinterval") /// specificerer forklaringen label(2 "Marginal effekt af ulandshjælp")) /// specificerer forklaringen xtitle("Institutionel kvalitet") /// indsætter alternativ titel på x-aksen ytitle("Marginal effekt af ulandshjælp") /// indsætter alternativ titel på y-aksen title("") /// fjerner den overordnede titel scheme(s1mono) // optimerer til sort/hvid-visning *208 summarize goodgov if e(sample),detail margins, dydx(aidcap) at(goodgov=(`r(p10)' `r(p50)' `r(p90)')) *209 sum goodgov if e(sample),detail margins, at(aidcap=(0 130) goodgov=(`r(p10)' `r(p50)' `r(p90)')) marginsplot, noci *Plottet bag figur 10.4 (ikke en opgave) marginsplot, noci ///marginsplot uden konfidensintervaller recast(line) ///fjerner punkterne ytitle("Gennemsnitlig årlig vækst (%)") ///ændrer titlen på Y-aksen xtitle("Ulandsbistand per capita ($)") /// ændrer titlen på X-aksen title("") ///fjerner titel legend (order(3 2 1) ///ændrer forklaringer label(1 "Lav institutionel kvalitet *") /// label(2 "Middel institutionel kvalitet *") /// label(3 "Høj institutionel kvalitet *")) /// note("*: P< 0,05; Lav, Middel, Høj institutionel kvalitet: 10. 50. og 90. percentil" /// "Kontrolvariable er holdt på deres observerede værdier") ///tilføjer noter scheme(s1mono) //ændrer scheme *210 summarize goodgov if e(sample),detail margins, dydx(aidcap) at(goodgov=(`r(min)' `r(mean)' `r(max)')) sum goodgov if e(sample),detail margins, at(aidcap=(0 130) goodgov=(`r(min)' `r(mean)' `r(max)')) marginsplot, noci ///marginsplot uden konfidensintervaller recast(line) ///fjerner punkterne ytitle("Gennemsnitlig årlig vækst (%)") ///ændrer titel på Y-aksen xtitle("Ulandsbistand per capita ($)") /// ændrer titel på X-aksen title("") ///fjerner titel legend (order(3 2 1) ///ædrer forklaringer label(1 "Lav institutionel kvalitet *") /// label(2 "Middel institutionel kvalitet ") /// label(3 "Høj institutionel kvalitet *")) /// note("*: P< 0,05; Lav, Middel, Høj institutionel kvalitet: minimum, middel og maximum" /// "Kontrolvariable er holdt på deres observerede værdier") ///tilføjer noter scheme(s1mono) //ændrer scheme *Figur 10.6 - ikke en opgave reg meangrowth c.aidcap##goodgov01 initial forinvest eduyears,robust //regressionen margins, dydx(aidcap) over(goodgov01) //marginale effekter marginsplot, ///marginsplot recast(scatter) /// ændrer fra linje til punkter yline(0) ///indsætter linje ved Y=0 xscale(range(-0.5 1.5)) /// udvider variationsbredden for X-aksen xtitle("Quality of Institutions") /// ændrer titel på X-aksen ytitle(Marginal effect of Foreign aid) ///ændrer titel på Y-aksen title("") ///fjerner overordnet titel scheme(s1mono) //ændrer scheme *Figur 10.7 - ikke en opgave reg meangrowth i.aidcap01##c.goodgov initial forinvest eduyears,robust //regressionen margins, dydx(aidcap01) at(goodgov=(-1.8(0.2)1.8)) //marginale effekter marginsplot , /// recast(line) /// beder om en linje fremfor punkter recastci(rline) /// specificerer at konfidensintervallet også skal tegnes med linjer ciopts(lpattern(dash)) /// specificerer at konfidensintervallet skal tegnes med stiplede linjer yline(0) /// indsætter en linje ved y=0 xlabel(#5) /// nedjusterer antallet af tal på x-aksen legend(on /// beder om at få vist forklaring label(1 "95% Confidence interval") /// specificerer forklaringen label(2 "Marginal effect")) /// specificerer forklaringen xtitle("Quality of institutions") /// indsætter alternativ titel på x-aksen ytitle("Marginal effect of aid on growth""(Difference between heavy and light recievers)") /// title("") /// fjerner den overordnede titel scheme(s1mono) // optimerer til sort/hvid-visning log close ***************************************************** *********************KAPITEL 11********************** ***************************************************** *211 net install spost9_ado, from(http://www.indiana.edu/~jslsoc/stata) *212 capture log close log using "C:\temp\Stata\Ch11", text replace use "C:\temp\Stata\election05Ch9",clear *213 codebook blue *214 codebook male v357 v337 v334 intolerance,tabulate(100) //a recode v334 (88=.) //b *215 logit blue i.male v357 i.v337 v334 intolerance *216 fitstat *217 margins, dydx(*) *218 margins, dydx(*) atmeans *219 margins, dydx(*) at(male=1 v337=3) atmeans //a margins, dydx(*) at(male=1 v337=1) atmeans //b *220 margins, at((p25) intolerance) at((p75) intolerance) *221 margins v337 *222 logit blue i.male v357 v334 i.v337 intolerance,or //metode 1 listcoef //metode 4 *223 listcoef, reverse *224 marginscontplot intolerance, ci *225 summarize intolerance if e(sample), detail marginscontplot intolerance, ci /// plotopts /// (ytitle("Gns. forudsagt sandsynlighed for blå stemme") /// xtitle("Intolerance") /// xline(`r(p25)' `r(p75)') /// note("Noter: 95% konfidensinterval. De lodrette streger repræsenterer hhv 25. og 75. percentiel") /// scheme(s1mono)) *226 margins v337 marginsplot *227 margins v337 marginsplot, /// recast(scatter) /// fjerner linjer mellem punkter ytitle(Gennemsnitlig forudsagt sandsynlighed for blå stemme) ///Y-titlen xlabel(, labsize(vsmall) angle(forty_five)) /// formindsker og drejer labels xtitle(Urbanisering) /// X-titlen xscale(range(0.5 5.5)) ///udvider X-aksen title("") //fjerner titel *228 logit blue intolerance predict tempprop1 twoway (lowess blue intolerance) (line tempprop1 intolerance,sort) *229 logit blue lnintol predict tempprop2 twoway (lowess blue lnintol) (line tempprop2 lnintol,sort) *230 logit blue i.male v357 v334 i.v337 intolerance summarize intolerance if e(sample)==1 generate tempvar = autocode(intolerance, 10, r(min), r(max)) egen ordvar1 = group(tempvar) logit blue i.male v357 v334 i.v337 i.ordvar margins ordvar,predict(xb) marginsplot drop tempvar log close ***************** ***Appendiks E*** ***************** *E1 use "C:\temp\Stata\Election05Ch6.dta",clear //a codebook blue male rc_v188 //b *E2 tabulate blue rc_v188,gamma //a bysort male: tabulate blue rc_v188,gamma //b *E3 catplot blue rc_v188, percent(rc_v188 male) over(male) asyvars stack ***************** ***Appendiks F*** ***************** *F1 use "C:\temp\Stata\Election05Ch6.dta" //a recode rc_v184 (1=1) (2=3) (3=5) //b)omkoder rc_v182 til ny variationsbredde recode rc_v188 rc_v224 rc_v226 (1=5) (2=4) (3=3) (4=2) (5=1) //b)vender items //c: gen Src_v184 = rc_v188 + rc_v195 + rc_v224 + rc_v226 gen Src_v188 = rc_v184 + rc_v195 + rc_v224 + rc_v226 gen Src_v195 = rc_v184 + rc_v188 + rc_v224 + rc_v226 gen Src_v224 = rc_v184 + rc_v188 + rc_v195 + rc_v226 gen Src_v226 = rc_v184 + rc_v188 + rc_v195 + rc_v224 foreach var in rc_v188 rc_v195 rc_v224 rc_v226 { tabulate S`var' `var', gamma nofreq } alpha rc_v184 rc_v188 rc_v195 rc_v224 rc_v226, casewise item //d