In 1(c), we report only a point estimate, right?
1(d) Anyone know how to do two qqplot's on the same graphs?
Like in page 34 of http://gking.harvard.edu/g2001syl/files/cfMP.pdf
par(new = T) leaves a lot to be desired - some analogue of the points
or lines or abline commands would be nice...
1(e)
More seriously, setting "cond=T" in setx (which seems like the right
thing to do for the assignment, right?) causes two problems with sim.
First, it gives this warning "First Differences are not calculated in
conditional prediction models." (So I guess I do the FD by hand?)
Second, it starts using enormous amounts of memory, which causes R to
crash on my computer. I guess I could use the icegov servers, but
presumably there's something more fundamental that I'm missing here,
since 20,000 observations shouldn't need more than 1GB of memory...
The command that fails for me is:
sim(zm.phone, x=setx(zm.phone, phone=0, data = dp, cond=T),
x1=setx(zm.phone, phone=1, data = dp, cond=T))
dp is created with
m.prop = matchit(phone.contact ~ democrat*age*household*vote96,
data = dp, method = "nearest")
dp.prop = match.data(m.prop, group="all")
dp is the data restricted to mail and door=0.
thanks!
aram
Electing not to fight: Reassessing the impact of democratization on war
Vipin Narang & Rebecca Nelson
In a key finding in the democratic peace literature, Mansfield and Snyder
(2005) argue that states with weak institutions undergoing incomplete
transitions to democracy are more likely to initiate interstate war. We
show that there is no relationship between incomplete democratization and
the probability of initiating war. In particular, there are no cases in
which the initiator of war underwent an incomplete transition to democracy
in the six years prior to the outbreak of war. We also show that the
relationship between incomplete democratization and participation in war
more generally is suspect. The authors' findings are highly sensitive to
individual coding decisions and the time period examined. Including
regime transitions in the model does not predict war participation any
better than a model that includes only system level controls. We conclude
that incomplete democratization fails to explain systematically why states
go to war.
Hi Dan and Ian,
one general question about matchit. The manual states that
"If a caliper is specified, a control unit within the
caliper for a treated unit is randomly selected as the match
for that treated unit." This seems weird. Wouldn't we like
to choose the closest unit within the caliper, or otherwise
drop the unit because we cannot find a good match? Randomly
choosing a unit as match within the caliper does not seem
like a very efficient strategy...
Holger
--
Holger Lutz Kern
Graduate Student
Department of Government
Cornell University
Institute for Quantitative Social Science
Harvard University
1737 Cambridge Street N350
Cambridge, MA 02138
www.people.cornell.edu/pages/hlk23
Newer is not always better: re-evaluating the benefits of newer
pharmaceuticals
Whether newer pharmaceuticals justify their higher cost by saving other
types of health spending, so-called ?offset effects?, is an important
health policy question. We replicated the analysis of Lichtenberg
(1996), which suggested the effect of newer drugs substantially
outweighed the additional cost. We find Licthtenberg? results to be
highly dependent on both the specific model chosen and the dataset used:
substituting either a model that is less sensitive to expenditure
outliers or the newest data release results in the effect disappearing;
substituting both causes it to reverse in direction. In addition, we
estimate the effects of newer treatments separately for the 10 most
prevalent conditions using propensity score matching. We find that the
presence or absence of offset effects depends critically on the
condition in question; suggesting some classes of newer drugs may result
in lower costs, while others may not.
Hi Yuki and Class,
> *Questoin about 2(c)*
> Could you tell me what you mean by "IMPORT is switched for all
> observations"? I feel that can be the opposit combination of 0 and 1 in
> IMPORTANT, i.e., counter$IMPORT is 0 1 0 0 0 1 1 1 1 0 when snct$IMPORT is
> 1 0 1 1 1 0 0 0 0 1, Am I right?
Yes, by IMPORT is switched we mean exactly that: 0s become 1s, and 1s
become 0s.
> What do you mean by "what percentage of counter-factuals are "near"
> their factual counterpart, using geometric variability as the standard"? Is
> it same as mean(whif$sum.stat)? R help explains "sum.stat" in "WhatIf" as
> "A numeric vector of length m, where m is the number of counterfactuals.
> The mth element contains the summary statistic for the corresponding
> counterfactual. This summary statistic is the fraction of data points with
> Gower distances to the counterfactual less than the argument 'nearby',
> which by default is the geometric variability of the covariates.", but I
> can't understand it well.
Yes, we do mean using the sum.stat output. For a given observation, we
can compare it to every counter-factual, and determine how many of those
comparisons fall within the geometric variability. That's what we are
looking for--and what is captured by sum.stat.
Best,
Dan
Hi All,
I am using Dan's code from the section to do 2 a. But, I am getting the
following error. I assume it is because I need to modify something to
adapt it to this problem, but can't figure out what. I have tried a
range of start values (before I was getting the vmmin error):
op.out <- optim(par=start.val,fn=ord.probit.llh, method="BFGS",
hessian=T, control=list(fnscale=-1),Y=Y,X=X)
Error in optim(par = start.val, fn = ord.probit.llh, method = "BFGS", :
(list) object cannot be coerced to 'double'
Any help would be much appreciated,
Karen
Hi Everyone,
When I attempt 1e on the problem set using the method in the matchit
documentation, ie using the code:
phone.prop <- matchit(phone.contact ~ democrat*age*household*vote96,
data = phonedata, method = "nearest")
prop.zelig.1 <- zelig(voted98 ~ democrat + age + household + vote96,
model = "probit", data = match.data(phone.prop, "control"))
x.p.phone <- setx(prop.zelig.1,data=match.data(phone.prop, "treat"),
fn=NULL, cond=TRUE)
I get the following error on the last line:
Error in eval(expr, envir, enclos) : Object "voted98" not found
I know my dependent variable is in the original matched data. I do
notice that if I run names(x.p.phone) I get a column named
"cbind(voted98, 1 - voted98)" along with the covariates. I assume this
is causing my problem.
Any thoughts? Thanks!
Mike
In Search of a Woman's Worth: Symbolic Effects of Female Representation
Current scholarship has presented contradictory conclusions regarding
the symbolic effects of female representation at the federal and state
levels. We find that the effects of representation by women on
political attitudes and behaviors to be minimal. Our analysis exploits
the benefits of ordered logit, negative binomial, and rare events
logit regression to accurately display the relationship of female
representation to hypothesized effects of symbolic representation. We
also include updated National Election Studies data through 2004 in
order to bring the analysis up to date. We then use genetic matching
to create a quasi-experimental data set and confirm the lack of
symbolic effect of female representation in the House and in the
Senate.
Hello all,
I've been trying to use the zelig setx() function on part e), and can't seem
to get it to assign 0 and 1 values to the phone.contact() field. I'm sure
this is some silly syntax error. Any ideas?
Thanks,
Clayton
prob.1<-zelig(voted98~household+phone.contact+vote96+democrat+agegp,
data=match.data(m.out), model="probit")
set.0<-setx(prob.1, phone.contact=0, fn=NULL)
(Intercept) household phone.contact vote96 democrat
Min. :1 Min. :1.00 Min. :0.0 Min. :0.000 Min.
:0.000
1st Qu.:1 1st Qu.:1.00 1st Qu.:0.0 1st Qu.:0.000 1st Qu.:1.000
Median :1 Median :2.00 Median :0.5 Median :1.000 Median :1.000
Mean :1 Mean :1.53 Mean :0.5 Mean :0.719 Mean :0.806
3rd Qu.:1 3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:1.000 3rd Qu.:1.000
Max. :1 Max. :2.00 Max. :1.0 Max. :1.000 Max. :1.000
agegp
Min. :1.00
1st Qu.:2.00
Median :3.00
Mean :2.91
3rd Qu.:4.00
Max. :4.00
Hi All,
Apparently, some folks have been having trouble plotting propensity scores
simply by typing "plot(mout)" where mout is an output object from MatchIt.
Ian and I have been having those troubles too. If anyone has a good
solution, please send it out.
In the meantime, we dealt with this problem by simply using
"plot(density(xxx))" and the putting in the propensity scores for the
treatment and control before and after matching in as the xxxs. The
post-matching propensity scores can be extracted from the output from
matchit using the match.data(mout,group="treat") or group="control"
command. Note too that as far as I am aware, you need to calculate the
propensity scores for the full, pre-matching sample "by hand"--that is,
using zelig() or glm().
Best,
Dan
----
Ph.D. Student
Department of Government
Harvard University
Tutor, Currier House
dhopkins(a)fas.harvard.edu
http://www.danhopkins.org