pldv: Panel estimators for limited dependent variables

View source: R/est_ldv.R

pldvR Documentation

Panel estimators for limited dependent variables

Description

Fixed and random effects estimators for truncated or censored limited dependent variable

Usage

pldv(
  formula,
  data,
  subset,
  weights,
  na.action,
  model = c("fd", "random", "pooling"),
  index = NULL,
  R = 20,
  start = NULL,
  lower = 0,
  upper = +Inf,
  objfun = c("lsq", "lad"),
  sample = c("cens", "trunc"),
  ...
)

Arguments

formula

a symbolic description for the model to be estimated,

data

a data.frame,

subset

see lm,

weights

see lm,

na.action

see lm,

model

one of "fd", "random", or "pooling",

index

the indexes, see pdata.frame(),

R

the number of points for the gaussian quadrature,

start

a vector of starting values,

lower

the lower bound for the censored/truncated dependent variable,

upper

the upper bound for the censored/truncated dependent variable,

objfun

the objective function for the fixed effect model (model = "fd", irrelevant for other values of the model argument ): one of "lsq" for least squares (minimise sum of squares of the residuals) and "lad" for least absolute deviations (minimise sum of absolute values of the residuals),

sample

"cens" for a censored (tobit-like) sample, "trunc" for a truncated sample,

...

further arguments.

Details

pldv computes two kinds of models: a LSQ/LAD estimator for the first-difference model (model = "fd") and a maximum likelihood estimator with an assumed normal distribution for the individual effects (model = "random" or "pooling").

For maximum-likelihood estimations, pldv uses internally function maxLik::maxLik() (from package maxLik).

Value

For model = "fd", an object of class c("plm", "panelmodel"), for model = "random" and model = "pooling" an object of class c("maxLik", "maxim").

Author(s)

Yves Croissant

References

\insertRef

HONO:92plm

Examples

## as these examples take a bit of time, do not run them automatically
## Not run: 
data("Donors", package = "pder")
library("plm")
pDonors <- pdata.frame(Donors, index = "id")

# replicate Landry/Lange/List/Price/Rupp (2010), online appendix, table 5a, models A and B
modA <- pldv(donation ~ treatment +  prcontr, data = pDonors,
            model = "random", method = "bfgs")
summary(modA)
modB <- pldv(donation ~ treatment * prcontr - prcontr, data = pDonors,
            model = "random", method = "bfgs")
summary(modB)

## End(Not run)


ycroissant/plm documentation built on July 8, 2024, 3:59 a.m.