# pggls

##### General FGLS Estimators

General FGLS estimators for panel data (balanced or unbalanced)

- Keywords
- regression

##### Usage

```
pggls(
formula,
data,
subset,
na.action,
effect = c("individual", "time"),
model = c("within", "random", "pooling", "fd"),
index = NULL,
...
)
```# S3 method for pggls
summary(object, ...)

# S3 method for summary.pggls
print(
x,
digits = max(3, getOption("digits") - 2),
width = getOption("width"),
...
)

# S3 method for pggls
residuals(object, ...)

##### Arguments

- formula
a symbolic description of the model to be estimated,

- data
a

`data.frame`

,- subset
see

`lm()`

,- na.action
see

`lm()`

,- effect
the effects introduced in the model, one of

`"individual"`

or`"time"`

,- model
one of

`"within"`

,`"pooling"`

,`"random"`

or`"fd"`

,- index
the indexes, see

`pdata.frame()`

,- …
further arguments.

- object, x
an object of class

`pggls`

,- digits
digits,

- width
the maximum length of the lines in the print output,

##### Details

`pggls`

is a function for the estimation of linear panel models by
general feasible generalized least squares, either with or without
fixed effects. General FGLS is based on a two-step estimation
process: first a model is estimated by OLS (`model = "pooling"`

),
fixed effects (`model = "within"`

) or first differences (`model = "fd"`

), then its residuals are used to estimate an error covariance
matrix for use in a feasible-GLS analysis. This framework allows
the error covariance structure inside every group (if `effect = "individual"`

, else symmetric) of observations to be fully
unrestricted and is therefore robust against any type of intragroup
heteroskedasticity and serial correlation. Conversely, this
structure is assumed identical across groups and thus general FGLS
estimation is inefficient under groupwise heteroskedasticity. Note
also that this method requires estimation of \(T(T+1)/2\)
variance parameters, thus efficiency requires N >> T (if `effect = "individual"`

, else the opposite). Setting `model = "random"`

or
`model = "pooling"`

, both produce an unrestricted FGLS model as in
Wooldridge, Ch. 10.5, although the former is deprecated and
included only for retro--compatibility reasons. If `model = "within"`

(the default) then a FEGLS (fixed effects GLS, see ibid.)
is estimated; if `model = "fd"`

a FDGLS (first-difference GLS).

##### Value

An object of class `c("pggls","panelmodel")`

containing:

the vector of coefficients,

the vector of residuals,

the vector of fitted values,

the covariance matrix of the coefficients,

degrees of freedom of the residuals,

a data.frame containing the variables used for the estimation,

the call,

the estimated intragroup (or cross-sectional, if
`effect = "time"`

) covariance of errors,

##### References

IM:SEUN:SCHM:WOOL:99plm

KIEF:80plm

WOOL:02plm

WOOL:10plm

##### Examples

```
# NOT RUN {
data("Produc", package = "plm")
zz_wi <- pggls(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, model = "within")
summary(zz_wi)
zz_pool <- pggls(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, model = "pooling")
summary(zz_pool)
zz_fd <- pggls(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, model = "fd")
summary(zz_fd)
# }
```

*Documentation reproduced from package plm, version 2.2-5, License: GPL (>= 2)*