TSLS: R^2 extraction and autocorrelation and heterokedasticity tests
Dear Achim: Thanks for the clarification. sg
Achim Zeileis wrote:
On Thu, 14 May 2009, spencerg wrote:
What code did you use to produce "output"?
He probably has used tsls() from "sem". ivreg() in "AER" also provides
two-stage least squares but along with a few more methods, such as
terms(), model.matrix() etc.
This will be sufficient to call bptest() etc. from "lmtest" without
error. However, this might be misleading. Internally, many "lmtest"
functions re-fit the linear model and it depends on the test function
and how the ivreg model was fitted whether what happens. Some
functions internally re-fit the right model, others might re-fit the
usual OLS model. I have never thought about using the "lmtest" tests
with "ivreg" objects, I'll try to incorporate that in future updates.
In the meantime, I recommend that you re-fit the second stage of the
2SLS "by hand" and then call the lmtest functionality. That way you
can be sure that the second stage model is really used. In pseudo-code:
fm_2sls <- ivreg(y ~ x1 + x2 | z1 + z2 + z3, data = mydata)
fm_aux <- lm(model.response(model.frame(fm_2sls)) ~
model.matrix(fm_2sls)[,-1])
bptest(fm_aux)
etc.
Z
Have you tried "str(output)" and "names(output)"? If this is not enough to help you answer your question, you might try rephrasing your question using commented, minimal, self-contained, reproducible code, as suggested in the posting guide "http://www.R-project.org/posting-guide.html". Spencer Graves jos? maria Rodriguez wrote:
Hi, I'm actually I?m performing a TSLS linear multiple regression on annually data which go from 1971 to 1997. After performing the TSLS regression, I tried to extract the R squared value using ?output$r.squared? function and to perform autocorrelation (Durbin Watson and Breush Godfrey) and heterokedasticity tests (Breush-pagan and Goldfeld Quandt) but I have errors messages. More specifically, this is function that I write to R and below its response : for R^2 :
output$r.squared
NULL for heterokedasticity tests :
bptest(reg1)
Error in terms.default(formula) : no terms component
and for autocorrelation test, when I try :
durbin.watson(reg1$residuals, max.lag=10)
[1] 1.509 2.520 2.247 2.001 1.743 1.092 1.392 1.439 1.468 1.035
this give me only the durbin watson value and not the probabilities
(p-value)
When performing these tests on lm object I have no problem. So my
question
is how to extract R^2 from a tsls regression (object) and how to
perform
autocorrelation and heterokedasticity tests on tsls regression. I
looked at
the sem package but I found no answer to my questions. So please is
there
any person who can help me.
Think you in advance
[[alternative HTML version deleted]]
------------------------------------------------------------------------
_______________________________________________ R-SIG-Finance at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. -- If you want to post, subscribe first.
_______________________________________________ R-SIG-Finance at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. -- If you want to post, subscribe first.