ivpml: Estimate Instrumental Variable Probit model by Maximum...

View source: R/ivpml.R

ivpmlR Documentation

Estimate Instrumental Variable Probit model by Maximum Likelihood.

Description

Estimation of Probit model with one endogenous and continuous variable by Maximum Likelihood.

Usage

ivpml(formula, data, messages = TRUE, ...)

## S3 method for class 'ivpml'
terms(x, ...)

## S3 method for class 'ivpml'
model.matrix(object, ...)

## S3 method for class 'ivpml'
estfun(x, ...)

## S3 method for class 'ivpml'
bread(x, ...)

## S3 method for class 'ivpml'
vcov(object, ...)

## S3 method for class 'ivpml'
df.residual(object, ...)

## S3 method for class 'ivpml'
coef(object, ...)

## S3 method for class 'ivpml'
logLik(object, ...)

## S3 method for class 'ivpml'
print(x, ...)

## S3 method for class 'ivpml'
summary(object, eigentol = 1e-12, ...)

## S3 method for class 'summary.ivpml'
print(x, digits = max(3, getOption("digits") - 2), ...)

## S3 method for class 'ivpml'
predict(object, newdata = NULL, type = c("xb", "pr", "stdp"), asf = TRUE, ...)

Arguments

formula

a symbolic description of the model of the form y ~ x | z where y is the binary dependent variable, x includes the exogenous and the endogenous continuous variable, and z is the complete set of instruments.

data

the data of class data.frame.

messages

if TRUE, then additional messages for the estimation procedure are displayed.

...

arguments passed to maxLik.

x, object

an object of class ivpml.

eigentol

the standard errors are only calculated if the ratio of the smallest and largest eigenvalue of the Hessian matrix is less than eigentol. Otherwise the Hessian is treated as singular.

digits

the number of digits.

newdata

optionally, a data frame in which to look for variables with which to predict.

type

the type of prediction required. The default, type = xb, is on the linear prediction. If type = pr, the predicted probabilities of a positive outcome is returned. Finally, if type = stdp the standard errors of the linear predictions for each individual is returned.

asf

if TRUE, the average structural function is used. This option is not allowed with xb or stdp.

Details

The IV probit for cross-sectional data has the following structure:

y_{1i}^* = x_i^\top\beta + \gamma y_{2i}+ \epsilon_i,

with

y_{2i} = z_i^\top\delta + \upsilon_i,

where y_{1i}^* is the latent (unobserved) dependent variable for individual i = 1,...,N; y_{2i} is the endogenous continuous variable; z_i is the vector of exogenous variables which also includes the instruments for y_{2i}; and (\epsilon, \upsilon) are normal jointly distributed.

The model is estimated using the maxLik function from maxLik package using analytic gradient.

Author(s)

Mauricio Sarrias.

References

Greene, W. H. (2012). Econometric Analysis. 7 edition. Prentice Hall.

Examples

 
# Data
library("AER")
data("PSID1976")
PSID1976$lfp  <- as.numeric(PSID1976$participation == "yes")
PSID1976$kids <- with(PSID1976, factor((youngkids + oldkids) > 0,
                                      levels = c(FALSE, TRUE), 
                                      labels = c("no", "yes")))
                                      
# IV probit model by MLE
# (nwincome is endogenous and heducation is the additional instrument)
PSID1976$nwincome <- with(PSID1976, (fincome - hours * wage)/1000)
fiml.probit <- ivpml(lfp ~  education + experience + I(experience^2) + age + 
                            youngkids + oldkids + nwincome |
                            education + experience + I(experience^2) + age + 
                            youngkids + oldkids + heducation, 
                     data = PSID1976)
summary(fiml.probit)


Rchoice documentation built on March 31, 2023, 11:13 p.m.