Find convergence clubs by means of Phillips and Sul clustering procedure.
findClubs(X, dataCols, regions = NULL, refCol, time_trim = 1/3, cstar = 0,
HACmethod = c("FQSB", "AQSB"))
dataframe containing data (preferably filtered data in order to remove business cycles)
integer vector with the column indices of the data
integer scalar indicating, if present, the index of a column with codes of the regions
integer scalar indicating the index of the column to use for ordering data
a numeric value between 0 and 1, representing the portion of time periods to trim when running log t regression model. Phillips and Sul (2007, 2009) suggest to discard the first third of the period.
numeric scalar, indicating the threshold value of the sieve criterion \(c^*\) to include units in the detected core (primary) group (step 3 of Phillips and Sul (2007, 2009) clustering algorithm). The default value is 0.
string indicating whether a Fixed Quadratic Spectral Bandwidth (HACmethod="FQSB"
) or
an Adaptive Quadratic Spectral Bandwidth (HACmethod="AQSB"
) should be used for the truncation
of the Quadratic Spectral kernel in estimating the log-t regression model
with heteroskedasticity and autocorrelation consistent standard errors.
The default method is "FQSB".
Ad object of class convergence.clubs
, containing a list of
Convergence Clubs, for each club a list is return with the
following objects: id
, a vector containing the row indices
of the regions in the club; model
, a list containing information
about the model used to run the t-test on the regions in the club;
regions
, a vector containing the names of the regions of the club (optional,
only included if parameter regions
is given)
In order to investigate the presence of convergence clubs according to the Phillips and Sul clustering procedure, the following steps are implemented:
(Cross section last observation ordering): Sort units in descending order according to the last panel observation of the period;
(Core group formation): Run the log t regression for the first k units \((2 < k < N)\) maximizing k under the condition that t-value is \(> -1.65\). In other words, chose the core group size k* as follows:
$$k^*= argmax_k \{t_k\} $$ subject to $$ min\{t_k \} > -1.65$$
If the condition \(t_k >-1.65\) does not hold for \(k = 2\) (the first two units), drop the first unit and repeat the same procedure. If \(t_k >-1.65\) does not hold for any units chosen, the whole panel diverges;
(Sieve the data for club membership): After the core group is detected, run the \(log t\) regression for the core group adding (one by one) each unit that does not belong to the latter. If \(t_k \) is greater than a critical value \(c^*\) add the new unit in the convergence club. All these units (those included in the core group \(k^*\) plus those added) form the first convergence club;
(Recursion and stopping rule): If there are units for which the previous condition fails, gather all these units in one group and run the log-t test to see if the condition \(t_k >-1.65\) holds. If the condition is satisfied, conclude that there are two convergence clubs. Otherwise, step 1 to 3 should be repeated on the same group to determine whether there are other subgroups that constitute convergence clubs. If no further convergence clubs are found (hence, no k in step 2 satisfies the condition \(t_k >-1.65\)), the remaining regions diverge.
Phillips, P. C.; Sul, D., 2007. Transition modeling and econometric convergence tests. Econometrica 75 (6), 1771-1855.
Phillips, P. C.; Sul, D., 2009. Economic transition and growth. Journal of Applied Econometrics 24 (7), 1153-1185.
Andrews, D. W., 1991. Heteroskedasticity and autocorrelation consistent covariance matrix estimation. Econometrica: Journal of the Econometric Society, 817-858.
mergeClubs
, Merges a list of clubs created by findClubs
;
mergeDivergent
, Merges divergent units according to the algorithm proposed by von Lyncker and Thoennessen (2016)
# NOT RUN {
data("countryGDP")
# }
# NOT RUN {
# Cluster Countries using GDP from year 2000 to year 2014
clubs <- findClubs(countryGDP, dataCols=2:35, regions = 1, refCol=35,
time_trim = 1/3, cstar = 0, HACmethod = "AQSB")
# }
# NOT RUN {
clubs <- findClubs(countryGDP, dataCols=2:35, regions = 1, refCol=35,
time_trim = 1/3, cstar = 0, HACmethod = "FQSB")
summary(clubs)
# }
Run the code above in your browser using DataLab