Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st: RE: re: missing dummy variable


From   "Wallace, John" <[email protected]>
To   <[email protected]>
Subject   RE: st: RE: re: missing dummy variable
Date   Thu, 11 Oct 2007 09:54:36 -0700

Thanks very much, Kit and Maarten.  This gives me a lot to think about.
I hadn't missed Kit's first hints about lincom, I was just unsure about
what to do with them.  :)

-JW

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Maarten buis
Sent: Thursday, October 11, 2007 8:09 AM
To: [email protected]
Subject: Re: st: RE: re: missing dummy variable

--- Maarten buis <[email protected]> wrote:
> I think that the display of this many parameters would call for a
> graph, so in the example below I show how I would add such
> information together into one graph. A lot of the tricks I use are
> explained here:
> http://home.fsw.vu.nl/m.buis/wp/pvalue.html

I have added some extra bells and wistles to the graph. I have probably
added too many bells and wistles, but 
  a) you can pick from this code whatever element you like, and
  b) it nicely illustrates that models focusing on the indidual means
of
     the different groups or on deviatons from a refence group, or a
     grand mean are just the same model.

Under normal surcomstances I would leave out the right y-axis and
probably the confidence interval around the grand mean, but that would
completely defeat the purpose of the original question.

*------------------ begin example ---------------
sysuse auto, clear
gen domestic = !foreign
rename make desc
gen make = word( desc,1)
tab make

xi3: regress mpg e.make
unab varlist : _I*
local test : subinstr local varlist " _" " + _", all
lincom -1*(`test')

sort make
by make : keep if _n == 1
keep make foreign

mata
b = st_matrix("e(b)")'

// remove constant
k = rows(b) - 1
b = b[1::k,1]

// add dropped level
b = st_numscalar("r(estimate)") \b

V = st_matrix("e(V)")
se = diagonal(cholesky(diag(V)))

// remove constant
se = se[1::k,1]

// add droped level
se = st_numscalar("r(se)") \ se

df = st_numscalar("e(df_r)")

ci = b :- invttail(df,0.025):*se, b :+ invttail(df,0.025):*se

idx = st_addvar("float",("b","lb","ub"))
st_store(.,idx,(b,ci))
end

egen xaxis = axis(b), label(make)

gen lb_mean = - invttail(e(df_r), 0.025)
gen ub_mean = invttail(e(df_r), 0.025)
gen mean = 0

forvalues mpg = 0(10)40 {
	local diff = `mpg' - _b[_cons]
	local newsc `"`newsc' `diff' "`mpg'" "'
}

local min = -_b[_cons]
sum ub, meanonly
local max = r(max)

twoway rarea lb_mean ub_mean xaxis, color(gs14) || /*
    */ line mean xaxis, clstyle(solid) ||/*
    */ rcap ub lb xaxis  || /*
    */ rcap ub lb xaxis, /*
    */ lpattern(blank) yaxis(2) || /*
    */ scatter b xaxis if foreign == 1, /*
    */ mcolor(red) msymbol(O) || /*
    */ scatter b xaxis if foreign == 0, /*
    */ mcolor(blue) msymbol(O)  /*
    */ xlab(1/23,valuelabel angle(45)) /*
    */ xtitle("") /*
    */ ytitle("mpg", axis(1))/*
    */ ytitle("deviation from grand mean", axis(2)) /*
    */ yscale(range(`min' `max') axis(1)) /*
    */ yscale(range(`min' `max') axis(2)) /*
    */ ylab(`newsc', axis(1)) /*
    */ ylab(-20(10)20, axis(2)) /*
    */ xsize(7) /*
    */ legend(order(- "Grand mean"        /*
                 */ 1 "95%" "conf. int."  /*
                 */ 2 "mean"              /*
                 */ -  " "                /*
                 */ -  "By make"          /*
                 */ 3 "95%" "conf. int."  /*
                 */ 4 "foreign"           /*
                 */ 5 "domestic" )        /*
           */ position(4) cols(1))
*------------------ end example ---------------

Hope this is useful,
Maarten

-----------------------------------------
Maarten L. Buis
Department of Social Research Methodology
Vrije Universiteit Amsterdam
Boelelaan 1081
1081 HV Amsterdam
The Netherlands

visiting address:
Buitenveldertselaan 3 (Metropolitan), room Z434

+31 20 5986715

http://home.fsw.vu.nl/m.buis/
-----------------------------------------


      ___________________________________________________________ 
Want ideas for reducing your carbon footprint? Visit Yahoo! For Good
http://uk.promotions.yahoo.com/forgood/environment.html
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index