* PS4 - Answer Key version 15 clear set more off use "C:\Users\Lorena Barberia\Dropbox\FLS 6183\2018\Lab 4\nes1996_modif.dta", clear * Ex 1 * 1. X and Z are dummy variables; * Analisando o banco de dados percebemos que há um número significativo de * missings tanto para wmnmvt quanto para faminc. Nesse sentido, quando iremos criar * dummies temos que estar atentos para deixar as observações missings como missings. *Women's Movement sum wmnmvt, detail kdensity wmnmvt tab wmnmvt gen wmnmvtdummy = 0 replace wmnmvtdummy = 1 if wmnmvt>=62.74 replace wmnmvtdummy = . if missing(wmnmvt) tab wmnmvtdummy *Income sum faminc, detail kdensity faminc tab faminc gen incomedummy = 0 replace incomedummy = 1 if faminc>=20 replace incomedummy = . if missing(faminc) tab incomedummy tabstat hillary wmnmvt faminc, stat(mean sd p10 p25 p50 p75 p90) long col(stat) *B - Estime o modelo * OBS.Dado que o modelo utiliza uma variável de interação, precisamos criá-la. *Interação gen wmnincome_dummy = wmnmvtdummy*incomedummy *O modelo de regressão com as variáveis dicotômicas regress hillary wmnmvtdummy incomedummy wmnincome_dummy *C - Calcular os Valores Preditos *Pouco Apoia Women's Moviment e tem Baixa Renda lincom 1*_cons *Apoia Women's Moviment e tem Baixa Renda lincom 1*_cons + 1*wmnmvtdummy *Pouco Apoia Women's Moviment e tem Alta Renda lincom 1*_cons + 1* incomedummy *Apoia Women's Moviment e tem Alta Renda lincom 1*_cons + 1* wmnmvtdummy +1*incomedummy + 1*wmnincome_dummy // Alternativamente, o exercício inteiro pode ser resolvido usando o comando margins *OBS. Para calcular o efeito marginal utilizando o comando margins, temos que ficar atentos a * indicar a interação com o símbolo # e antes das variáveis explicativas precisamos indicar se * cada uma delas é contínua c. ou dicotômica i. regress hillary i.wmnmvtdummy##i.incomedummy *Pouco Apoia Women's Moviment e tem Baixa Renda margins, at( wmnmvtdummy = (0) incomedummy = (0) ) *Apoia Women's Moviment e tem Baixa Renda margins, at( wmnmvtdummy = (1) incomedummy = (0) ) *Pouco Apoia Women's Moviment e tem Alta Renda margins, at( wmnmvtdummy = (0) incomedummy = (1) ) *Apoia Women's Moviment e tem Alta Renda margins, at( wmnmvtdummy = (1) incomedummy = (1) ) * A more succint version of the command margins wmnmvtdummy incomedummy wmnmvtdummy#incomedummy, atmeans * Now let's look at the plot using marginsplot marginsplot, xdimension(incomedummy ) xlab(-.25 " " 0 "Low Income" 1 "High Income" 1.25 " ", notick) marginsplot, xdimension(wmnmvtdummy ) xlab(-.25 " " 0 "Anti-Feminist" 1 "Feminist" 1.25 " ", notick) ******************************************************************************************** * Exercício 2 * 2. X is a dummy and Z is a categorical variable; * With Stata commands treating income as categorical gen wmnmvtdummy_faminc=wmnmvtdummy*faminc regress hillary wmnmvtdummy faminc wmnmvtdummy_faminc regress hillary i.wmnmvtdummy##i.faminc * With Stata commands treating income as continous regress hillary i.wmnmvtdummy##c.faminc margins, at(faminc=(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24) wmnmvtdummy=(0 1)) marginsplot, xdimension(faminc) * Or, equivalently margins, at(faminc=(1(1)24) wmnmvtdummy= (0 1)) marginsplot * using command for adjacent values to assess if differences are statistically different from 0. regress hillary i.wmnmvtdummy##i.faminc margins ar.faminc, dydx(wmnmvtdummy) contrast(nowald) marginsplot, yline(0) * With interflex ssc install interflex, replace all interflex hillary wmnmvtdummy faminc, vce(r) ylab(hillary) dlab(wmnmvtdummy) xlab(faminc) ******************************************************************************************** * Exercício 3 * 3. X is a continous and Z is a categorical variable; gen wmnmvt_faminc=wmnmvt *faminc regress hillary wmnmvt faminc wmnmvt_faminc * In Stata margins code regress hillary c.wmnmvt##i.faminc margins, dydx(wmnmvt) at(faminc=(1(7)24) wmnmvt=(0(20)100)) * Simulating a one unit change in wmnmvt regress hillary c.wmnmvt##i.faminc quietly predict double wmnmvt0 quietly replace wmnmvt=wmnmvt+1 quietly predict double wmnmvt1 gen double diff = wmnmvt1-wmnmvt0 sum diff ******************************************************************************************** * Exercício 4 *X and Z are continuous variables * OBS.Dado que o modelo utiliza uma variável de interação, precisamos criá-la. *O modelo de regressão com as variáveis "contínuas" regress hillary wmnmvt faminc wmnfaminc *B - Calcular o efeito marginal de Women's Movement e Income sobre Hillary usando Margins *OBS. Para calcular o efeito marginal utilizando o comando margins, temos que ficar atentos a * indicar a interação com o símbolo # e antes das variáveis explicativas precisamos indicar se * cada uma delas é contínua c. ou dicotômica i. regress hillary c.wmnmvt##c.faminc margins, dydx(wmnmvt) at(faminc=(1(1)24)) // O comando dydx calcula a derivada parcial do modelo em relação a wmnmvt regress hillary c.wmnmvt##c.faminc margins, dydx(faminc) at(wmnmvt=(0(10)100)) // O comando dydx calcula a derivada parcial do modelo em relação a faminc // Usando margins e marginsplot regress hillary c.faminc##c.wmnmvt * (Caso 1) margins, dydx( faminc ) continuous at( wmnmvt = (0(10)100) ) marginsplot, xdimension(at(wmnmvt)) recast(line) recastci(rline) /// ciopts(lpattern(dash)) ytitle(Marginal Effect of Income) /// xtitle(Women’s Movement) /// title(Marginal Effect of Income on Hillary) /// subtitle((Given variation in Women’s Movement Score)) * Using interflex interflex hillary wmnmvt faminc , type(linear) xlab(faminc) ylabel(me of wmnmvt on hillary) interflex hillary faminc wmnmvt, type(linear) xlab(wmnmvt) ylabel(me of income on hillary) *****************************************************************************************************