Description Usage Arguments Details Value Author(s) See Also Examples

`truncreg`

performs maximum likelihood estimation of the parameters in cross-sectional truncated regression.

1 2 3 4 5 |

`formula` |
an object of class “formula” (or one that can be coerced to that class): a symbolic description of the model. The details of model specification are given under ‘Details’. |

`data` |
an optional data frame containing variables in the model. If not found in data, the variables are taken from environment ( |

`subset` |
an optional vector specifying a subset of observations for which technical or cost efficiencies are to be computed. |

`ll` |
scalar or one-sided formula for lower limit for left-truncation; e.g. |

`ul` |
scalar or one-sided formula for upper limit for right-truncation; e.g. |

`lmtol` |
numeric. Tolerance for the scaled gradient in ML optimization. Default is .Machine$double.eps. |

`maxiter` |
numeric. maximum number of iteration for maximization of the log likelihood function. |

`marg.eff` |
logical. If |

`print.level` |
numeric. 0 - nothing is printed. 1 - optimization steps and print estimation results. 2 - detailed optimization steps and print estimation results. Default is 1. |

`truncreg`

performs a regression from a sample drawn from a restricted part of the population. Under the assumption that the error term of the whole population is normal, the error terms in the truncated regression model have a truncated normal distribution.

Both lower limit for left-truncation and upper limit for right-truncation can be specified simultaneously.

Models for `truncreg`

are specified symbolically. A typical model has the form `y ~ x1 + ...`

, where `y`

represents the left hand side variable and `{x1,...}`

right hand side variables.

If `marg.eff = TRUE`

, the marginal effects are computed.

`truncreg`

returns a list of class `npsf`

containing the following elements:

`call` |
call. 'truncreg.cs'. |

`model` |
character. Unevaluated call to function |

`coef` |
numeric. Named vector of ML parameter estimates. |

`table` |
matrix. Table with results. |

`vcov` |
matrix. Estimated covariance matrix of ML estimator. |

`ll` |
numeric. Value of log-likelihood at ML estimates. |

`lmtol` |
numeric. Convergence criterion: tolerance for the scaled gradient. |

`LM` |
numeric. Value of the scaled gradient. |

`esttime` |
numeric. Estimation time. |

`marg.effects` |
data frame. Contains unit-specific marginal effects of exogenous variables. |

`sigma` |
numeric. estimate of sigma. |

`LL` |
numeric. The lower limit for left-truncation |

`UL` |
numeric. The upper limit for left-truncation |

`n` |
numeric. Number of observations (used in regression). |

`n.full` |
numeric. Number of observations (used and not used in regression). |

`nontruncsample` |
logical. Returns TRUE if the observation in user supplied data is in the estimation subsample and in non-truncated part of the sample, and FALSE otherwise. |

`esample` |
logical. Returns TRUE if the observation in user supplied data is in the estimation subsample and FALSE otherwise. |

Oleg Badunenko <oleg.badunenko@brunel.ac.uk>

`teradial`

, `tenonradial`

, `teradialbc`

, `tenonradialbc`

, `nptestrts`

, `nptestind`

, `sf`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ```
require( npsf )
# Female labor force participation dataset
data(mroz)
head(mroz)
t1 <- npsf::truncreg(hours ~ kidslt6 + kidsge6 + age*educ,
data = mroz, ll = 0, lmtol = 1e-16, print.level = 2)
# matrices also can be used
myY <- mroz$hours
myX <- cbind(mroz$kidslt6, mroz$kidsge6, mroz$age, mroz$educ, mroz$age*mroz$educ)
t1.m <- truncreg(myY ~ myX, ll = 0)
# gives identical result to `t1':
# compare summary(t1) and summary(t1.m)
# using variable for limits is admissible
# we obtain the same result as before
mroz$myll <- 0
t11 <- npsf::truncreg(hours ~ kidslt6 + kidsge6 + age*educ,
data = mroz, ll = ~ myll, lmtol = 1e-16, print.level = 0)
summary(t11)
# if you believe that the sample is additionally truncted from above at say 3500
t12 <- update(t1, ul = 3500, print.level = 1)
# for obtaining marginal effects
t13 <- update(t12, marg.eff = TRUE)
summary(t13$marg.effects)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.