phansitest: Simes Test for unit roots in panel data

View source: R/test_uroot.R

phansitestR Documentation

Simes Test for unit roots in panel data


Simes' test of intersection of individual hypothesis tests (\insertCiteSIMES:86;textualplm) applied to panel unit root tests as suggested by \insertCiteHANCK:13;textualplm.


phansitest(object, alpha = 0.05)

## S3 method for class 'phansitest'
print(x, cutoff = 10L, ...)



either a numeric containing p-values of individual unit root test results (does not need to be sorted) or a suitable purtest object (as produced by purtest() for a test which gives p-values of the individuals (Hadri's test in purtest is not suitable)),


numeric, the pre-specified significance level (defaults to 0.05),


an object of class c("phansitest", "list") as produced by phansitest to be printed,


integer, cutoff value for printing of enumeration of individuals with rejected individual H0, for print method only,


further arguments (currently not used).


Simes' approach to testing is combining p-values from single hypothesis tests with a global (intersected) hypothesis. \insertCiteHANCK:13;textualplm mentions it can be applied to any panel unit root test which yield a p-value for each individual series. The test is robust versus general patterns of cross-sectional dependence.

Further, this approach allows to discriminate between individuals for which the individual H0 (unit root present for individual series) is rejected/is not rejected by Hommel's procedure (\insertCiteHOMM:88;textualplm) for family-wise error rate control (FWER) at pre-specified significance level alpha via argument alpha (defaulting to 0.05), i.e., it controls for the multiplicity in testing.

The function phansitest takes as main input object either a plain numeric containing p-values of individual tests or a purtest object which holds a suitable pre-computed panel unit root test (one that produces p-values per individual series).

The function's return value (see section Value) is a list with detailed evaluation of the applied Simes test.

The associated print method prints a verbal evaluation.


For phansitest, an object of class c("phansitest", "list") which i s a list with the elements:

  • id: integer, the identifier of the individual (integer sequence referring to position in input),

  • name: character, name of the input's individual (if it has a name, otherwise "1", "2", "3", ...),

  • p: numeric, p-values as input (either the numeric or extracted from the purtest object),

  • p.hommel: numeric, p-values after Hommel's transformation,

  • rejected: logical, indicating for which individual the individual null hypothesis is rejected (TRUE)/non-rejected (FALSE) (after controlling for multiplicity),

  • integer, giving the total number of rejected individual series,

  • alpha: numeric, the input alpha.


Kevin Tappe



See Also

purtest(), cipstest()


### input is numeric (p-values)
#### example from Hanck (2013), Table 11 (left side)
pvals <- c(0.0001,0.0001,0.0001,0.0001,0.0001,0.0001,0.0050,0.0050,0.0050,

countries <- c("Argentina","Sweden","Norway","Mexico","Italy","Finland","France",
              "Portugal","Canada", "Spain","Denmark","Switzerland","Japan")
names(pvals) <- countries

h <- phansitest(pvals)
print(h)              # (explicitly) prints test's evaluation
print(h, cutoff = 3L) # print only first 3 rejected ids 
h$rejected # logical indicating the individuals with rejected individual H0

### input is a (suitable) purtest object
data("Grunfeld", package = "plm")
y <- data.frame(split(Grunfeld$inv, Grunfeld$firm))
obj <- purtest(y, pmax = 4, exo = "intercept", test = "madwu")


plm documentation built on April 9, 2023, 5:06 p.m.