In various earlier posts I've commented on the need for conducting specification tests when working with Logit and Probit models. (For instance, see here, here, and here.)
Today I had an email from Artur Tarassow at the University of Hamburg. He wrote:
Thanks for this, Artur - I'm sure it will be very helpful to many readers of this blog.
One of the seminal references on this topic is Davidson and MacKinnon (1984). On my primary website, you can find a comprehensive list of other related references, together with EViews files that will enable you to conduct various specification tests with LDV models.
The link for that material is here.
The link for that material is here.
I know that you're already aware of the open-source econometric software called "Gretl".
I would like to let you know that I updated my package "LOGIT_HETERO.gfn". This package runs both the tests of homoskedasticity and correct functional form based on your nice program "Logit_hetero.prg" written for EViews.
If you want to have a look at it, simply run:
set echo off
set messages off
install LOGIT_HETERO.gfn
include LOGIT_HETERO.gfn
open http://web.uvic.ca/~dgiles/downloads/binary_choice/Logistic_Burr.wf1
logit Y 0 X1 X2
matrix M = LOGIT_HETERO(Y,$xlist,$coeff,1)
print M
Footnote: See Artur's comment below, and the more recent post here. In particular, note Artur's comment: As a note to your blog readers: The two Logit model related packages “logit_burr.gfn” and “LOGIT_HETERO.gfn” are not available any more, as BMST includes both of them.
Reference
Davidson, R. & J. G. MacKinnon, 1984. Convenient specification tests for logit and probit models. Journal of Econometrics, 25, 241 262.
In fact, Artur's script is slightly incomplete: the line
ReplyDeleteinstall LOGIT_HETERO.gfn
fetches the packages from the gretl server, but in order to actually have the corresponding function available, one should also insert the line
include LOGIT_HETERO.gfn
It's the same difference you get, eg in R between the install.package() and the library() functions.
Jack - thanks very much! I've added the extra line in the code above.
DeleteDear Dave, I've decided to write the "Binary Model Specification Tests" (BMST) package for Gretl. This single package comprises various tests for binary Probit and Logit models which you have coded for Eviews.
ReplyDeleteFor LOGIT models:
1) LM test of the null that the distribution is Logistic against the alternative that it is Burr Type 2
2) LM test for homoskedasticity
3) LM test for correct functional form
For PROBIT models:
1) LM test for homoskedasticity
2) LM test for correct functional form
Here is an example on how to use BMST with Gretl:
# Name of Gretl's scripting language
#-----------------
# Example 1
#-----------------
set echo off
set messages off
open greene19_1.gdt
#install BMST.gfn # Download the package if not done so, yet
include BMST.gfn
# Logit example
type = 1
logit GRADE 0 GPA TUCE PSI
# setupBMST() must always be called 1st:
bundle b = setupBMST(GRADE, $xlist, $yhat, $coeff, type, 1)
Logit_burr(&b) # Next, call the test of interest
print b # Print information stored in the bundle
scalar burr_pval = b.Log_burr_pval # Store p-value of Logistic Against Burr Type II test
print burr_pval
# Call other tests
Logit_reset(&b)
Logit_hom(&b)
# Probit example
type = 2
probit GRADE 0 GPA TUCE PSI
bundle c = setupBMST(GRADE, $xlist, $yhat, $coeff, type, 1)
Probit_reset(&c)
Probit_hom(&c)
/* Activate if needed
#--------------------------------------------------------
# Example 2: Replicate Dave Gile's PROBIT_HETERO program
#--------------------------------------------------------
open http://web.uvic.ca/~dgiles/downloads/binary_choice/Logistic_Burr.wf1 --quiet
include BMST.gfn
type = 2
probit Y 0 X1 X2
bundle b = setupBMST(Y, $xlist, $yhat, $coeff, type, 1)
Probit_reset(&b)
Probit_hom(&b)
#----------------------------------------
# Replicate Dave Gile's LOGIT_HETERO and
# LOGIT_BURR programs
#-----------------------------------------
type = 1
logit Y const X1 X2
bundle b = setupBMST(Y,$xlist, $yhat, $coeff,type, 1)
Logit_burr(&b)
Logit_reset(&b)
Logit_hom(&b)
*/
Hope that will be helpful for many of your blog readers and also attract more people to try and use Gretl!
Best,
Artur