[R] Path Analysis
John Fox
jfox at mcmaster.ca
Mon May 24 19:15:04 CEST 2010
Dear Sam,
> -----Original Message-----
> From: R Help [mailto:rhelp.stats at gmail.com]
> Sent: May-24-10 1:04 PM
> To: John Fox
> Cc: r-help
> Subject: Re: [R] Path Analysis
>
> That's an interesting idea, I got the same impression from your SEM
> appendix to "Companion to applied regression" in the paragraph just
> before Section 3.
>
> So I could get the same results if I built the following two models:
Not really the same results, but the models are similar.
>
> mod1 =
>
lm(intent~exposure+benefit+norms+childBarrier+parentBarrier+knowBenefit,data
=
> dat)
> mod2 =
>
glm(recuse~intent+norms+exposure+childBarrier+parentBarrier,data=dat,family=
b
> inomial(link=logit))
>
> And in the second model only the intent should have a significant
> coefficient?
Yes, if you're right that the effects of the other variables are entirely
mediated by intent.
>
> When I run those models I get a number of significant findings in the
> mod2. Does that mean that I have mis-specified my model? If so (and
> I think I have), can I postulate that there is a link between each
> significant coefficient?
With the usual caveats about "significance" and interpreting regressions
causally, large coefficients for the other variables suggests that their
effects are not wholly mediated by intent.
Best,
John
>
> Thanks so much for your input,
> Sam Stewart
>
>
> > summary(mod2)
>
> Call:
> glm(formula = recuse ~ intent + norms + exposure + childBarrier +
> parentBarrier, family = binomial(link = logit), data = dat)
>
> Deviance Residuals:
> Min 1Q Median 3Q Max
> -2.2784 -0.9018 0.5899 0.7686 1.9314
>
> Coefficients:
> Estimate Std. Error z value Pr(>|z|)
> (Intercept) -2.51269 0.50359 -4.990 6.05e-07 ***
> intent 0.59574 0.08345 7.139 9.39e-13 ***
> norms 0.23822 0.02991 7.964 1.67e-15 ***
> exposure 0.12522 0.08613 1.454 0.145981
> childBarrier -0.31296 0.08693 -3.600 0.000318 ***
> parentBarrier -0.23400 0.08676 -2.697 0.006995 **
> ---
> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> (Dispersion parameter for binomial family taken to be 1)
>
> Null deviance: 1803.0 on 1479 degrees of freedom
> Residual deviance: 1567.8 on 1474 degrees of freedom
> (40 observations deleted due to missingness)
> AIC: 1579.8
>
> Number of Fisher Scoring iterations: 4
>
> On Mon, May 24, 2010 at 1:17 PM, John Fox <jfox at mcmaster.ca> wrote:
> > Dear sstewart,
> >
> > The model appears to reflect the path diagram, assuming that you intend
to
> > allow the exogenous variables to be correlated and want the errors to be
> > uncorrelated.
> >
> > This is one way to model the binary variable reuse. An alternative would
be
> > to fit the equation for intent by least-squares regression (assuming
that
> > the relationships are linear, etc.), and the equation of reuse by, e.g.,
> > logistic regression (again assuming that the model is correctly
specified).
> > If you're right that the effects of the exogenous variables are entirely
> > mediated by intent, then if you put these variables in the equation for
> > reuse, their coefficients should be small.
> >
> > I hope this helps,
> > John
> >
> > --------------------------------
> > John Fox
> > Senator William McMaster
> > Professor of Social Statistics
> > Department of Sociology
> > McMaster University
> > Hamilton, Ontario, Canada
> > web: socserv.mcmaster.ca/jfox
> >
> >
> >> -----Original Message-----
> >> From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org]
> > On
> >> Behalf Of R Help
> >> Sent: May-24-10 11:18 AM
> >> To: r-help
> >> Subject: [R] Path Analysis
> >>
> >> Hello list,
> >>
> >> I'm trying to make sure that I'm performing a path analysis correctly
> >> using the sem package. the figure at
> >> http://flame.cs.dal.ca/~sstewart/regressDiag.png has a detailing of
> >> the model.
> >>
> >> The challenge I'm having is that reuse is an indicator (0/1) variable.
> >>
> >> Here's the code I'm using:
> >>
> >> corr =
> >>
> >
>
hetcor(dat[,c('intent','exposure','benefit','norms','childBarrier','parentBa
> > r
> >>
rier','knowBenefit','recuse')],use="pairwise.complete.obs")$correlations
> >> modMat = matrix(c(
> >> 'exposure -> intent', 'gam11',NA,
> >> 'benefit -> intent', 'gam12',NA,
> >> 'norms -> intent', 'gam13',NA,
> >> 'childBarrier -> intent', 'gam14',NA,
> >> 'parentBarrier -> intent', 'gam15',NA,
> >> 'knowBenefit -> intent', 'gam16',NA,
> >> 'intent<->intent','psi11',NA,
> >> 'intent->recuse','gam21',NA,
> >> 'recuse<->recuse','psi22',NA),
> >> ncol=3,byrow=T)
> >> model4 =
> >>
> >
>
sem(modMat,corr,N=1520,fixed.x=c('exposure','benefit','norms','childBarrier'
> > ,
> >> 'parentBarrier','knowBenefit'))
> >>
> >> Is this correctly modeling my diagram? I'm not sure if a) I'm dealing
> >> with the categorical variable correctly, or b) whether fixed.x is
> >> accurately modeling the correlations for me.
> >>
> >> Any help would be appreciated. I'm also looking into creating a plot
> >> function within R (similar to the path.diagram function, but using R
> >> plots). If I get something useful I'll try and post it back
> >>
> >> ______________________________________________
> >> R-help at r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide
> > http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >
> >
> >
More information about the R-help
mailing list