現時点(バージョン1.2-10)では、不均衡なケースはサポートされていないようです。私はコードを見てきましたが、最終的なデータ準備行(最初の引数が何であっても)は次のとおりです。
object <- as.data.frame(split(object, id))
アンバランスパネルを渡すと、この行は同じ値を繰り返すことでパネルをバランスさせます。不均衡なパネルに互いに分割する長さの時系列がある場合、エラーメッセージも生成されません。極めつけのページの例です:
> data(Grunfeld)
> purtest(inv ~ 1, data = Grunfeld, index = "firm", pmax = 4, test = "madwu")
Maddala-Wu Unit-Root Test (ex. var. : Individual Intercepts )
data: inv ~ 1
chisq = 47.5818, df = 20, p-value = 0.0004868
alternative hypothesis: stationarity
このパネルはバランスが取れています:
> unique(table(Grunfeld$firm))
[1] 20
それを不均衡にする:
> gr <- subset(Grunfeld, !(firm %in% c(3,4,5) & year <1945))
パネルの2つの異なる時系列の長さ:
> unique(table(gr$firm))
[1] 20 10
エラーメッセージなし:
> purtest(inv ~ 1, data = gr, index = "firm", pmax = 4, test = "madwu")
Maddala-Wu Unit-Root Test (ex. var. : Individual Intercepts )
data: inv ~ 1
chisq = 86.2132, df = 20, p-value = 3.379e-10
alternative hypothesis: stationarity
別の不均衡なパネル:
> gr <- subset(Grunfeld, !(firm %in% c(3,4,5) & year <1940))
> unique(table(gr$firm))
[1] 20 15
そしてエラーメッセージ:
> purtest(inv ~ 1, data = gr, index = "firm", pmax = 4, test = "madwu")
Erreur dans data.frame(`1` = c(317.6, 391.8, 410.6, 257.7, 330.8, 461.2, :
arguments imply differing number of rows: 20, 15