probit_linear_partial {endogeneity}R Documentation

Recursive Probit-Linear Model with Partially Observed First Stage

Description

The first stage is a probit model with partially observed (or unobserved) dependent variable, the second stage is a linear model that includes the first-stage dependent variable as a regressor.

Usage

probit_linear_partial(
  form_probit,
  form_linear,
  data = NULL,
  EM = TRUE,
  par = NULL,
  method = "BFGS",
  verbose = 0,
  accu = 10000,
  maxIter = 500,
  tol = 1e-06,
  tol_LL = 1e-08
)

Arguments

form_probit

Formula for the first-stage probit model, in which the dependent variable is partially observed

form_linear

Formula for the second stage linear model. The partially observed dependent variable of the first stage is automatically added as a regressor in this model (do not add manually)

data

Input data, a data frame

EM

Whether to maximize likelihood use the Expectation-Maximization algorithm. EM is slower but more robust

par

Starting values for estimates

method

Optimization algorithm. Default is BFGS

verbose

Level of output during estimation. Lowest is 0.

accu

1e12 for low accuracy; 1e7 for moderate accuracy; 10.0 for extremely high accuracy. See optim

maxIter

max iterations for EM algorithm

tol

tolerance for convergence of EM algorithm

tol_LL

tolerance for convergence of likelihood

Value

A list containing the results of the estimated model

References

Peng, Jing. (2022) Identification of Causal Mechanisms from Randomized Experiments: A Framework for Endogenous Mediation Analysis. Information Systems Research (Forthcoming), Available at SSRN: https://ssrn.com/abstract=3494856

See Also

Other endogeneity: bilinear(), biprobit_latent(), biprobit_partial(), biprobit(), pln_linear(), pln_probit(), probit_linear_latent(), probit_linear()

Examples


library(MASS)
N = 1000
rho = -0.5
set.seed(1)

x = rbinom(N, 1, 0.5)
z = rnorm(N)

e = mvrnorm(N, mu=c(0,0), Sigma=matrix(c(1,rho,rho,1), nrow=2))
e1 = e[,1]
e2 = e[,2]

y1 = as.numeric(1 + x + z + e1 > 0)
y2 = 1 + x + z + y1 + e2
est = probit_linear(y1~x+z, y2~x+z+y1)
est$estimates

observed_pct = 0.2
y1p = y1
y1p[sample(N, N*(1-observed_pct))] = NA
est_latent = probit_linear_partial(y1p~x+z, y2~x+z)
est_latent$estimates


[Package endogeneity version 2.0.1 Index]