punbalancedness {plm} | R Documentation |
This function reports unbalancedness measures for panel data as defined in Ahrens/Pincus (1981) and Baltagi/Song/Jung (2001).
punbalancedness(x, ...) ## S3 method for class 'panelmodel' punbalancedness(x, ...) ## S3 method for class 'data.frame' punbalancedness(x, index = NULL, ...) ## S3 method for class 'pdata.frame' punbalancedness(x, ...)
x |
a |
index |
only relevant for |
... |
further arguments. |
punbalancedness
returns measures for the unbalancedness of a
panel data set.
For two-dimensional data:
The two measures of Ahrens/Pincus (1981) are calculated,
called "gamma" (γ) and "nu" (ν).
If the panel data are balanced, both measures equal 1. The more "unbalanced" the
panel data, the lower the measures (but > 0). The upper and lower bounds
as given in Ahrens/Pincus (1981) are:
0 < γ, ν ≤ 1, and for ν more precisely
1/n < ν ≤ 1, with n being the number of individuals (as in pdim(x)$nT$n
).
For nested panel data (meaning including a grouping variable):
The extension of the above measures by Baltagi/Song/Jung (2001), p. 368, are calculated:
c1: measure of subgroup (individual) unbalancedness,
c2: measure of time unbalancedness,
c3: measure of group unbalancedness due to each group size.
Values are 1 if the data are balanced and become smaller as the data become more unbalanced.
An application of the measure "gamma" is found in e. g. Baltagi/Song/Jung (2002), pp. 488-491, and Baltagi/Chang (1994), pp. 78–87, where it is used to measure the unbalancedness of various unbalanced data sets used for Monte Carlo simulation studies. Measures c1, c2, c3 are used for similar purposes in Baltagi/Song/Jung (2001).
In the two-dimensional case, punbalancedness
uses output of pdim
to calculate the two unbalancedness measures, so inputs to punbalancedness
can
be whatever pdim
works on. pdim
returns detailed information about the
number of individuals and time observations (see pdim
).
A named numeric containing either two or three entries, depending on the panel structure inputted:
* |
For the two-dimensional panel structure, the entries are called |
* |
For a nested panel structure, the entries are called |
Calling punbalancedness
on an estimated panelmodel
object and
on the corresponding (p)data.frame
used for this estimation does not
necessarily yield the same result (true also for pdim
). When called on an estimated
panelmodel
, the number of observations (individual, time) actually used for
model estimation are taken into account. When called on a (p)data.frame
, the
rows in the (p)data.frame
are considered, disregarding any NA values in the
dependent or independent variable(s) which would be dropped during model estimation.
Kevin Tappe
Ahrens, H.; Pincus, R. (1981), “On two measures of unbalancedness in a one-way model and their relation to efficiency”, Biometrical Journal, 23(3), pp. 227–235.
Baltagi, Badi H.; Chang, Young-Jae (1994), “Incomplete panels: A comparative study of alternative estimators for the unbalanced one-way error component regression model”, Journal of Econometrics, 62(2), pp. 67–89.
Baltagi, Badi H.; Song, Seuck Heun; Jung, Byoung Cheol (2001), “The unbalanced nested error component regression model”, Journal of Econometrics, 101(2), pp. 357–381.
Baltagi, Badi H.; Song, Seuck H.; Jung, Byoung C. (2002), “A comparative study of alternative estimators for the unbalanced two-way error component regression model”, Econometrics Journal, 5(2), pp. 480–493.
# Grunfeld is a balanced panel, Hedonic is an unbalanced panel data(list=c("Grunfeld", "Hedonic"), package="plm") # Grunfeld has individual and time index in first two columns punbalancedness(Grunfeld) # c(1,1) indicates balanced panel pdim(Grunfeld)$balanced # TRUE # Hedonic has individual index in column "townid" (in last column) punbalancedness(Hedonic, index="townid") # c(0.472, 0.519) pdim(Hedonic, index="townid")$balanced # FALSE # punbalancedness on estimated models plm_mod_pool <- plm(inv ~ value + capital, data = Grunfeld) punbalancedness(plm_mod_pool) plm_mod_fe <- plm(inv ~ value + capital, data = Grunfeld[1:99, ], model = "within") punbalancedness(plm_mod_fe) # replicate results for panel data design no. 1 in Ahrens/Pincus (1981), p. 234 ind_d1 <- c(1,1,1,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,5,5,5,5,5,5,5) time_d1 <- c(1,2,3,1,2,3,1,2,3,4,5,1,2,3,4,5,6,7,1,2,3,4,5,6,7) df_d1 <- data.frame(individual = ind_d1, time = time_d1) punbalancedness(df_d1) # c(0.868, 0.887) # example for a nested panel structure with a third index variable # specifying a group (states are grouped by region) and without grouping data("Produc", package = "plm") punbalancedness(Produc, index = c("state", "year", "region")) punbalancedness(Produc, index = c("state", "year"))