pmodel.response has several methods to conveniently extract the response of several objects.
pmodel.response(object,...)## S3 method for class 'plm'pmodel.response(object,...)## S3 method for class 'data.frame'pmodel.response(object,...)## S3 method for class 'formula'pmodel.response(object, data,...)
Arguments
object: an object of class "plm", or a formula of class "Formula",
...: further arguments.
data: a data.frame
Returns
A pseries except if model responses' of a "between"
or "fd" model as these models "compress" the data (the number of observations used in estimation is smaller than the original data due to the specific transformation). A numeric is returned for the "between" and "fd" model.
Details
The model response is extracted from a pdata.frame (where the response must reside in the first column; this is the case for a model frame), a Formula + data (being a model frame) or a plm
object, and the transformation specified by effect and model is applied to it.
Constructing the model frame first ensures proper NA
handling and the response being placed in the first column, see also Examples for usage.
Examples
# First, make a pdata.framedata("Grunfeld", package ="plm")pGrunfeld <- pdata.frame(Grunfeld)# then make a model frame from a Formula and a pdata.frameform <- inv ~ value + capital
mf <- model.frame(pGrunfeld, form)# retrieve (transformed) response directly from model frameresp_mf <- pmodel.response(mf, model ="within", effect ="individual")# retrieve (transformed) response from a plm object, i.e., an estimated modelfe_model <- plm(form, data = pGrunfeld, model ="within")pmodel.response(fe_model)# same as constructed beforeall.equal(resp_mf, pmodel.response(fe_model), check.attributes =FALSE)# TRUE
See Also
plm's model.matrix() for (transformed) model matrix and the corresponding model.frame()