punbalancedness | R Documentation |
This function reports unbalancedness measures for panel data as defined in \insertCiteAHRE:PINC:81;textualplm and \insertCiteBALT:SONG:JUNG:01;textualplm.
punbalancedness(x, ...)
## S3 method for class 'pdata.frame'
punbalancedness(x, ...)
## S3 method for class 'data.frame'
punbalancedness(x, index = NULL, ...)
## S3 method for class 'panelmodel'
punbalancedness(x, ...)
x |
a |
... |
further arguments. |
index |
only relevant for |
punbalancedness
returns measures for the unbalancedness of a
panel data set.
For two-dimensional data:
The two measures of
\insertCiteAHRE:PINC:81;textualplm are calculated, called
"gamma" (\gamma
) and "nu" (\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 \insertCiteAHRE:PINC:81;textualplm
are:
0 < \gamma, \nu \le 1
, and for \nu
more precisely
\frac{1}{n} < \nu \le 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
\insertCiteBALT:SONG:JUNG:01;textualplm, 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. \insertCiteBALT:SONG:JUNG:01;textualplm, pp. 488-491, and \insertCiteBALT:CHAN:94;textualplm, 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 \insertCiteBALT:SONG:JUNG:01;textualplm.
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
gamma
and nu
,
For a nested panel structure, the entries are called c1
, c2
,
c3
.
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
AHRE:PINC:81plm
\insertRefBALT:CHAN:94plm
\insertRefBALT:SONG:JUNG:01plm
\insertRefBALT:SONG:JUNG:02plm
nobs()
, pdim()
, pdata.frame()
# 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"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.