Learn R Programming

plm (version 2.6-4)

punbalancedness: Measures for Unbalancedness of Panel Data

Description

This function reports unbalancedness measures for panel data as defined in AHRE:PINC:81;textualplm and BALT:SONG:JUNG:01;textualplm.

Usage

punbalancedness(x, ...)

# S3 method for pdata.frame punbalancedness(x, ...)

# S3 method for data.frame punbalancedness(x, index = NULL, ...)

# S3 method for panelmodel punbalancedness(x, ...)

Value

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.

Arguments

x

a panelmodel, a data.frame, or a pdata.frame object,

...

further arguments.

index

only relevant for data.frame interface, for details see pdata.frame(),

Author

Kevin Tappe

Details

punbalancedness returns measures for the unbalancedness of a panel data set.

  • For two-dimensional data:
    The two measures of AHRE: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 AHRE: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 BALT: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. BALT:SONG:JUNG:01;textualplm, pp. 488-491, and BALT: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 BALT: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()).

References

AHRE:PINC:81plm

BALT:CHAN:94plm

BALT:SONG:JUNG:01plm

BALT:SONG:JUNG:02plm

See Also

nobs(), pdim(), pdata.frame()

Examples

Run this code

# 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")) 

Run the code above in your browser using DataLab