From 6ec50a9f7b7ad8db9d6c4bbfc583d3c54c827e55 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Mon, 12 Oct 2026 10:30:29 +0100 Subject: [PATCH 1/2] BUG: Use the differenced residuals for FirstDifferenceOLS.pesaran_cd PanelResults.pesaran_cd (#739, not released) computed the Pesaran CD statistic from the idiosyncratic shocks of every model, and #761 documented that for FirstDifferenceOLS these are y - x b in levels. They contain the entity effect and are as persistent as the errors in levels. First differences are used when the errors are persistent, for example a random walk. The sample correlations over time of series like these are large even for independent entities, and the test rejects too often. FirstDifferenceOLS now uses its resids, the residuals of the differenced equation, which are not persistent in that case. This is the statistic that plm::pcdtest gives for a pooled regression of the differenced data. pcdtest cannot be applied to an fd model of plm: it fails with "argument 1 is not a vector". As for the other models, the weights of a weighted model are not applied to the shocks. No other model changes. Size of the 5% test in percent of 1,000 samples per cell, for y = 1 + 0.5 x + a_i + e_it with standard normal x and a_i, and independent entities. "levels" is the statistic before this change and "differenced" the statistic of FirstDifferenceOLS.pesaran_cd now: independent errors random walk errors levels differenced levels differenced N=20, T=5 7.2 7.4 6.5 7.2 N=20, T=10 5.4 6.9 11.6 5.8 N=20, T=20 6.7 10.0 28.8 6.0 N=100, T=5 7.6 7.7 8.9 7.0 N=100, T=10 6.3 7.8 10.5 5.0 N=100, T=20 5.7 9.2 22.9 4.7 With random walk errors, for which first differences are efficient, the levels statistic over-rejects (8.9% to 28.8%, except 6.5% at N = 20, T = 5), more as T grows, while the differenced residuals have about the right size (4.7% to 7.2%). With independent errors the differenced residuals are MA(1) with autocorrelation -0.5, and the test is oversized (6.9% to 10.0%, tending to about 11% as T grows), where the levels statistic gives 5.4% to 7.6%. A model with two periods has one difference for each entity, so that no pair of entities has two overlapping residuals. pesaran_cd returns an InapplicableTestStatistic for it, as for any panel where no pair of entities has two overlapping observations. It returned a statistic computed from the two shocks in levels. pesaran_cd is new in 7.1, so no result of 7.0 changes. The Notes of the docstring say which series is used. The reference values are from R 4.6.1 and plm 2.6.7. The script tests/panel/results/pesaran-cd-fd-reference.R simulates six panels (balanced with independent shocks, with a common factor and with random walk shocks, and unbalanced with entry and exit, with missing periods and sparse), and writes them and the reference values to CSV files. It differences adjacent periods with the diff of plm, estimates the first difference regression, and computes the statistic from the definition in two ways (matrix of correlations and loop over pairs). Both equal plm::pcdtest of the regression. Where no entity has a missing period inside its range, it also checks that model = "fd" of plm has the same coefficient and the same number of residuals. model = "fd" differences the observations that follow each other in the data, which is across a missing period, whereas FirstDifferenceOLS differences adjacent periods only, so the panels with missing periods use diff. linearmodels agrees with the reference to 1e-14 on all six panels (the estimate, the number of differences and pairs, the statistic and the p-value). The statistic of the shocks in levels differs by 0.07 to 1.7. Tests, in test_results_pesaran_cd.py unless noted: * test_pesaran_cd_first_difference_plm: the six panels against R, with the number of pairs, and the statistic of the levels, which is not the same. * test_pesaran_cd_first_difference_closed_form: a balanced panel against sqrt(2 (T - 1) / (N (N - 1))) times the sum of the correlations from numpy. * test_pesaran_cd_first_difference_two_periods. * test_pesaran_cd_applicability and test_pesaran_cd_all_estimators (in test_results.py) used the shocks in levels as the reference for FirstDifferenceOLS and now use resids. A weighted FirstDifferenceOLS is added to the first. 11 of the 67 pesaran_cd tests fail on origin/main, all for FirstDifferenceOLS. --- linearmodels/panel/results.py | 20 +- .../panel/results/pesaran-cd-fd-panels.csv | 1667 +++++++++++++++++ .../panel/results/pesaran-cd-fd-reference.R | 202 ++ .../panel/results/pesaran-cd-fd-reference.csv | 7 + linearmodels/tests/panel/test_results.py | 7 +- .../tests/panel/test_results_pesaran_cd.py | 85 +- 6 files changed, 1973 insertions(+), 15 deletions(-) create mode 100644 linearmodels/tests/panel/results/pesaran-cd-fd-panels.csv create mode 100644 linearmodels/tests/panel/results/pesaran-cd-fd-reference.R create mode 100644 linearmodels/tests/panel/results/pesaran-cd-fd-reference.csv diff --git a/linearmodels/panel/results.py b/linearmodels/panel/results.py index c85531cee9..71f283928d 100644 --- a/linearmodels/panel/results.py +++ b/linearmodels/panel/results.py @@ -647,11 +647,14 @@ def pesaran_cd(self) -> InapplicableTestStatistic | NormalTestStatistic: Under the null, the statistic is asymptotically standard normal. The shocks are the model's ``idiosyncratic`` values, so the weights of - a weighted model are not applied to them, and the shocks of - ``FirstDifferenceOLS`` are in levels rather than the residuals of the - differenced equation. Since the correlations are computed over time, - the test assumes that the shocks are not serially correlated, and it - over-rejects if they are persistent. + a weighted model are not applied to them. The exception is + ``FirstDifferenceOLS``, which uses ``resids``, the residuals of the + differenced equation, as ``plm::pcdtest`` does for a pooled regression + of the differenced data. Its ``idiosyncratic`` values are in levels, + and are persistent when the errors are, for example a random walk, + which is when first differences are used. Since the correlations are + computed over time, the test assumes that the shocks are not serially + correlated, and it over-rejects if they are persistent. The test is not valid for every model and an InapplicableTestStatistic is returned for the following. @@ -692,10 +695,15 @@ def pesaran_cd(self) -> InapplicableTestStatistic | NormalTestStatistic: problem in testing for remaining cross-section correlation. Journal of Business & Economic Statistics, 40(3), 1191-1203. """ + from linearmodels.panel.model import FirstDifferenceOLS # noqa: PLC0415 + reason = self._pesaran_cd_inapplicable() if reason is not None: return InapplicableTestStatistic(reason=reason, name="Pesaran CD test") - eps = self.idiosyncratic.iloc[:, 0] + if isinstance(self.model, FirstDifferenceOLS): + eps = self.resids + else: + eps = self.idiosyncratic.iloc[:, 0] wide = eps.unstack(level=0) wide = wide.loc[:, wide.notnull().any(axis=0)] nentity = wide.shape[1] diff --git a/linearmodels/tests/panel/results/pesaran-cd-fd-panels.csv b/linearmodels/tests/panel/results/pesaran-cd-fd-panels.csv new file mode 100644 index 0000000000..b02cdd03b8 --- /dev/null +++ b/linearmodels/tests/panel/results/pesaran-cd-fd-panels.csv @@ -0,0 +1,1667 @@ +"case","entity","time","y","x" +"balanced-null",0,0,0.74441669,0.85163716 +"balanced-null",0,1,-0.8601818,-1.99744 +"balanced-null",0,2,-1.3635808,0.36099171 +"balanced-null",0,3,-1.0086603,-0.54580735 +"balanced-null",0,4,-0.27142146,0.59681206 +"balanced-null",0,5,-0.38236332,-0.71397046 +"balanced-null",0,6,-0.66348812,-0.20539095 +"balanced-null",0,7,0.48746368,0.25086878 +"balanced-null",1,0,-0.22697216,0.84719461 +"balanced-null",1,1,0.37316331,-0.34866493 +"balanced-null",1,2,0.085881487,1.3884694 +"balanced-null",1,3,1.3399614,0.42396955 +"balanced-null",1,4,0.24125583,0.92375279 +"balanced-null",1,5,1.9451008,0.15466995 +"balanced-null",1,6,-2.0146205,-0.024208472 +"balanced-null",1,7,-0.93770328,0.97443889 +"balanced-null",2,0,2.2457809,0.83231761 +"balanced-null",2,1,-1.2460293,-2.0114383 +"balanced-null",2,2,-1.4866235,-1.4089713 +"balanced-null",2,3,-1.8076239,-1.2071256 +"balanced-null",2,4,-0.17459477,1.0304378 +"balanced-null",2,5,0.81116293,-0.34489084 +"balanced-null",2,6,-1.0860463,-1.1150073 +"balanced-null",2,7,2.7513343,1.6997087 +"balanced-null",3,0,0.59289303,-0.7317245 +"balanced-null",3,1,0.74327583,-1.5495276 +"balanced-null",3,2,2.037724,0.78202467 +"balanced-null",3,3,-1.5188463,-1.4357481 +"balanced-null",3,4,1.1966472,-1.3674002 +"balanced-null",3,5,0.78825089,-1.2563511 +"balanced-null",3,6,0.8977728,0.63225032 +"balanced-null",3,7,0.66030553,0.18240237 +"balanced-null",4,0,-2.705253,-1.292646 +"balanced-null",4,1,-1.6884633,0.63425079 +"balanced-null",4,2,-3.7443388,-1.500533 +"balanced-null",4,3,-1.4103221,0.22638239 +"balanced-null",4,4,-0.70843753,-0.18812224 +"balanced-null",4,5,-2.3810668,0.10044273 +"balanced-null",4,6,-3.5684102,-0.94035932 +"balanced-null",4,7,-0.20898013,1.1646533 +"balanced-null",5,0,-1.4189793,-0.97893868 +"balanced-null",5,1,-0.98782251,0.96897311 +"balanced-null",5,2,-1.2810285,-0.15889939 +"balanced-null",5,3,-1.6711874,0.5846605 +"balanced-null",5,4,-1.8857319,0.40054287 +"balanced-null",5,5,-0.14706587,2.5568975 +"balanced-null",5,6,-2.2681046,-1.0383989 +"balanced-null",5,7,-1.4685466,-0.048061205 +"balanced-null",6,0,-0.65709603,0.45152386 +"balanced-null",6,1,0.20463196,0.18600914 +"balanced-null",6,2,-1.5786867,-1.9567767 +"balanced-null",6,3,-0.54297077,-0.88554822 +"balanced-null",6,4,-1.8425328,-1.3814425 +"balanced-null",6,5,0.71436345,0.77889649 +"balanced-null",6,6,-1.6816872,-2.5470892 +"balanced-null",6,7,-0.12981542,0.78873673 +"balanced-null",7,0,-0.6786399,0.4710061 +"balanced-null",7,1,-1.0252216,-0.60127788 +"balanced-null",7,2,1.160326,0.94398949 +"balanced-null",7,3,-0.95800582,0.47252229 +"balanced-null",7,4,0.84709605,-1.283481 +"balanced-null",7,5,1.1317636,-0.72611317 +"balanced-null",7,6,0.18355525,-0.23632198 +"balanced-null",7,7,2.4612681,0.75758834 +"balanced-null",8,0,0.53175095,0.81186492 +"balanced-null",8,1,1.0596597,0.38545155 +"balanced-null",8,2,-1.9152168,-2.4340952 +"balanced-null",8,3,0.82556002,0.95967497 +"balanced-null",8,4,2.562573,2.1479576 +"balanced-null",8,5,0.64057905,0.70045038 +"balanced-null",8,6,0.94503174,-1.5306548 +"balanced-null",8,7,2.1255514,1.2704369 +"balanced-null",9,0,1.312977,-0.11142684 +"balanced-null",9,1,-0.36932571,-0.75779541 +"balanced-null",9,2,-0.31374554,0.081776661 +"balanced-null",9,3,-0.6376731,0.16924027 +"balanced-null",9,4,0.35021741,0.18437722 +"balanced-null",9,5,0.88630039,0.39707022 +"balanced-null",9,6,1.5114956,0.6742361 +"balanced-null",9,7,-0.72715138,0.40083053 +"balanced-null",10,0,3.5040622,1.9065473 +"balanced-null",10,1,2.3591086,0.73173894 +"balanced-null",10,2,2.0906662,1.5679868 +"balanced-null",10,3,2.3930501,0.24891379 +"balanced-null",10,4,4.5695431,0.89608864 +"balanced-null",10,5,3.3067168,-0.49731236 +"balanced-null",10,6,0.82767275,-1.3286914 +"balanced-null",10,7,2.8919682,0.70658325 +"balanced-null",11,0,1.5860846,2.7064014 +"balanced-null",11,1,2.0260465,-0.41476674 +"balanced-null",11,2,-0.051011955,-0.30381458 +"balanced-null",11,3,1.66708,-0.25663224 +"balanced-null",11,4,3.7916202,0.78224323 +"balanced-null",11,5,0.15314632,0.32897314 +"balanced-null",11,6,-0.099788629,-2.7659742 +"balanced-null",11,7,0.43487338,-1.9897312 +"balanced-null",12,0,0.018563866,0.19713638 +"balanced-null",12,1,0.26769762,-0.96589644 +"balanced-null",12,2,-2.6886214,-1.3287926 +"balanced-null",12,3,-1.3475878,0.12661981 +"balanced-null",12,4,0.64094634,1.1358469 +"balanced-null",12,5,-1.8676684,0.97685768 +"balanced-null",12,6,-0.59172385,-0.23919539 +"balanced-null",12,7,-1.3598942,-1.5147068 +"balanced-null",13,0,2.9780859,0.25647407 +"balanced-null",13,1,0.098124524,0.39469014 +"balanced-null",13,2,3.1540209,1.6089561 +"balanced-null",13,3,2.4934302,1.2096071 +"balanced-null",13,4,1.9022111,0.21832766 +"balanced-null",13,5,-0.081626858,-0.53377998 +"balanced-null",13,6,-0.98281612,-0.95276755 +"balanced-null",13,7,3.1657475,1.6175657 +"balanced-null",14,0,-1.4243602,-0.92836486 +"balanced-null",14,1,2.6383631,1.1566294 +"balanced-null",14,2,-0.31184268,-0.90741453 +"balanced-null",14,3,1.2892992,-1.7804052 +"balanced-null",14,4,3.1334514,0.50310294 +"balanced-null",14,5,2.1814603,1.0639718 +"balanced-null",14,6,-1.2615069,-0.53301629 +"balanced-null",14,7,2.2506798,1.0672904 +"balanced-null",15,0,1.8531129,-0.61365558 +"balanced-null",15,1,2.1594511,0.12487202 +"balanced-null",15,2,4.1931875,-0.023679698 +"balanced-null",15,3,3.1446938,0.3694499 +"balanced-null",15,4,1.7938285,0.20211841 +"balanced-null",15,5,2.1333597,-0.43802995 +"balanced-null",15,6,1.889539,-1.1959334 +"balanced-null",15,7,1.8822974,0.27371341 +"balanced-null",16,0,4.1887866,1.0063126 +"balanced-null",16,1,3.4491053,2.6328683 +"balanced-null",16,2,2.9509029,-1.0058784 +"balanced-null",16,3,1.8471952,-0.44713125 +"balanced-null",16,4,3.3841052,-1.1786864 +"balanced-null",16,5,1.8532049,0.67326646 +"balanced-null",16,6,2.3308347,-0.11649837 +"balanced-null",16,7,3.0662425,0.59793058 +"balanced-null",17,0,0.79651125,0.24859475 +"balanced-null",17,1,1.2855371,0.58146281 +"balanced-null",17,2,4.1253765,1.8741784 +"balanced-null",17,3,4.0313856,1.3297746 +"balanced-null",17,4,0.86907727,-0.20046416 +"balanced-null",17,5,2.5693575,0.18716615 +"balanced-null",17,6,2.0961816,-0.30653052 +"balanced-null",17,7,4.2241973,0.94189338 +"balanced-null",18,0,1.5146417,-0.27716693 +"balanced-null",18,1,1.8678701,0.37799818 +"balanced-null",18,2,1.7448495,-0.45411174 +"balanced-null",18,3,2.8722065,-0.77258288 +"balanced-null",18,4,1.6838587,0.7335299 +"balanced-null",18,5,4.1915417,-0.84671948 +"balanced-null",18,6,1.6717694,1.613001 +"balanced-null",18,7,3.4381295,1.8271997 +"balanced-null",19,0,-0.13300632,0.81859507 +"balanced-null",19,1,0.33540157,0.38791684 +"balanced-null",19,2,-0.51318049,-1.088242 +"balanced-null",19,3,-0.48724072,1.3944368 +"balanced-null",19,4,-1.2286076,1.2199308 +"balanced-null",19,5,-2.0058756,-0.56857017 +"balanced-null",19,6,-3.5041249,-2.3649125 +"balanced-null",19,7,0.072491027,0.75489638 +"balanced-null",20,0,0.027875637,0.9947615 +"balanced-null",20,1,-0.30549584,-1.4559445 +"balanced-null",20,2,1.4693354,-0.27609426 +"balanced-null",20,3,1.9991329,0.14774517 +"balanced-null",20,4,-0.15418117,0.16405968 +"balanced-null",20,5,-1.044305,1.0217168 +"balanced-null",20,6,-0.16633569,-0.15109418 +"balanced-null",20,7,0.68847211,-0.020789455 +"balanced-null",21,0,-0.42071252,-1.6332593 +"balanced-null",21,1,-1.4754677,-0.21867479 +"balanced-null",21,2,0.63931441,0.75839392 +"balanced-null",21,3,1.0694908,-0.7112511 +"balanced-null",21,4,1.6675523,-0.63747291 +"balanced-null",21,5,0.90889811,0.61862024 +"balanced-null",21,6,2.047025,1.8908878 +"balanced-null",21,7,-0.68647149,0.25391948 +"balanced-null",22,0,1.8940924,-0.9814517 +"balanced-null",22,1,2.612853,0.82278017 +"balanced-null",22,2,0.90605258,-1.0840535 +"balanced-null",22,3,2.0996957,-0.18162998 +"balanced-null",22,4,0.43226305,-0.37313578 +"balanced-null",22,5,2.6140851,-0.023189367 +"balanced-null",22,6,1.1211644,-1.5357467 +"balanced-null",22,7,2.5242548,1.3162183 +"balanced-null",23,0,1.5821353,0.54732961 +"balanced-null",23,1,1.4957102,1.5491735 +"balanced-null",23,2,1.0715653,-1.5147571 +"balanced-null",23,3,2.8691612,-0.25459969 +"balanced-null",23,4,1.2603379,-0.087475682 +"balanced-null",23,5,2.2782852,1.0397026 +"balanced-null",23,6,0.91326468,-0.87695071 +"balanced-null",23,7,-0.45779093,0.32958341 +"balanced-null",24,0,2.0244046,-0.76830243 +"balanced-null",24,1,1.5849807,-0.62246574 +"balanced-null",24,2,3.9802279,2.6187757 +"balanced-null",24,3,0.85293354,0.78021406 +"balanced-null",24,4,0.51967775,0.10758982 +"balanced-null",24,5,1.9817742,-0.63469657 +"balanced-null",24,6,1.1485499,-0.38354725 +"balanced-null",24,7,2.0912733,0.61627609 +"balanced-null",25,0,1.5113698,-0.42595368 +"balanced-null",25,1,0.1213474,-0.96292971 +"balanced-null",25,2,1.7455095,1.1941489 +"balanced-null",25,3,1.8554624,2.1052568 +"balanced-null",25,4,3.0036899,0.99541444 +"balanced-null",25,5,2.4553832,0.23833753 +"balanced-null",25,6,3.3890615,-1.5253019 +"balanced-null",25,7,1.9152525,-1.4801766 +"balanced-null",26,0,3.1184299,3.41418 +"balanced-null",26,1,0.22594376,-0.22264593 +"balanced-null",26,2,-0.56382909,0.11660033 +"balanced-null",26,3,1.2083698,1.7669912 +"balanced-null",26,4,-0.078904346,-0.2104469 +"balanced-null",26,5,-0.67402635,0.49498205 +"balanced-null",26,6,0.019736888,-0.25464343 +"balanced-null",26,7,0.25286433,1.0572184 +"balanced-null",27,0,2.9035587,0.43787416 +"balanced-null",27,1,2.4017433,1.4965941 +"balanced-null",27,2,-0.26839706,-1.3177844 +"balanced-null",27,3,2.3826623,0.49397021 +"balanced-null",27,4,2.1822786,0.51447626 +"balanced-null",27,5,2.9764929,-0.23707321 +"balanced-null",27,6,1.3449962,-1.1890347 +"balanced-null",27,7,1.9134711,0.4760937 +"balanced-null",28,0,-1.8391018,0.35007065 +"balanced-null",28,1,0.043841249,-0.42760685 +"balanced-null",28,2,2.1171552,-0.63925155 +"balanced-null",28,3,-0.2770624,0.24250946 +"balanced-null",28,4,0.95334228,-0.23094373 +"balanced-null",28,5,-0.33560551,-0.63035185 +"balanced-null",28,6,-0.060956226,0.090403443 +"balanced-null",28,7,-0.25445309,-0.099075229 +"balanced-null",29,0,0.35106765,0.78454883 +"balanced-null",29,1,1.9831883,0.47697954 +"balanced-null",29,2,0.28426749,-0.78533016 +"balanced-null",29,3,1.4567983,-0.011570481 +"balanced-null",29,4,-1.3160802,-1.1557646 +"balanced-null",29,5,1.3316795,-0.034836174 +"balanced-null",29,6,1.2252606,-0.18788932 +"balanced-null",29,7,-0.7639353,0.18849554 +"balanced-null",30,0,0.33423802,0.080667228 +"balanced-null",30,1,-1.6502716,-1.867643 +"balanced-null",30,2,1.7958622,-0.060851904 +"balanced-null",30,3,1.3128236,-0.24793186 +"balanced-null",30,4,1.0280933,2.0710263 +"balanced-null",30,5,2.0448968,-0.89004674 +"balanced-null",30,6,0.01384015,0.90661759 +"balanced-null",30,7,1.463834,0.35045459 +"balanced-null",31,0,-0.27002342,-0.12133699 +"balanced-null",31,1,0.27296738,-0.62828519 +"balanced-null",31,2,1.452828,1.3264725 +"balanced-null",31,3,2.2765032,0.12016159 +"balanced-null",31,4,0.32755407,0.58998368 +"balanced-null",31,5,0.76087706,-0.72218243 +"balanced-null",31,6,1.3890398,0.97872317 +"balanced-null",31,7,1.663731,1.4301896 +"balanced-null",32,0,0.57126016,0.43933004 +"balanced-null",32,1,0.6731944,0.44034927 +"balanced-null",32,2,-1.3087378,-0.49498909 +"balanced-null",32,3,1.8781133,1.2512098 +"balanced-null",32,4,1.4853262,0.60519066 +"balanced-null",32,5,0.15198391,-0.16996843 +"balanced-null",32,6,-1.8199841,-0.92013898 +"balanced-null",32,7,0.25610128,0.20015804 +"balanced-null",33,0,-0.75942818,-0.0052153547 +"balanced-null",33,1,-0.10820955,1.5896982 +"balanced-null",33,2,-0.38978937,-0.54330283 +"balanced-null",33,3,-1.5045086,1.7439345 +"balanced-null",33,4,-0.6964299,0.80081193 +"balanced-null",33,5,-1.1171022,-0.016217414 +"balanced-null",33,6,1.0879892,-0.84480124 +"balanced-null",33,7,-1.8403434,-1.0628193 +"balanced-null",34,0,1.2397753,-0.33386575 +"balanced-null",34,1,2.6144573,-0.68241528 +"balanced-null",34,2,1.1114578,-0.03704546 +"balanced-null",34,3,2.2776963,0.97825756 +"balanced-null",34,4,1.8821684,-0.48048406 +"balanced-null",34,5,1.8920773,-0.07700068 +"balanced-null",34,6,4.6035645,0.69443795 +"balanced-null",34,7,2.1970979,-0.89643372 +"balanced-null",35,0,1.7578672,0.48125598 +"balanced-null",35,1,2.7695077,1.8729349 +"balanced-null",35,2,5.143823,1.525231 +"balanced-null",35,3,3.0823098,-0.39782584 +"balanced-null",35,4,0.74716838,0.70049895 +"balanced-null",35,5,2.8179308,-0.35624719 +"balanced-null",35,6,0.79173961,-0.32485916 +"balanced-null",35,7,1.2379237,-1.277394 +"balanced-null",36,0,1.714854,-0.91632855 +"balanced-null",36,1,1.925851,-0.089787543 +"balanced-null",36,2,1.2794877,-0.75157595 +"balanced-null",36,3,1.4549277,0.29914933 +"balanced-null",36,4,1.1560451,-0.10767185 +"balanced-null",36,5,4.5860374,-0.26697702 +"balanced-null",36,6,2.0342904,1.3735221 +"balanced-null",36,7,1.4055079,-0.78239431 +"balanced-null",37,0,2.9700033,0.60832928 +"balanced-null",37,1,1.3446229,1.3734762 +"balanced-null",37,2,2.9857559,-1.7279321 +"balanced-null",37,3,3.0754415,1.2402345 +"balanced-null",37,4,1.5549153,-2.1362716 +"balanced-null",37,5,2.9016397,0.65562232 +"balanced-null",37,6,1.3491985,0.064022758 +"balanced-null",37,7,1.9832262,-1.3932524 +"balanced-null",38,0,1.7566401,1.516071 +"balanced-null",38,1,-1.7916461,-0.57140347 +"balanced-null",38,2,-1.0900564,0.075093069 +"balanced-null",38,3,0.94353046,1.2441348 +"balanced-null",38,4,-0.25816472,0.74257531 +"balanced-null",38,5,0.25494449,-0.037841463 +"balanced-null",38,6,-2.470505,0.056638366 +"balanced-null",38,7,-0.59497889,0.12707465 +"balanced-null",39,0,2.4252187,-0.50673301 +"balanced-null",39,1,1.5186151,-0.431592 +"balanced-null",39,2,3.1420874,1.9721953 +"balanced-null",39,3,2.3906264,0.099262565 +"balanced-null",39,4,2.6270474,-0.75653243 +"balanced-null",39,5,1.2282253,0.72405879 +"balanced-null",39,6,2.326509,-1.0869064 +"balanced-null",39,7,0.8767342,0.67186451 +"balanced-factor",0,0,3.6174132,1.309511 +"balanced-factor",0,1,4.2983762,1.2426765 +"balanced-factor",0,2,4.4790456,0.77347472 +"balanced-factor",0,3,2.1796383,-0.96484492 +"balanced-factor",0,4,3.0334065,-0.64625578 +"balanced-factor",0,5,3.468767,0.93269066 +"balanced-factor",0,6,1.7021312,-0.70083253 +"balanced-factor",0,7,2.6740777,-0.62994361 +"balanced-factor",1,0,0.74378462,-0.30018409 +"balanced-factor",1,1,1.7344276,-0.21848669 +"balanced-factor",1,2,2.2788124,1.1007859 +"balanced-factor",1,3,-0.079368332,-0.39240714 +"balanced-factor",1,4,-0.45654293,-0.13345747 +"balanced-factor",1,5,2.7648555,0.84420296 +"balanced-factor",1,6,-0.39775693,-0.650832 +"balanced-factor",1,7,2.2189633,1.864836 +"balanced-factor",2,0,1.3336407,1.4680879 +"balanced-factor",2,1,-0.096941157,0.39433336 +"balanced-factor",2,2,0.61117925,-0.32824072 +"balanced-factor",2,3,-0.57262721,-0.5680444 +"balanced-factor",2,4,-2.0978483,-1.331282 +"balanced-factor",2,5,2.0433157,0.35717922 +"balanced-factor",2,6,0.63939392,1.1438905 +"balanced-factor",2,7,-0.80393388,-0.091554684 +"balanced-factor",3,0,-1.1575239,-2.0128973 +"balanced-factor",3,1,1.8266968,1.1998321 +"balanced-factor",3,2,3.7401096,1.2176601 +"balanced-factor",3,3,0.37625836,1.8138465 +"balanced-factor",3,4,0.5928941,0.68685691 +"balanced-factor",3,5,-0.28950263,-0.36902883 +"balanced-factor",3,6,0.62985877,-0.98923649 +"balanced-factor",3,7,1.9887985,-0.51997901 +"balanced-factor",4,0,0.96870559,-0.84492877 +"balanced-factor",4,1,2.8492108,0.8946566 +"balanced-factor",4,2,4.0573167,0.94502424 +"balanced-factor",4,3,1.3328557,0.64367415 +"balanced-factor",4,4,0.62556938,-1.0547463 +"balanced-factor",4,5,3.051226,0.75766068 +"balanced-factor",4,6,0.74892854,-0.17241936 +"balanced-factor",4,7,3.4694526,1.1341886 +"balanced-factor",5,0,-1.0144762,0.87634787 +"balanced-factor",5,1,1.1805022,1.834024 +"balanced-factor",5,2,0.1629404,0.86572579 +"balanced-factor",5,3,0.0080579084,-0.84544229 +"balanced-factor",5,4,-1.6226006,0.21521705 +"balanced-factor",5,5,3.4575316,0.40360259 +"balanced-factor",5,6,-1.0319661,-0.81879663 +"balanced-factor",5,7,1.1070426,0.53340557 +"balanced-factor",6,0,-0.95958029,1.2067345 +"balanced-factor",6,1,-0.74491947,-0.26565103 +"balanced-factor",6,2,-3.3705685,-0.74607682 +"balanced-factor",6,3,-2.2149809,0.50575001 +"balanced-factor",6,4,0.72489795,0.20623683 +"balanced-factor",6,5,0.78484352,0.82860032 +"balanced-factor",6,6,-1.3488052,0.61335683 +"balanced-factor",6,7,2.8151065,0.83561715 +"balanced-factor",7,0,1.2950713,-1.0941107 +"balanced-factor",7,1,2.7508361,1.3786137 +"balanced-factor",7,2,1.8288662,0.063895507 +"balanced-factor",7,3,0.89469545,-0.62546403 +"balanced-factor",7,4,3.0249211,0.45585019 +"balanced-factor",7,5,1.0292518,0.032771997 +"balanced-factor",7,6,0.48141651,-0.032897993 +"balanced-factor",7,7,0.33306858,0.13015948 +"balanced-factor",8,0,2.2116333,0.49559516 +"balanced-factor",8,1,2.1973326,0.45854345 +"balanced-factor",8,2,0.55180314,-0.79726655 +"balanced-factor",8,3,0.56283888,0.453887 +"balanced-factor",8,4,3.0851734,2.2700155 +"balanced-factor",8,5,-0.12168427,0.075605451 +"balanced-factor",8,6,-0.19666576,-1.8246132 +"balanced-factor",8,7,0.82653354,-0.73302665 +"balanced-factor",9,0,3.4185531,-0.88133246 +"balanced-factor",9,1,5.1535309,1.6666179 +"balanced-factor",9,2,4.3673321,1.1234711 +"balanced-factor",9,3,1.1451589,-0.29217533 +"balanced-factor",9,4,-0.089148635,0.085251755 +"balanced-factor",9,5,2.3726227,0.67249889 +"balanced-factor",9,6,2.7345366,0.08851074 +"balanced-factor",9,7,5.4694208,0.53296385 +"balanced-factor",10,0,0.39971206,0.58512858 +"balanced-factor",10,1,-0.033546795,1.6662571 +"balanced-factor",10,2,-0.7998309,0.40522904 +"balanced-factor",10,3,2.4354027,0.20097726 +"balanced-factor",10,4,-0.10140278,-2.3222618 +"balanced-factor",10,5,1.1101669,1.261568 +"balanced-factor",10,6,0.10743407,-1.0703793 +"balanced-factor",10,7,-0.92671566,0.27807073 +"balanced-factor",11,0,0.4432391,0.3832983 +"balanced-factor",11,1,2.7515653,1.6927319 +"balanced-factor",11,2,-0.14632975,-0.20318969 +"balanced-factor",11,3,1.7731046,0.93319247 +"balanced-factor",11,4,-1.7683422,0.17596525 +"balanced-factor",11,5,1.6525932,-0.094062501 +"balanced-factor",11,6,0.020919241,1.0579396 +"balanced-factor",11,7,3.0509016,0.55392364 +"balanced-factor",12,0,0.34951633,0.16582153 +"balanced-factor",12,1,2.0927771,-0.62634978 +"balanced-factor",12,2,0.70758108,-0.72457493 +"balanced-factor",12,3,3.0224077,2.6733609 +"balanced-factor",12,4,-0.16681486,-0.65570593 +"balanced-factor",12,5,3.1625067,0.59085854 +"balanced-factor",12,6,3.137948,1.0175463 +"balanced-factor",12,7,2.1403835,2.0830393 +"balanced-factor",13,0,0.51419879,0.80528812 +"balanced-factor",13,1,0.20365623,-0.69105918 +"balanced-factor",13,2,1.6258659,0.85072095 +"balanced-factor",13,3,1.2532774,0.28300456 +"balanced-factor",13,4,-0.39537244,-0.65185529 +"balanced-factor",13,5,-1.2233859,-1.4861081 +"balanced-factor",13,6,1.5267595,-0.92387386 +"balanced-factor",13,7,-1.129331,-1.1306742 +"balanced-factor",14,0,-0.74527999,-0.76829383 +"balanced-factor",14,1,0.73453157,-0.37505774 +"balanced-factor",14,2,2.3885139,-0.045187535 +"balanced-factor",14,3,0.32310717,1.5099118 +"balanced-factor",14,4,-0.54994616,-0.74783536 +"balanced-factor",14,5,1.9209784,0.27162124 +"balanced-factor",14,6,0.66913146,1.1014909 +"balanced-factor",14,7,1.6036097,1.3025167 +"balanced-factor",15,0,2.7414085,-0.16378467 +"balanced-factor",15,1,3.1714433,0.81304325 +"balanced-factor",15,2,3.462462,0.049643269 +"balanced-factor",15,3,1.8718443,0.61241208 +"balanced-factor",15,4,-1.0628221,-1.310835 +"balanced-factor",15,5,1.372431,-0.23961002 +"balanced-factor",15,6,0.99366368,0.62866334 +"balanced-factor",15,7,2.0612233,2.0362098 +"balanced-factor",16,0,1.4596386,0.12042856 +"balanced-factor",16,1,0.79261598,1.627793 +"balanced-factor",16,2,1.463449,0.30849409 +"balanced-factor",16,3,1.6987363,0.58670157 +"balanced-factor",16,4,1.2666231,-1.0129926 +"balanced-factor",16,5,2.5335186,0.35178468 +"balanced-factor",16,6,1.2122783,-0.06018634 +"balanced-factor",16,7,-0.30895842,1.9971238 +"balanced-factor",17,0,1.8245542,0.77040708 +"balanced-factor",17,1,1.4061429,-0.66240912 +"balanced-factor",17,2,0.83749573,0.066531438 +"balanced-factor",17,3,-1.0787762,-2.0353956 +"balanced-factor",17,4,-1.5190106,0.26754049 +"balanced-factor",17,5,1.746238,0.53986277 +"balanced-factor",17,6,-0.013179887,0.67366272 +"balanced-factor",17,7,0.69453737,1.4508303 +"balanced-factor",18,0,1.3041728,0.066296255 +"balanced-factor",18,1,1.7183923,0.25989204 +"balanced-factor",18,2,1.8878774,0.79549863 +"balanced-factor",18,3,2.2041963,0.87477757 +"balanced-factor",18,4,-0.091486281,1.1061585 +"balanced-factor",18,5,0.49336303,1.2656588 +"balanced-factor",18,6,2.3713076,1.2027132 +"balanced-factor",18,7,3.0895221,1.6790598 +"balanced-factor",19,0,2.1862471,-0.37319191 +"balanced-factor",19,1,3.7800603,-0.53014045 +"balanced-factor",19,2,3.1499921,-0.70223215 +"balanced-factor",19,3,3.7722489,1.4111345 +"balanced-factor",19,4,1.2992657,-0.47742512 +"balanced-factor",19,5,4.3923826,1.1924295 +"balanced-factor",19,6,2.7514491,-1.0775783 +"balanced-factor",19,7,1.5901354,0.95868447 +"balanced-factor",20,0,1.2230165,-0.46616697 +"balanced-factor",20,1,3.187238,0.54496729 +"balanced-factor",20,2,1.6660607,-0.15660508 +"balanced-factor",20,3,2.0613713,1.4280089 +"balanced-factor",20,4,1.0200816,-0.83116977 +"balanced-factor",20,5,1.3141148,-0.38496068 +"balanced-factor",20,6,0.47420691,-0.72587313 +"balanced-factor",20,7,3.1101314,1.2419546 +"balanced-factor",21,0,2.0207281,1.8429248 +"balanced-factor",21,1,3.1805604,1.38737 +"balanced-factor",21,2,1.7424814,0.17378871 +"balanced-factor",21,3,4.3472335,1.3667115 +"balanced-factor",21,4,1.5127352,0.67147582 +"balanced-factor",21,5,2.893849,0.58202523 +"balanced-factor",21,6,0.077709802,-0.54425894 +"balanced-factor",21,7,2.0987887,-1.6204047 +"balanced-factor",22,0,-0.80504464,0.71359613 +"balanced-factor",22,1,-0.02739055,0.21946533 +"balanced-factor",22,2,2.4697177,0.84522822 +"balanced-factor",22,3,-0.24838538,0.99830473 +"balanced-factor",22,4,-0.33821326,-0.46144536 +"balanced-factor",22,5,0.25933305,0.07086309 +"balanced-factor",22,6,-1.0120061,1.2316888 +"balanced-factor",22,7,1.0509142,0.62288 +"balanced-factor",23,0,1.8577971,0.26450408 +"balanced-factor",23,1,2.4749359,-0.45525276 +"balanced-factor",23,2,3.1610042,-1.0595844 +"balanced-factor",23,3,3.4465417,1.4343902 +"balanced-factor",23,4,1.3052965,0.49740285 +"balanced-factor",23,5,2.9488865,1.5939111 +"balanced-factor",23,6,0.2084385,0.9738992 +"balanced-factor",23,7,1.3152455,0.63921684 +"balanced-factor",24,0,1.5158749,1.7652826 +"balanced-factor",24,1,2.9744568,0.22713595 +"balanced-factor",24,2,1.3441549,0.41149711 +"balanced-factor",24,3,1.8714412,0.15086385 +"balanced-factor",24,4,1.5567447,0.77462176 +"balanced-factor",24,5,1.2122338,0.40986648 +"balanced-factor",24,6,3.850243,1.1954273 +"balanced-factor",24,7,1.4740175,-0.28418429 +"balanced-factor",25,0,0.8941518,1.114211 +"balanced-factor",25,1,2.256023,0.96526494 +"balanced-factor",25,2,2.099633,1.2995119 +"balanced-factor",25,3,1.5649597,1.5488378 +"balanced-factor",25,4,0.27943313,-1.0922798 +"balanced-factor",25,5,1.6685142,1.5687684 +"balanced-factor",25,6,0.37290917,-1.4412086 +"balanced-factor",25,7,1.5147638,1.9430759 +"balanced-factor",26,0,0.66497346,-0.038413957 +"balanced-factor",26,1,2.6566527,3.0663161 +"balanced-factor",26,2,3.0437352,0.77004581 +"balanced-factor",26,3,0.42494973,0.24319419 +"balanced-factor",26,4,1.60296,-1.7542094 +"balanced-factor",26,5,-0.89819286,0.93467978 +"balanced-factor",26,6,0.3540443,0.65235585 +"balanced-factor",26,7,1.5140641,-0.42349748 +"balanced-factor",27,0,0.19091946,-0.39727898 +"balanced-factor",27,1,2.2653482,0.2153276 +"balanced-factor",27,2,2.8235421,0.28311538 +"balanced-factor",27,3,1.2027904,1.1819906 +"balanced-factor",27,4,1.6348236,0.41111756 +"balanced-factor",27,5,2.0036889,-0.076133431 +"balanced-factor",27,6,1.2017809,0.75897649 +"balanced-factor",27,7,2.4404758,1.2787201 +"balanced-factor",28,0,0.96761893,0.94936808 +"balanced-factor",28,1,3.16974,-0.2015822 +"balanced-factor",28,2,0.20181019,-1.1964863 +"balanced-factor",28,3,1.8781823,0.27637317 +"balanced-factor",28,4,-0.64006215,-0.21309403 +"balanced-factor",28,5,1.4054559,0.53249946 +"balanced-factor",28,6,0.75437614,0.93007566 +"balanced-factor",28,7,2.0763625,0.46608768 +"balanced-factor",29,0,-1.7135204,-1.7126654 +"balanced-factor",29,1,0.53823694,0.38491938 +"balanced-factor",29,2,-3.4727938,0.069613351 +"balanced-factor",29,3,-3.179357,-0.89787763 +"balanced-factor",29,4,1.4193583,1.3174486 +"balanced-factor",29,5,-1.857707,-1.2185273 +"balanced-factor",29,6,-1.6547782,-0.16741632 +"balanced-factor",29,7,-0.052475081,1.0071392 +"balanced-factor",30,0,-0.34256428,-0.73349591 +"balanced-factor",30,1,2.6127446,2.2258639 +"balanced-factor",30,2,1.4692985,0.077330914 +"balanced-factor",30,3,0.98919514,1.5416778 +"balanced-factor",30,4,-1.6882158,-0.57531334 +"balanced-factor",30,5,1.3797832,1.4393264 +"balanced-factor",30,6,0.5000109,1.3652082 +"balanced-factor",30,7,1.7528974,0.4630689 +"balanced-factor",31,0,0.23429488,0.13112522 +"balanced-factor",31,1,0.44508581,0.63702409 +"balanced-factor",31,2,1.6161292,1.114473 +"balanced-factor",31,3,0.23455406,1.2558115 +"balanced-factor",31,4,1.0541994,0.18577327 +"balanced-factor",31,5,0.23029779,0.17714244 +"balanced-factor",31,6,-0.54827417,0.5494138 +"balanced-factor",31,7,1.4386396,2.1759709 +"balanced-factor",32,0,1.9752296,-2.0697518 +"balanced-factor",32,1,3.2069909,1.3246224 +"balanced-factor",32,2,4.2084141,1.0752276 +"balanced-factor",32,3,3.5131711,-1.4580698 +"balanced-factor",32,4,-0.70225878,-2.1400283 +"balanced-factor",32,5,2.5369452,0.5498637 +"balanced-factor",32,6,0.41674688,1.8842865 +"balanced-factor",32,7,2.7040688,-0.44335087 +"balanced-factor",33,0,-0.78863451,-0.7242313 +"balanced-factor",33,1,2.1072128,3.656864 +"balanced-factor",33,2,1.3133878,0.66356915 +"balanced-factor",33,3,0.38204958,-1.2826526 +"balanced-factor",33,4,-0.25892403,-0.53134925 +"balanced-factor",33,5,-0.69943283,0.30710987 +"balanced-factor",33,6,1.6762967,-0.014262568 +"balanced-factor",33,7,0.19722601,-1.0926432 +"balanced-factor",34,0,-0.067086608,-0.95929388 +"balanced-factor",34,1,0.9238214,1.6365532 +"balanced-factor",34,2,-0.54333886,0.50490122 +"balanced-factor",34,3,-0.58509622,-0.97721232 +"balanced-factor",34,4,-0.44453963,0.58110153 +"balanced-factor",34,5,-0.19534856,0.67643072 +"balanced-factor",34,6,0.84733769,0.31615128 +"balanced-factor",34,7,-0.24658592,-0.33044954 +"balanced-factor",35,0,-1.5571232,0.23034867 +"balanced-factor",35,1,2.2426103,1.7655719 +"balanced-factor",35,2,2.9181634,2.6197637 +"balanced-factor",35,3,0.18963594,1.1053021 +"balanced-factor",35,4,-1.9589208,-1.8973065 +"balanced-factor",35,5,1.3384149,0.71848089 +"balanced-factor",35,6,-0.56295081,0.85999082 +"balanced-factor",35,7,0.11486968,1.0045795 +"balanced-factor",36,0,2.1051676,0.70738966 +"balanced-factor",36,1,-1.1829239,1.1958674 +"balanced-factor",36,2,2.1875307,-0.90466976 +"balanced-factor",36,3,0.32996445,-0.78871009 +"balanced-factor",36,4,1.1188603,-0.26630434 +"balanced-factor",36,5,1.1769419,-0.84018446 +"balanced-factor",36,6,0.62936404,-1.1894696 +"balanced-factor",36,7,0.41272149,0.18679077 +"balanced-factor",37,0,0.99619178,0.84336415 +"balanced-factor",37,1,2.052225,1.8592382 +"balanced-factor",37,2,0.06719448,-2.2190965 +"balanced-factor",37,3,2.6157471,0.73088178 +"balanced-factor",37,4,1.2332655,0.47630484 +"balanced-factor",37,5,1.0904537,0.77757518 +"balanced-factor",37,6,2.5427999,-0.19701116 +"balanced-factor",37,7,3.2213229,0.97591665 +"balanced-factor",38,0,2.496251,0.63058035 +"balanced-factor",38,1,1.8587869,1.775094 +"balanced-factor",38,2,2.108188,0.045432582 +"balanced-factor",38,3,1.3697785,-1.3266065 +"balanced-factor",38,4,1.7542075,-1.1175965 +"balanced-factor",38,5,1.5367302,1.1010243 +"balanced-factor",38,6,1.5672284,-0.38515892 +"balanced-factor",38,7,1.3725271,-1.5186463 +"balanced-factor",39,0,-0.81836171,1.1853708 +"balanced-factor",39,1,2.167683,1.8856641 +"balanced-factor",39,2,2.0300445,2.1023203 +"balanced-factor",39,3,-1.3711709,0.31664398 +"balanced-factor",39,4,-1.1183603,-0.046343621 +"balanced-factor",39,5,0.86920404,1.4699161 +"balanced-factor",39,6,0.94149684,1.0510423 +"balanced-factor",39,7,0.037524192,-0.13961985 +"balanced-random-walk",0,0,0.54223786,0.15473058 +"balanced-random-walk",0,1,2.1417628,0.16317777 +"balanced-random-walk",0,2,4.7180429,2.9430078 +"balanced-random-walk",0,3,5.8686189,-0.13323582 +"balanced-random-walk",0,4,5.2985233,0.2403966 +"balanced-random-walk",0,5,4.509754,-1.8753523 +"balanced-random-walk",0,6,6.2163069,0.23166928 +"balanced-random-walk",0,7,3.9416366,-2.0520342 +"balanced-random-walk",1,0,1.248116,-0.23822927 +"balanced-random-walk",1,1,1.204198,0.97715676 +"balanced-random-walk",1,2,0.21070932,-0.34452244 +"balanced-random-walk",1,3,1.8806578,0.96746008 +"balanced-random-walk",1,4,-0.39847068,0.31888954 +"balanced-random-walk",1,5,-0.84201685,-0.4040223 +"balanced-random-walk",1,6,-0.38158797,2.0146439 +"balanced-random-walk",1,7,-1.6752184,0.38284698 +"balanced-random-walk",2,0,1.3251954,-1.6431807 +"balanced-random-walk",2,1,1.7163193,1.6016451 +"balanced-random-walk",2,2,-0.58255488,-2.3671179 +"balanced-random-walk",2,3,-0.042788737,-1.4138072 +"balanced-random-walk",2,4,1.2004747,-1.4217006 +"balanced-random-walk",2,5,2.5798472,1.6326917 +"balanced-random-walk",2,6,0.86977805,-1.4952135 +"balanced-random-walk",2,7,3.082729,-0.25139493 +"balanced-random-walk",3,0,-0.41427362,-1.1762992 +"balanced-random-walk",3,1,-0.22532995,0.072301052 +"balanced-random-walk",3,2,0.55879373,-1.5992978 +"balanced-random-walk",3,3,2.3720917,0.07317763 +"balanced-random-walk",3,4,3.0971034,0.71257687 +"balanced-random-walk",3,5,3.1307136,-0.26624614 +"balanced-random-walk",3,6,4.2605038,-0.3086562 +"balanced-random-walk",3,7,4.5636574,-0.74834113 +"balanced-random-walk",4,0,0.18305766,0.65680005 +"balanced-random-walk",4,1,1.0900852,1.4979772 +"balanced-random-walk",4,2,-0.86716957,-0.26575798 +"balanced-random-walk",4,3,-1.9467512,-1.403612 +"balanced-random-walk",4,4,-2.6393465,-0.54572087 +"balanced-random-walk",4,5,-4.4399468,-0.39255072 +"balanced-random-walk",4,6,-4.4195052,1.5470134 +"balanced-random-walk",4,7,-4.0952666,0.11109512 +"balanced-random-walk",5,0,0.27172692,0.23065715 +"balanced-random-walk",5,1,-0.18106894,0.95612459 +"balanced-random-walk",5,2,-2.7108363,-1.6145716 +"balanced-random-walk",5,3,-2.4048646,-1.6732811 +"balanced-random-walk",5,4,-2.549441,0.25056046 +"balanced-random-walk",5,5,-1.0883831,1.4968589 +"balanced-random-walk",5,6,-5.3490469,-2.2544296 +"balanced-random-walk",5,7,-3.0281168,0.14615233 +"balanced-random-walk",6,0,1.2391869,0.4984936 +"balanced-random-walk",6,1,2.6785497,1.0485644 +"balanced-random-walk",6,2,1.6685813,1.0776363 +"balanced-random-walk",6,3,2.4521937,0.0090234597 +"balanced-random-walk",6,4,1.4272518,-1.4028643 +"balanced-random-walk",6,5,2.792119,1.8483377 +"balanced-random-walk",6,6,1.8915426,0.16520799 +"balanced-random-walk",6,7,2.1992052,-1.5326929 +"balanced-random-walk",7,0,1.2664059,0.18069265 +"balanced-random-walk",7,1,1.265309,1.1543964 +"balanced-random-walk",7,2,-0.68760354,0.0070352224 +"balanced-random-walk",7,3,-2.6432231,-0.33241519 +"balanced-random-walk",7,4,-2.8183227,0.17138432 +"balanced-random-walk",7,5,-4.112208,0.10499659 +"balanced-random-walk",7,6,-3.8365781,0.53651761 +"balanced-random-walk",7,7,-4.5813703,0.22423893 +"balanced-random-walk",8,0,-0.017889851,0.023358976 +"balanced-random-walk",8,1,1.3711286,1.1481532 +"balanced-random-walk",8,2,1.4285801,-0.91835482 +"balanced-random-walk",8,3,0.74497506,0.097115487 +"balanced-random-walk",8,4,-0.12660582,0.9359763 +"balanced-random-walk",8,5,-0.99616988,-0.32175637 +"balanced-random-walk",8,6,0.86669678,2.6771826 +"balanced-random-walk",8,7,0.32296451,-1.5999584 +"balanced-random-walk",9,0,2.0401889,2.821047 +"balanced-random-walk",9,1,0.78025061,-0.38461478 +"balanced-random-walk",9,2,0.537231,-1.8468154 +"balanced-random-walk",9,3,-0.142989,-0.63462973 +"balanced-random-walk",9,4,1.0731753,-0.24433355 +"balanced-random-walk",9,5,0.52374345,-0.78350102 +"balanced-random-walk",9,6,1.7367784,-0.21998866 +"balanced-random-walk",9,7,1.67326,0.45231125 +"balanced-random-walk",10,0,1.9263939,0.1891391 +"balanced-random-walk",10,1,3.6472114,1.6818881 +"balanced-random-walk",10,2,2.8552767,-1.7423189 +"balanced-random-walk",10,3,4.8805174,-0.41192849 +"balanced-random-walk",10,4,4.8996241,-0.22892831 +"balanced-random-walk",10,5,5.2268,1.0995518 +"balanced-random-walk",10,6,2.4948954,-1.6791732 +"balanced-random-walk",10,7,3.2962927,0.56880105 +"balanced-random-walk",11,0,1.5160782,-0.47773906 +"balanced-random-walk",11,1,2.4173253,1.9334875 +"balanced-random-walk",11,2,0.79729008,0.29800034 +"balanced-random-walk",11,3,2.9404647,0.80241021 +"balanced-random-walk",11,4,2.2194302,-0.024827611 +"balanced-random-walk",11,5,1.9671522,0.52457513 +"balanced-random-walk",11,6,3.1191246,0.36053128 +"balanced-random-walk",11,7,2.9014542,-1.205779 +"balanced-random-walk",12,0,3.4984219,0.31019336 +"balanced-random-walk",12,1,2.2157617,-1.1572368 +"balanced-random-walk",12,2,2.9650292,-0.38793743 +"balanced-random-walk",12,3,2.328648,-1.3974225 +"balanced-random-walk",12,4,0.12234217,-1.0713404 +"balanced-random-walk",12,5,0.40582985,-1.0838874 +"balanced-random-walk",12,6,1.8500189,1.008072 +"balanced-random-walk",12,7,0.99319158,0.11666196 +"balanced-random-walk",13,0,0.11738794,0.5344397 +"balanced-random-walk",13,1,-0.049485538,1.6883371 +"balanced-random-walk",13,2,-1.5679615,-0.80266029 +"balanced-random-walk",13,3,-0.5470647,-0.83867784 +"balanced-random-walk",13,4,0.85836575,-0.64483737 +"balanced-random-walk",13,5,0.0056936061,-1.3252046 +"balanced-random-walk",13,6,-0.3908379,-1.2685371 +"balanced-random-walk",13,7,1.5365511,1.9291515 +"balanced-random-walk",14,0,-0.37531997,-0.18544685 +"balanced-random-walk",14,1,0.22205751,1.2907819 +"balanced-random-walk",14,2,-0.64984907,0.35034335 +"balanced-random-walk",14,3,-0.10282394,1.2314823 +"balanced-random-walk",14,4,0.9995339,0.0071497404 +"balanced-random-walk",14,5,2.1249005,0.6744729 +"balanced-random-walk",14,6,1.7886399,-0.66280108 +"balanced-random-walk",14,7,4.1902326,1.8242613 +"balanced-random-walk",15,0,0.14518928,1.0934719 +"balanced-random-walk",15,1,-0.73699607,0.74629209 +"balanced-random-walk",15,2,-2.1633486,-1.7107641 +"balanced-random-walk",15,3,-1.1616216,-0.10222074 +"balanced-random-walk",15,4,-0.59438428,1.6145443 +"balanced-random-walk",15,5,-0.48770308,0.52131633 +"balanced-random-walk",15,6,-0.86270565,1.7798149 +"balanced-random-walk",15,7,-4.1336639,-1.9633724 +"balanced-random-walk",16,0,1.3910791,-1.1484222 +"balanced-random-walk",16,1,2.692764,0.49550655 +"balanced-random-walk",16,2,3.3100389,0.77432807 +"balanced-random-walk",16,3,3.548006,1.1925523 +"balanced-random-walk",16,4,2.7751693,-1.2167486 +"balanced-random-walk",16,5,0.99952259,-1.4682371 +"balanced-random-walk",16,6,-0.52462786,-1.12479 +"balanced-random-walk",16,7,-0.74162571,-0.30276507 +"balanced-random-walk",17,0,2.6404292,2.2733169 +"balanced-random-walk",17,1,2.6075454,0.37832661 +"balanced-random-walk",17,2,2.813311,1.7088189 +"balanced-random-walk",17,3,0.94982242,-0.64576047 +"balanced-random-walk",17,4,1.257484,0.84031485 +"balanced-random-walk",17,5,1.2952609,0.57171617 +"balanced-random-walk",17,6,1.4511944,0.98353573 +"balanced-random-walk",17,7,0.23267989,-0.66490519 +"balanced-random-walk",18,0,3.39913,0.70859786 +"balanced-random-walk",18,1,3.5022432,1.4270327 +"balanced-random-walk",18,2,4.8337948,0.34879902 +"balanced-random-walk",18,3,6.1835886,1.5072361 +"balanced-random-walk",18,4,4.7832608,-0.50301189 +"balanced-random-walk",18,5,5.6401684,0.68423295 +"balanced-random-walk",18,6,6.2879118,1.1256156 +"balanced-random-walk",18,7,5.6361175,0.8865236 +"balanced-random-walk",19,0,1.5077424,1.2472015 +"balanced-random-walk",19,1,0.29483645,0.95383521 +"balanced-random-walk",19,2,-1.3130062,0.11575348 +"balanced-random-walk",19,3,-1.5978414,0.1419975 +"balanced-random-walk",19,4,-2.8147425,-2.6107713 +"balanced-random-walk",19,5,-3.1717176,-1.213341 +"balanced-random-walk",19,6,-3.902756,0.17569732 +"balanced-random-walk",19,7,-2.893091,0.28752832 +"balanced-random-walk",20,0,1.1329077,0.85256634 +"balanced-random-walk",20,1,0.29584555,-0.53002624 +"balanced-random-walk",20,2,-0.15996097,0.2335051 +"balanced-random-walk",20,3,-1.7259358,-1.0692111 +"balanced-random-walk",20,4,-2.7464934,-1.5951751 +"balanced-random-walk",20,5,-2.6812961,-0.047720616 +"balanced-random-walk",20,6,-1.6064715,0.74266681 +"balanced-random-walk",20,7,-1.1606441,1.1779206 +"balanced-random-walk",21,0,0.76670802,-0.98645666 +"balanced-random-walk",21,1,2.4346508,0.95686625 +"balanced-random-walk",21,2,1.914456,0.068310965 +"balanced-random-walk",21,3,1.9346414,-0.28687716 +"balanced-random-walk",21,4,1.9511955,-0.66835187 +"balanced-random-walk",21,5,2.6218614,-0.74533657 +"balanced-random-walk",21,6,3.3370629,-1.3948011 +"balanced-random-walk",21,7,5.1485905,-0.22522984 +"balanced-random-walk",22,0,1.7670265,-0.9818078 +"balanced-random-walk",22,1,1.2926538,-0.31509073 +"balanced-random-walk",22,2,-0.090573352,-1.5397863 +"balanced-random-walk",22,3,0.012448267,0.057489961 +"balanced-random-walk",22,4,-0.22624305,-0.32058402 +"balanced-random-walk",22,5,-0.64878219,2.0583003 +"balanced-random-walk",22,6,-2.4701602,0.38206395 +"balanced-random-walk",22,7,-2.7520463,1.0659187 +"balanced-random-walk",23,0,1.0036316,-0.15303864 +"balanced-random-walk",23,1,1.7207434,2.1115267 +"balanced-random-walk",23,2,0.27043369,-0.28948685 +"balanced-random-walk",23,3,1.3088585,-0.0083936715 +"balanced-random-walk",23,4,1.0506823,0.02290377 +"balanced-random-walk",23,5,1.7009534,-0.64892731 +"balanced-random-walk",23,6,1.597669,-0.33218152 +"balanced-random-walk",23,7,1.4504758,0.045593842 +"balanced-random-walk",24,0,1.9633235,1.4379742 +"balanced-random-walk",24,1,1.3561702,0.64170049 +"balanced-random-walk",24,2,-0.72033023,-1.3208862 +"balanced-random-walk",24,3,-0.13789253,-1.6525505 +"balanced-random-walk",24,4,-0.33792665,-1.775825 +"balanced-random-walk",24,5,0.87193313,1.619089 +"balanced-random-walk",24,6,-1.5946496,-0.44189744 +"balanced-random-walk",24,7,-1.3568113,-0.0067049986 +"balanced-random-walk",25,0,0.47160725,-0.33094431 +"balanced-random-walk",25,1,2.2392655,1.2859122 +"balanced-random-walk",25,2,1.1554155,0.64798988 +"balanced-random-walk",25,3,1.2947768,1.3397561 +"balanced-random-walk",25,4,0.75208621,-0.13370402 +"balanced-random-walk",25,5,0.15134846,0.42448706 +"balanced-random-walk",25,6,-0.8033552,-0.59881943 +"balanced-random-walk",25,7,-0.6338412,0.07205067 +"balanced-random-walk",26,0,0.60749864,2.8093456 +"balanced-random-walk",26,1,-1.2999209,-0.17137676 +"balanced-random-walk",26,2,-1.7646449,0.1140022 +"balanced-random-walk",26,3,0.026527362,1.6064625 +"balanced-random-walk",26,4,-0.51316382,-0.46818249 +"balanced-random-walk",26,5,-1.1332579,-1.3362447 +"balanced-random-walk",26,6,0.23682649,-1.0725068 +"balanced-random-walk",26,7,1.4197004,1.3802018 +"balanced-random-walk",27,0,2.3212819,0.68045502 +"balanced-random-walk",27,1,4.2901236,1.8453319 +"balanced-random-walk",27,2,5.2577614,0.9288995 +"balanced-random-walk",27,3,6.638318,0.25327666 +"balanced-random-walk",27,4,3.8675138,-2.202643 +"balanced-random-walk",27,5,5.0389436,1.4474585 +"balanced-random-walk",27,6,5.0578394,-1.1130424 +"balanced-random-walk",27,7,5.4874178,0.22497567 +"balanced-random-walk",28,0,0.28215287,-2.0785997 +"balanced-random-walk",28,1,1.0688138,-0.84909109 +"balanced-random-walk",28,2,2.3311386,0.28849314 +"balanced-random-walk",28,3,2.6151765,-0.057436848 +"balanced-random-walk",28,4,1.7466917,-1.2591729 +"balanced-random-walk",28,5,4.4989891,2.1160485 +"balanced-random-walk",28,6,1.9006957,0.59209424 +"balanced-random-walk",28,7,2.2437443,0.099661532 +"balanced-random-walk",29,0,0.23700424,0.83996206 +"balanced-random-walk",29,1,1.0226392,0.65401029 +"balanced-random-walk",29,2,0.44147244,1.5003315 +"balanced-random-walk",29,3,-1.0913784,1.4866929 +"balanced-random-walk",29,4,-2.9781115,-2.3935893 +"balanced-random-walk",29,5,-0.61877817,-0.1790189 +"balanced-random-walk",29,6,-1.1842854,0.076104086 +"balanced-random-walk",29,7,-3.5772816,-0.99560279 +"balanced-random-walk",30,0,0.74705259,0.53408261 +"balanced-random-walk",30,1,0.1867347,-1.1377372 +"balanced-random-walk",30,2,-1.5948638,-0.6054138 +"balanced-random-walk",30,3,-0.58909548,-0.29103947 +"balanced-random-walk",30,4,-0.099928452,-0.14137666 +"balanced-random-walk",30,5,2.09627,2.2030041 +"balanced-random-walk",30,6,2.273601,-0.70380858 +"balanced-random-walk",30,7,5.9224854,1.6029849 +"balanced-random-walk",31,0,0.55538179,-0.48005968 +"balanced-random-walk",31,1,0.57322911,0.38367797 +"balanced-random-walk",31,2,-0.44358015,-0.59028359 +"balanced-random-walk",31,3,0.36892168,0.7566431 +"balanced-random-walk",31,4,-0.77603408,-2.6034134 +"balanced-random-walk",31,5,0.74544637,-0.52713149 +"balanced-random-walk",31,6,0.87758382,0.13839906 +"balanced-random-walk",31,7,0.31044205,0.73794452 +"balanced-random-walk",32,0,0.10146978,-0.494938 +"balanced-random-walk",32,1,-1.7520731,-0.54492512 +"balanced-random-walk",32,2,-0.60453615,1.3941932 +"balanced-random-walk",32,3,-2.0706966,1.0981957 +"balanced-random-walk",32,4,-3.485866,-1.8871945 +"balanced-random-walk",32,5,-4.3537666,-2.1914279 +"balanced-random-walk",32,6,-2.8443405,-1.1647204 +"balanced-random-walk",32,7,-1.5520989,1.1307158 +"balanced-random-walk",33,0,2.094256,-0.23889367 +"balanced-random-walk",33,1,2.1351036,-0.50405515 +"balanced-random-walk",33,2,2.9868391,0.87059133 +"balanced-random-walk",33,3,1.9625917,-0.80671707 +"balanced-random-walk",33,4,0.70291339,-1.0340537 +"balanced-random-walk",33,5,1.1974082,0.51949564 +"balanced-random-walk",33,6,0.3759346,0.7923347 +"balanced-random-walk",33,7,-0.85283273,-0.60000616 +"balanced-random-walk",34,0,2.1867264,-0.33494951 +"balanced-random-walk",34,1,0.87373655,-0.23457495 +"balanced-random-walk",34,2,2.2514427,-1.3010021 +"balanced-random-walk",34,3,4.2250568,-1.0600595 +"balanced-random-walk",34,4,4.0599089,-1.1629502 +"balanced-random-walk",34,5,4.4224366,0.14454537 +"balanced-random-walk",34,6,4.6874304,-0.48294288 +"balanced-random-walk",34,7,3.5399687,-0.58393417 +"balanced-random-walk",35,0,-1.4024492,0.62855269 +"balanced-random-walk",35,1,-2.4902366,0.53403797 +"balanced-random-walk",35,2,-2.6301065,-0.31278817 +"balanced-random-walk",35,3,-4.3547019,-0.57425178 +"balanced-random-walk",35,4,-4.3051051,-1.6829656 +"balanced-random-walk",35,5,-4.3986683,-0.29484486 +"balanced-random-walk",35,6,-3.9696791,1.39174 +"balanced-random-walk",35,7,-4.9344197,-1.1669004 +"balanced-random-walk",36,0,1.5338402,0.80211662 +"balanced-random-walk",36,1,0.015880874,-0.5078505 +"balanced-random-walk",36,2,2.1045785,0.79991983 +"balanced-random-walk",36,3,0.90555659,-1.4442721 +"balanced-random-walk",36,4,1.5709123,-1.3117156 +"balanced-random-walk",36,5,5.3881948,2.4664949 +"balanced-random-walk",36,6,3.3241658,-0.51302455 +"balanced-random-walk",36,7,4.1447898,0.58236085 +"balanced-random-walk",37,0,2.0529161,1.733643 +"balanced-random-walk",37,1,1.7313774,0.63744378 +"balanced-random-walk",37,2,1.7123868,0.070348604 +"balanced-random-walk",37,3,1.2937958,0.85305419 +"balanced-random-walk",37,4,-0.043626536,0.23517001 +"balanced-random-walk",37,5,0.83963848,-1.5321086 +"balanced-random-walk",37,6,1.3884976,1.7350381 +"balanced-random-walk",37,7,0.32799615,-0.55551854 +"balanced-random-walk",38,0,3.4880424,-0.3488891 +"balanced-random-walk",38,1,4.5186476,0.92654858 +"balanced-random-walk",38,2,4.7430011,-0.048189665 +"balanced-random-walk",38,3,6.4439729,0.933174 +"balanced-random-walk",38,4,4.8205686,-0.06289462 +"balanced-random-walk",38,5,4.0360611,-0.92816561 +"balanced-random-walk",38,6,4.467098,-0.58033975 +"balanced-random-walk",38,7,6.5772865,1.1962159 +"balanced-random-walk",39,0,-3.1828347,-1.3513987 +"balanced-random-walk",39,1,-2.3283893,0.43724738 +"balanced-random-walk",39,2,-2.1507802,-0.33781769 +"balanced-random-walk",39,3,-2.4937328,-0.12085681 +"balanced-random-walk",39,4,-2.3932653,1.3886152 +"balanced-random-walk",39,5,-4.6790781,-0.94708566 +"balanced-random-walk",39,6,-3.7168609,-0.14309492 +"balanced-random-walk",39,7,-3.6146562,0.1774952 +"unbalanced-window",0,2,1.1014479,0.72375931 +"unbalanced-window",0,3,1.7299331,0.037954758 +"unbalanced-window",0,4,2.1920938,2.1013831 +"unbalanced-window",0,5,1.8926237,2.1660527 +"unbalanced-window",0,6,2.838872,-0.7832834 +"unbalanced-window",0,7,1.0482698,0.29942749 +"unbalanced-window",0,8,2.3208829,2.0259792 +"unbalanced-window",0,9,2.2740182,0.25530263 +"unbalanced-window",1,2,3.6725211,0.38718809 +"unbalanced-window",1,3,1.5417836,1.0882866 +"unbalanced-window",1,4,1.9391568,0.011015836 +"unbalanced-window",1,5,0.83872793,0.47504066 +"unbalanced-window",1,6,1.3489254,0.05701293 +"unbalanced-window",1,7,2.3275594,-0.62097868 +"unbalanced-window",1,8,0.40199152,-1.0480923 +"unbalanced-window",1,9,1.3813607,-0.86295215 +"unbalanced-window",2,2,-1.3112531,-3.4294909 +"unbalanced-window",2,3,-2.9288632,-0.94801826 +"unbalanced-window",2,4,-0.89360333,-1.5742332 +"unbalanced-window",2,5,-2.3329439,-2.2603695 +"unbalanced-window",2,6,0.70264563,-1.0928869 +"unbalanced-window",2,7,0.67243369,0.19322385 +"unbalanced-window",2,8,-1.5803922,-1.1444523 +"unbalanced-window",3,2,1.2357653,-1.2042567 +"unbalanced-window",3,3,3.8750665,1.453769 +"unbalanced-window",3,4,-0.81768799,-3.0152545 +"unbalanced-window",3,5,1.050681,-1.5939474 +"unbalanced-window",3,6,1.8780724,-1.4794816 +"unbalanced-window",3,7,2.0060462,-0.37788015 +"unbalanced-window",4,1,2.6034414,-0.22558226 +"unbalanced-window",4,2,3.6958743,0.13936404 +"unbalanced-window",4,3,4.4498547,-0.25884671 +"unbalanced-window",4,4,3.9321073,0.27923842 +"unbalanced-window",4,5,3.6281741,0.32069141 +"unbalanced-window",4,6,3.4382855,-0.13248049 +"unbalanced-window",4,7,3.2300227,-1.2145681 +"unbalanced-window",4,8,2.8706537,-1.0697966 +"unbalanced-window",5,1,-1.1694417,-1.7465766 +"unbalanced-window",5,2,-1.9183419,-0.50199307 +"unbalanced-window",5,3,-1.6407972,0.25540637 +"unbalanced-window",5,4,1.5278381,2.3312439 +"unbalanced-window",5,5,-1.3249807,-2.780127 +"unbalanced-window",5,6,-1.2825753,-0.88633025 +"unbalanced-window",6,3,-1.0433886,0.14077608 +"unbalanced-window",6,4,0.38924603,0.016460295 +"unbalanced-window",6,5,-2.4728949,-1.9240889 +"unbalanced-window",6,6,-0.61824731,-0.17784311 +"unbalanced-window",6,7,-1.2201319,0.81049781 +"unbalanced-window",6,8,1.815397,0.062886517 +"unbalanced-window",7,2,0.43702255,0.81491173 +"unbalanced-window",7,3,1.8078067,1.4050912 +"unbalanced-window",7,4,1.5935157,-1.0436989 +"unbalanced-window",7,5,1.4459105,0.017598356 +"unbalanced-window",7,6,0.7369929,0.069260204 +"unbalanced-window",7,7,1.1603777,0.29037572 +"unbalanced-window",7,8,-0.15897642,-1.1336272 +"unbalanced-window",7,9,1.0955407,1.1108477 +"unbalanced-window",8,0,1.7965922,1.1629646 +"unbalanced-window",8,1,-1.2241755,-1.8836139 +"unbalanced-window",8,2,2.8826871,-0.46219873 +"unbalanced-window",8,3,1.2361964,-0.71653161 +"unbalanced-window",8,4,0.56481576,-0.011730504 +"unbalanced-window",8,5,1.917552,0.50647886 +"unbalanced-window",8,6,1.9761806,-0.79092035 +"unbalanced-window",8,7,2.2065396,1.3734711 +"unbalanced-window",8,8,1.1350841,1.401828 +"unbalanced-window",8,9,2.3386776,1.2131006 +"unbalanced-window",9,3,-0.16565996,-1.6431755 +"unbalanced-window",9,4,0.61376253,0.13809777 +"unbalanced-window",9,5,0.75486577,0.42574298 +"unbalanced-window",9,6,2.7476085,0.85651874 +"unbalanced-window",9,7,1.2106457,0.36353258 +"unbalanced-window",10,2,0.42525227,-0.48292958 +"unbalanced-window",10,3,-0.80260222,1.3406504 +"unbalanced-window",10,4,-0.45155993,-0.56830049 +"unbalanced-window",10,5,0.22704339,0.35966285 +"unbalanced-window",10,6,-0.49000395,-0.24575815 +"unbalanced-window",10,7,-0.80610091,-1.4035031 +"unbalanced-window",10,8,-1.2568073,-0.39562248 +"unbalanced-window",10,9,-0.46004785,0.84493385 +"unbalanced-window",11,2,-1.2735711,-0.29150609 +"unbalanced-window",11,3,1.3536275,1.5906141 +"unbalanced-window",11,4,0.40706821,0.32445399 +"unbalanced-window",11,5,-0.29906761,-0.56871894 +"unbalanced-window",11,6,-0.84397815,0.016754445 +"unbalanced-window",11,7,0.56496919,-0.46964296 +"unbalanced-window",11,8,-1.3360424,-0.25377099 +"unbalanced-window",12,2,0.73670847,-1.3834885 +"unbalanced-window",12,3,1.2916479,0.33802263 +"unbalanced-window",12,4,1.2583531,0.49950058 +"unbalanced-window",12,5,-0.43018631,-1.3716067 +"unbalanced-window",12,6,2.3620754,0.93721409 +"unbalanced-window",12,7,2.3128279,-0.1046894 +"unbalanced-window",12,8,2.1521934,-0.94346463 +"unbalanced-window",13,3,0.12677126,0.74888859 +"unbalanced-window",13,4,1.1891948,-0.32401493 +"unbalanced-window",13,5,1.0954306,0.65482896 +"unbalanced-window",13,6,0.11811729,-0.81177597 +"unbalanced-window",14,3,1.4414659,0.19599821 +"unbalanced-window",14,4,0.57903509,-0.7237225 +"unbalanced-window",14,5,0.78385002,-1.0367644 +"unbalanced-window",14,6,4.5051152,-0.71074978 +"unbalanced-window",14,7,2.2790286,0.24048756 +"unbalanced-window",15,1,2.3027619,0.0033436108 +"unbalanced-window",15,2,0.30602571,1.0674945 +"unbalanced-window",15,3,0.0081585477,0.88676098 +"unbalanced-window",15,4,1.1040064,-0.91233807 +"unbalanced-window",15,5,-0.15503823,-1.0344023 +"unbalanced-window",15,6,0.38569467,0.9377359 +"unbalanced-window",16,2,2.1186195,-1.3808741 +"unbalanced-window",16,3,2.4671817,-0.40440825 +"unbalanced-window",16,4,4.324473,0.041222281 +"unbalanced-window",16,5,3.8101288,0.14050733 +"unbalanced-window",16,6,2.1858497,-1.3213111 +"unbalanced-window",16,7,4.0338801,-0.57410666 +"unbalanced-window",16,8,4.9713417,1.6870145 +"unbalanced-window",17,2,-0.48842451,-0.54454659 +"unbalanced-window",17,3,-3.165109,-2.0359133 +"unbalanced-window",17,4,-0.41309551,0.24855347 +"unbalanced-window",17,5,0.37904159,0.69890776 +"unbalanced-window",17,6,-0.26959694,-1.2717471 +"unbalanced-window",17,7,1.7603033,0.60735945 +"unbalanced-window",17,8,0.34661376,-1.7882406 +"unbalanced-window",17,9,-2.2297483,-1.5161822 +"unbalanced-window",18,1,2.3548331,0.27182363 +"unbalanced-window",18,2,2.0709028,1.0697599 +"unbalanced-window",18,3,1.6590628,-0.031260772 +"unbalanced-window",18,4,2.2976481,1.4474289 +"unbalanced-window",18,5,3.6857965,2.3702163 +"unbalanced-window",18,6,3.028066,0.16588405 +"unbalanced-window",19,1,-2.0351755,-1.149506 +"unbalanced-window",19,2,-1.3132105,-1.0220843 +"unbalanced-window",19,3,-0.70574435,-1.5532132 +"unbalanced-window",19,4,-0.31785938,-0.13790018 +"unbalanced-window",19,5,-1.6180911,0.24593473 +"unbalanced-window",19,6,-3.1812685,0.44795269 +"unbalanced-window",20,1,2.5587909,-1.3162044 +"unbalanced-window",20,2,4.1401273,-0.13094321 +"unbalanced-window",20,3,2.5533599,0.23444194 +"unbalanced-window",20,4,2.8835363,-0.73723329 +"unbalanced-window",20,5,1.6080144,-2.3270328 +"unbalanced-window",20,6,3.0225952,-0.45410872 +"unbalanced-window",20,7,2.7255103,1.1995958 +"unbalanced-window",20,8,1.1080321,-1.5620574 +"unbalanced-window",20,9,3.1437042,0.79492126 +"unbalanced-window",21,0,2.7389676,0.93942594 +"unbalanced-window",21,1,0.69499202,-0.6059353 +"unbalanced-window",21,2,0.46263954,-1.0785005 +"unbalanced-window",21,3,1.057741,0.72519296 +"unbalanced-window",21,4,1.4078463,-0.35900346 +"unbalanced-window",21,5,-1.0351826,-1.2234291 +"unbalanced-window",21,6,1.2103773,-0.59808826 +"unbalanced-window",21,7,1.895587,0.18553184 +"unbalanced-window",21,8,0.29014453,0.28176575 +"unbalanced-window",22,3,1.6613356,1.0182307 +"unbalanced-window",22,4,-0.92608645,-0.24336707 +"unbalanced-window",22,5,0.91283659,-0.47039094 +"unbalanced-window",22,6,-1.0461724,-0.38429475 +"unbalanced-window",22,7,0.67042511,0.11798402 +"unbalanced-window",22,8,0.14652281,0.5164473 +"unbalanced-window",22,9,-1.4861245,-1.162506 +"unbalanced-window",23,3,2.4129959,-0.24725084 +"unbalanced-window",23,4,1.6587574,-1.4149651 +"unbalanced-window",23,5,0.96412437,-0.81691068 +"unbalanced-window",23,6,1.3641016,1.1952552 +"unbalanced-window",24,3,1.6323798,1.3931251 +"unbalanced-window",24,4,1.3197591,1.3782416 +"unbalanced-window",24,5,1.1538462,-0.60134911 +"unbalanced-window",24,6,2.2661618,1.1900154 +"unbalanced-window",25,1,1.8143046,-2.0790342 +"unbalanced-window",25,2,-0.97779589,-1.5512692 +"unbalanced-window",25,3,0.26584961,-0.61210965 +"unbalanced-window",25,4,-1.6705822,-1.3478588 +"unbalanced-window",25,5,0.74531798,0.22197074 +"unbalanced-window",25,6,0.25407236,0.11872681 +"unbalanced-window",26,3,1.8011985,0.036430925 +"unbalanced-window",26,4,3.5825812,1.1341978 +"unbalanced-window",26,5,2.6627276,-0.15951982 +"unbalanced-window",26,6,1.483219,-1.0194537 +"unbalanced-window",27,3,2.9892474,-0.50544908 +"unbalanced-window",27,4,0.17432953,-1.1146889 +"unbalanced-window",27,5,0.023228289,0.56614873 +"unbalanced-window",27,6,2.3062726,0.26168841 +"unbalanced-window",27,7,-0.28523795,-0.39056746 +"unbalanced-window",27,8,-0.39929208,-0.012892058 +"unbalanced-window",27,9,-0.14613569,-0.67139364 +"unbalanced-window",28,0,1.3330904,1.3146593 +"unbalanced-window",28,1,-0.92916741,-0.35188149 +"unbalanced-window",28,2,1.0688547,0.25443439 +"unbalanced-window",28,3,0.86252222,-0.10954081 +"unbalanced-window",28,4,0.74923831,0.72111597 +"unbalanced-window",28,5,-1.4706134,-1.2413846 +"unbalanced-window",28,6,0.1667748,0.45014094 +"unbalanced-window",28,7,-2.0454759,-1.6855825 +"unbalanced-window",29,1,1.4708783,-1.2638346 +"unbalanced-window",29,2,3.2275844,0.87315664 +"unbalanced-window",29,3,4.4036567,0.87294985 +"unbalanced-window",29,4,2.8949323,0.93852376 +"unbalanced-window",29,5,0.57511016,-0.46712801 +"unbalanced-window",29,6,2.7242492,1.6963529 +"unbalanced-window",29,7,1.6914062,0.031797895 +"unbalanced-window",30,1,0.53818796,-0.732186 +"unbalanced-window",30,2,0.126596,-0.12914318 +"unbalanced-window",30,3,0.51984722,0.18937806 +"unbalanced-window",30,4,0.34573805,0.45735197 +"unbalanced-window",30,5,0.89154749,-1.8818474 +"unbalanced-window",30,6,1.3304276,1.71289 +"unbalanced-window",30,7,0.53217749,-0.56445234 +"unbalanced-window",31,0,0.95114358,1.4613044 +"unbalanced-window",31,1,-0.25301559,0.47271042 +"unbalanced-window",31,2,0.041576908,-0.59993015 +"unbalanced-window",31,3,2.1490145,1.3523351 +"unbalanced-window",31,4,0.29122776,0.17367311 +"unbalanced-window",31,5,-0.27264717,-1.5322142 +"unbalanced-window",31,6,1.1287755,-0.097755134 +"unbalanced-window",31,7,0.15146577,-0.4239005 +"unbalanced-window",31,8,2.8174031,2.4175937 +"unbalanced-window",31,9,0.62749617,0.50786158 +"unbalanced-window",32,2,1.6523667,-0.88725428 +"unbalanced-window",32,3,2.685608,-0.71537235 +"unbalanced-window",32,4,3.4154239,2.3258893 +"unbalanced-window",32,5,0.67849347,-1.6250744 +"unbalanced-window",32,6,2.1106499,0.54537022 +"unbalanced-window",32,7,0.78170799,0.0068481903 +"unbalanced-window",33,1,4.2967743,0.48420966 +"unbalanced-window",33,2,2.6500067,0.26019504 +"unbalanced-window",33,3,1.4545628,-1.1249467 +"unbalanced-window",33,4,3.244719,0.052976197 +"unbalanced-window",33,5,2.7362441,0.93017594 +"unbalanced-window",33,6,2.0011378,1.1668808 +"unbalanced-window",33,7,3.5586435,1.1084299 +"unbalanced-window",33,8,1.5176269,0.025372584 +"unbalanced-window",33,9,0.48053122,1.3797607 +"unbalanced-window",34,3,2.3708105,0.8646151 +"unbalanced-window",34,4,0.060556005,-0.76620077 +"unbalanced-window",34,5,1.786966,1.4932074 +"unbalanced-window",34,6,1.1953123,0.82091934 +"unbalanced-window",34,7,0.81288544,-1.0028041 +"unbalanced-window",34,8,0.21758242,0.63207851 +"unbalanced-window",35,1,0.24617302,-2.2898573 +"unbalanced-window",35,2,3.1294514,0.30743721 +"unbalanced-window",35,3,0.28382306,-1.2245185 +"unbalanced-window",35,4,2.7984913,0.2775544 +"unbalanced-window",35,5,2.6779359,1.0478274 +"unbalanced-window",35,6,2.3724307,-1.0192043 +"unbalanced-window",36,1,1.2250767,-2.0868601 +"unbalanced-window",36,2,4.1275954,0.7470839 +"unbalanced-window",36,3,1.347908,0.55913725 +"unbalanced-window",36,4,1.5818965,-1.7203625 +"unbalanced-window",36,5,3.0663449,-0.71971085 +"unbalanced-window",36,6,2.5744331,-0.118761 +"unbalanced-window",36,7,1.1755387,-0.11664305 +"unbalanced-window",36,8,2.0963598,0.36848811 +"unbalanced-window",36,9,2.5281095,1.0182628 +"unbalanced-window",37,1,-0.43383495,-0.65378943 +"unbalanced-window",37,2,1.6417693,0.73500125 +"unbalanced-window",37,3,0.35176145,0.17032161 +"unbalanced-window",37,4,0.7960671,-0.45702643 +"unbalanced-window",37,5,0.37982059,0.77821325 +"unbalanced-window",37,6,2.4627195,-0.96841785 +"unbalanced-window",38,0,2.7740363,0.84233196 +"unbalanced-window",38,1,0.53216711,-2.281167 +"unbalanced-window",38,2,3.6234929,0.66340747 +"unbalanced-window",38,3,1.6845582,-0.45802671 +"unbalanced-window",38,4,3.6576817,1.2391907 +"unbalanced-window",38,5,3.3172686,0.88686079 +"unbalanced-window",38,6,-0.78225098,-0.94511966 +"unbalanced-window",39,3,4.1643804,-0.38862179 +"unbalanced-window",39,4,2.8342954,-0.18444154 +"unbalanced-window",39,5,3.9022904,-0.39772434 +"unbalanced-window",39,6,2.1833646,-0.95370388 +"unbalanced-window",39,7,2.9055971,-0.5286883 +"unbalanced-window",39,8,3.1913036,-0.1252561 +"unbalanced-window",39,9,2.3772708,0.0047238057 +"unbalanced-gaps",0,1,0.045530968,-0.41574974 +"unbalanced-gaps",0,2,-0.81497095,-0.089985244 +"unbalanced-gaps",0,3,-2.5683213,0.16967395 +"unbalanced-gaps",0,4,-2.7765382,-1.3946925 +"unbalanced-gaps",0,5,-1.915608,-0.19260737 +"unbalanced-gaps",0,8,-3.7478512,-0.39360768 +"unbalanced-gaps",0,9,-3.1218883,-1.8073986 +"unbalanced-gaps",1,0,1.0906827,0.19022797 +"unbalanced-gaps",1,1,1.3610112,-1.2498595 +"unbalanced-gaps",1,3,-0.54240206,-3.3027379 +"unbalanced-gaps",1,5,1.8156766,-1.3390374 +"unbalanced-gaps",1,6,1.7168206,0.38300234 +"unbalanced-gaps",1,7,0.62504157,0.18506456 +"unbalanced-gaps",1,8,1.0701955,-0.55852262 +"unbalanced-gaps",2,0,-0.59053519,-1.7285988 +"unbalanced-gaps",2,1,1.4266009,-0.046415152 +"unbalanced-gaps",2,2,2.8365054,1.1949754 +"unbalanced-gaps",2,3,2.9682436,1.5386349 +"unbalanced-gaps",2,4,-0.6818907,-1.4577957 +"unbalanced-gaps",2,6,2.5413515,1.0013017 +"unbalanced-gaps",2,7,2.7426507,-0.22036238 +"unbalanced-gaps",2,8,2.1771198,-0.81602148 +"unbalanced-gaps",2,9,1.3626881,-1.5888339 +"unbalanced-gaps",3,1,2.0452216,0.95522162 +"unbalanced-gaps",3,2,-0.9132724,-1.1235361 +"unbalanced-gaps",3,3,-0.63459689,-0.95866779 +"unbalanced-gaps",3,5,0.61976637,-0.40206909 +"unbalanced-gaps",3,6,1.4203482,-0.74054639 +"unbalanced-gaps",3,8,-1.2811862,-2.2501888 +"unbalanced-gaps",3,9,0.51049515,0.88517888 +"unbalanced-gaps",4,0,-1.6847939,-1.3903382 +"unbalanced-gaps",4,3,-0.39574559,-0.13484669 +"unbalanced-gaps",4,4,0.84114443,-0.061466973 +"unbalanced-gaps",4,5,0.33557624,-0.066325702 +"unbalanced-gaps",4,6,1.2583341,-0.48288111 +"unbalanced-gaps",4,8,0.94580323,-0.66776548 +"unbalanced-gaps",4,9,1.3744476,0.50327514 +"unbalanced-gaps",5,1,2.5951812,0.39891391 +"unbalanced-gaps",5,2,0.87271156,-1.4275665 +"unbalanced-gaps",5,3,-1.7844935,-2.6147286 +"unbalanced-gaps",5,4,1.3895312,-1.3022422 +"unbalanced-gaps",5,5,0.41776682,-1.4962471 +"unbalanced-gaps",5,7,-0.083521898,-0.72289498 +"unbalanced-gaps",5,8,-1.0010834,-1.738401 +"unbalanced-gaps",5,9,0.34047826,-0.79886176 +"unbalanced-gaps",6,1,3.4948448,1.6162398 +"unbalanced-gaps",6,2,1.9784116,0.34630804 +"unbalanced-gaps",6,4,3.0019783,0.043365743 +"unbalanced-gaps",6,5,2.3182108,-0.58120263 +"unbalanced-gaps",6,6,3.6271604,-0.039832226 +"unbalanced-gaps",6,7,3.9824246,1.0353154 +"unbalanced-gaps",6,8,1.9982272,-0.4086628 +"unbalanced-gaps",7,0,-0.83587231,-1.1038127 +"unbalanced-gaps",7,2,0.58513408,-0.072403929 +"unbalanced-gaps",7,3,1.4211585,-0.46833685 +"unbalanced-gaps",7,8,-0.3199486,-1.2275933 +"unbalanced-gaps",7,9,0.30237937,-0.062067151 +"unbalanced-gaps",8,1,2.2779974,0.12753378 +"unbalanced-gaps",8,2,2.7751536,1.0610409 +"unbalanced-gaps",8,3,1.5214763,-0.10603433 +"unbalanced-gaps",8,4,2.6833377,1.6123883 +"unbalanced-gaps",8,5,2.4898023,0.32923798 +"unbalanced-gaps",8,8,2.3850172,0.56864835 +"unbalanced-gaps",8,9,0.42633058,0.057275722 +"unbalanced-gaps",9,0,1.446944,0.51626656 +"unbalanced-gaps",9,1,3.4051062,1.0778165 +"unbalanced-gaps",9,2,2.7556522,0.57676727 +"unbalanced-gaps",9,4,1.1693497,-2.3513759 +"unbalanced-gaps",9,5,0.27062636,0.19684851 +"unbalanced-gaps",9,6,4.2196799,-1.6017264 +"unbalanced-gaps",9,7,2.0937012,-0.80396316 +"unbalanced-gaps",9,8,2.1607629,-2.4799457 +"unbalanced-gaps",9,9,1.4395023,-1.7648684 +"unbalanced-gaps",10,0,0.43411382,-2.3822032 +"unbalanced-gaps",10,1,1.3720735,0.15874677 +"unbalanced-gaps",10,3,2.0730724,-0.57122456 +"unbalanced-gaps",10,5,2.0334184,0.24931034 +"unbalanced-gaps",10,6,2.4591777,0.22036098 +"unbalanced-gaps",10,9,3.2562379,0.32968101 +"unbalanced-gaps",11,0,2.125527,0.31639202 +"unbalanced-gaps",11,3,0.79203345,-0.84382487 +"unbalanced-gaps",11,4,2.3191895,0.23736942 +"unbalanced-gaps",11,5,0.79031058,-0.41717383 +"unbalanced-gaps",11,7,3.4696051,0.69029685 +"unbalanced-gaps",11,8,0.53745783,-1.3450379 +"unbalanced-gaps",12,0,0.69129999,-1.1373021 +"unbalanced-gaps",12,1,4.1983968,0.14869079 +"unbalanced-gaps",12,2,2.9766231,1.2501059 +"unbalanced-gaps",12,4,1.8442148,-0.81335595 +"unbalanced-gaps",12,5,1.1784084,-0.84087433 +"unbalanced-gaps",12,6,2.2477973,0.55584653 +"unbalanced-gaps",12,8,0.0022962801,-0.21824855 +"unbalanced-gaps",13,0,0.1223392,-0.59386079 +"unbalanced-gaps",13,1,1.0203914,1.5171242 +"unbalanced-gaps",13,2,-0.40883253,0.93186303 +"unbalanced-gaps",13,3,-2.2893186,-0.20703236 +"unbalanced-gaps",13,4,-0.0020619182,0.33953603 +"unbalanced-gaps",13,5,-0.73515399,0.11066038 +"unbalanced-gaps",13,7,1.3396365,-0.66306638 +"unbalanced-gaps",13,8,-1.0686584,0.54637952 +"unbalanced-gaps",13,9,0.010362165,-0.8315181 +"unbalanced-gaps",14,1,1.8507375,0.66279104 +"unbalanced-gaps",14,2,1.1135945,-1.2976015 +"unbalanced-gaps",14,3,2.4796982,-0.22895032 +"unbalanced-gaps",14,4,0.9637073,-0.082006271 +"unbalanced-gaps",14,6,4.3715077,0.29842675 +"unbalanced-gaps",15,0,0.42000981,0.047541714 +"unbalanced-gaps",15,3,-0.90425097,-0.68315053 +"unbalanced-gaps",15,4,-0.17833762,0.18454058 +"unbalanced-gaps",15,5,-1.2807788,0.52483571 +"unbalanced-gaps",15,6,2.6319977,0.40029523 +"unbalanced-gaps",15,7,0.075681272,0.41915698 +"unbalanced-gaps",15,9,0.55254495,0.23489177 +"unbalanced-gaps",16,0,-0.12634057,0.52082016 +"unbalanced-gaps",16,1,1.1499032,-0.14931066 +"unbalanced-gaps",16,9,2.4192604,0.46950895 +"unbalanced-gaps",17,2,1.4513609,0.73756586 +"unbalanced-gaps",17,3,-0.90179722,0.99527614 +"unbalanced-gaps",17,4,1.8115346,0.1730484 +"unbalanced-gaps",17,6,1.7194679,-0.44366848 +"unbalanced-gaps",17,7,0.75977402,-0.2953749 +"unbalanced-gaps",17,9,0.69316733,-0.76512865 +"unbalanced-gaps",18,1,1.5176093,0.59796931 +"unbalanced-gaps",18,2,0.75897787,0.56221629 +"unbalanced-gaps",18,3,-0.18564623,1.213289 +"unbalanced-gaps",18,6,2.0833887,0.86584402 +"unbalanced-gaps",18,9,1.4907281,-0.88029496 +"unbalanced-gaps",19,1,0.68107018,1.3531051 +"unbalanced-gaps",19,2,-1.0688779,-1.7566593 +"unbalanced-gaps",19,3,-1.8169911,-1.676911 +"unbalanced-gaps",19,4,-0.70623234,-0.59146216 +"unbalanced-gaps",19,6,1.515701,-0.8860686 +"unbalanced-gaps",19,7,0.4437148,-1.3664237 +"unbalanced-gaps",19,8,-0.051045042,1.1210143 +"unbalanced-gaps",19,9,-0.44322291,1.4462753 +"unbalanced-gaps",20,0,0.45687961,-0.50726552 +"unbalanced-gaps",20,1,0.47211354,0.8588372 +"unbalanced-gaps",20,7,0.188287,-0.42303314 +"unbalanced-gaps",20,8,2.3803912,0.16047957 +"unbalanced-gaps",21,1,5.32778,0.11766578 +"unbalanced-gaps",21,2,3.5388526,0.62769213 +"unbalanced-gaps",21,3,1.5846281,-3.4369122 +"unbalanced-gaps",21,5,1.8646945,0.18309517 +"unbalanced-gaps",21,6,3.7820173,0.13586191 +"unbalanced-gaps",21,8,4.2359596,-0.26745435 +"unbalanced-gaps",21,9,3.7727466,-1.7169789 +"unbalanced-gaps",22,0,0.55517463,0.60118549 +"unbalanced-gaps",22,1,3.8608926,-0.035717725 +"unbalanced-gaps",22,2,-1.8589345,-0.35274525 +"unbalanced-gaps",22,4,2.8196583,0.94747701 +"unbalanced-gaps",22,5,1.0323222,0.042653643 +"unbalanced-gaps",22,7,-0.24458413,-0.042994061 +"unbalanced-gaps",22,8,-0.058363223,-2.504168 +"unbalanced-gaps",22,9,0.57268413,0.5437072 +"unbalanced-gaps",23,1,3.3441912,1.0110398 +"unbalanced-gaps",23,2,2.0783609,-0.12584991 +"unbalanced-gaps",23,7,4.0325566,1.0244371 +"unbalanced-gaps",23,8,0.73102691,1.0002424 +"unbalanced-gaps",23,9,3.9303334,2.221805 +"unbalanced-gaps",24,1,1.8847565,-0.3962856 +"unbalanced-gaps",24,2,0.77305204,-2.0252985 +"unbalanced-gaps",24,5,-0.11592106,-0.72241525 +"unbalanced-gaps",24,6,-0.41398814,-1.6355954 +"unbalanced-gaps",24,7,0.49782664,-0.053907964 +"unbalanced-gaps",24,8,-0.23528113,-0.90828936 +"unbalanced-gaps",25,0,2.1322253,0.77030993 +"unbalanced-gaps",25,1,2.4872758,-1.3369445 +"unbalanced-gaps",25,2,1.1082267,-0.90288847 +"unbalanced-gaps",25,3,0.88835268,-0.99146428 +"unbalanced-gaps",25,4,2.0826605,0.55979444 +"unbalanced-gaps",25,5,1.797797,-0.90953192 +"unbalanced-gaps",25,6,2.9773988,1.1795933 +"unbalanced-gaps",25,8,0.74370735,-1.5008643 +"unbalanced-gaps",25,9,1.5154917,-2.2750274 +"unbalanced-gaps",26,0,3.889409,0.45773947 +"unbalanced-gaps",26,1,3.0628642,-1.1823496 +"unbalanced-gaps",26,2,1.7518981,0.02488588 +"unbalanced-gaps",26,3,4.1966134,-0.83012893 +"unbalanced-gaps",26,6,1.7396002,-0.83694949 +"unbalanced-gaps",26,7,4.5558805,1.3630454 +"unbalanced-gaps",26,8,0.35931625,-1.8957248 +"unbalanced-gaps",26,9,2.9367619,-0.37821068 +"unbalanced-gaps",27,0,1.0423914,0.70585227 +"unbalanced-gaps",27,2,-0.36880967,-0.27370113 +"unbalanced-gaps",27,3,2.3188696,-0.70076274 +"unbalanced-gaps",27,4,2.2614189,1.0470659 +"unbalanced-gaps",27,5,0.94875511,-0.78597367 +"unbalanced-gaps",27,6,2.6090347,0.63976841 +"unbalanced-gaps",27,7,-0.28630806,0.031957633 +"unbalanced-gaps",27,8,-0.10237062,0.16812554 +"unbalanced-gaps",27,9,1.2937829,1.1290215 +"unbalanced-gaps",28,0,0.19437871,-0.83682456 +"unbalanced-gaps",28,1,1.2034778,-1.5485249 +"unbalanced-gaps",28,2,1.1595245,0.39416764 +"unbalanced-gaps",28,3,0.18220144,-1.0605253 +"unbalanced-gaps",28,4,2.5510232,-1.6049154 +"unbalanced-gaps",28,5,0.8311449,0.27485247 +"unbalanced-gaps",28,6,1.8813595,-0.31628527 +"unbalanced-gaps",29,0,0.63757086,-0.012287534 +"unbalanced-gaps",29,1,0.99872019,0.86511198 +"unbalanced-gaps",29,2,-0.56827791,-0.56316492 +"unbalanced-gaps",29,4,-0.070732991,-0.65470898 +"unbalanced-gaps",29,6,-0.027573028,0.4634412 +"unbalanced-gaps",29,8,1.6811893,0.042127608 +"unbalanced-gaps",29,9,0.93893385,1.1914945 +"unbalanced-gaps",30,0,0.95896508,-0.50927075 +"unbalanced-gaps",30,1,2.6720545,-0.34789031 +"unbalanced-gaps",30,2,1.1233612,-1.3029295 +"unbalanced-gaps",30,3,0.99687564,-0.27016503 +"unbalanced-gaps",30,5,0.60002144,-0.32213659 +"unbalanced-gaps",30,6,3.1113961,1.0160361 +"unbalanced-gaps",30,8,1.8119623,-0.30421087 +"unbalanced-gaps",31,0,-0.949098,0.15938772 +"unbalanced-gaps",31,1,0.93335111,-0.42067663 +"unbalanced-gaps",31,2,1.9497495,1.4243145 +"unbalanced-gaps",31,3,2.260246,0.24854193 +"unbalanced-gaps",31,4,1.5071045,-0.44770619 +"unbalanced-gaps",31,5,0.77415944,1.9997401 +"unbalanced-gaps",31,7,2.8552751,-0.77682777 +"unbalanced-gaps",31,8,1.7189617,-0.52060187 +"unbalanced-gaps",31,9,4.1732015,2.2742015 +"unbalanced-gaps",32,0,1.77724,0.11902936 +"unbalanced-gaps",32,2,2.314052,-1.1774046 +"unbalanced-gaps",32,3,-1.6368035,-0.90351072 +"unbalanced-gaps",32,5,-0.58747848,-1.8356873 +"unbalanced-gaps",32,6,2.0611699,0.24442438 +"unbalanced-gaps",32,8,-1.2406743,-1.1591315 +"unbalanced-gaps",32,9,-1.2286304,-0.42767915 +"unbalanced-gaps",33,0,3.2696752,-0.0024824517 +"unbalanced-gaps",33,1,-1.6628143,-1.511443 +"unbalanced-gaps",33,2,-0.57186747,-0.54512304 +"unbalanced-gaps",33,3,-1.848116,-0.72229482 +"unbalanced-gaps",33,7,0.85737973,0.2570394 +"unbalanced-gaps",33,8,-1.3767399,-0.47376002 +"unbalanced-gaps",34,1,-0.20884045,0.57616248 +"unbalanced-gaps",34,3,-2.4454004,-2.2196708 +"unbalanced-gaps",34,4,1.8242637,-0.95282749 +"unbalanced-gaps",34,5,-1.2142891,0.44352252 +"unbalanced-gaps",34,6,0.4865438,1.5185817 +"unbalanced-gaps",34,9,0.11789134,0.87025307 +"unbalanced-gaps",35,0,-0.26942461,-0.65667945 +"unbalanced-gaps",35,2,-0.64924774,-1.7626998 +"unbalanced-gaps",35,4,0.10492877,-0.98074539 +"unbalanced-gaps",35,7,3.6475456,0.68099586 +"unbalanced-gaps",35,9,-0.39061922,0.84278355 +"unbalanced-gaps",36,0,0.28529473,0.046820307 +"unbalanced-gaps",36,7,2.1838504,0.48999562 +"unbalanced-gaps",36,8,2.0215866,-0.50811363 +"unbalanced-gaps",36,9,0.39381416,-0.72686041 +"unbalanced-gaps",37,0,1.9825149,-0.4863425 +"unbalanced-gaps",37,3,-1.5569859,-1.227046 +"unbalanced-gaps",37,7,2.6777675,0.012838865 +"unbalanced-gaps",37,8,1.1861638,-0.35307995 +"unbalanced-gaps",37,9,1.7158903,-0.18090447 +"unbalanced-gaps",38,0,0.30555549,-0.21073797 +"unbalanced-gaps",38,1,1.653805,-0.9856362 +"unbalanced-gaps",38,2,-0.73165199,-1.6166729 +"unbalanced-gaps",38,3,0.71876017,-1.090513 +"unbalanced-gaps",38,4,0.75881595,0.88071256 +"unbalanced-gaps",38,5,3.2651789,-0.89681692 +"unbalanced-gaps",38,7,2.5600855,0.099026062 +"unbalanced-gaps",38,8,3.5494681,1.4003292 +"unbalanced-gaps",38,9,4.1656649,2.8210261 +"unbalanced-gaps",39,0,2.1930487,1.6057258 +"unbalanced-gaps",39,1,-0.13159146,-1.195211 +"unbalanced-gaps",39,2,0.39039455,-1.4821522 +"unbalanced-gaps",39,3,-0.37654303,-1.0039499 +"unbalanced-gaps",39,4,-1.5990213,-0.44175996 +"unbalanced-gaps",39,5,0.24947922,-0.84468416 +"unbalanced-gaps",39,6,-0.30447797,0.86187882 +"unbalanced-gaps",39,7,-0.58226489,-1.4151991 +"unbalanced-gaps",39,8,0.7753841,0.023367511 +"unbalanced-gaps",39,9,1.6832759,-1.1378316 +"unbalanced-sparse",0,1,2.0167079,-0.53167795 +"unbalanced-sparse",0,2,2.4996787,1.8110137 +"unbalanced-sparse",0,3,1.8246597,-0.96430294 +"unbalanced-sparse",0,6,3.5546904,0.75726523 +"unbalanced-sparse",0,7,-0.54811795,-0.85958984 +"unbalanced-sparse",1,2,-1.0889788,-1.5158791 +"unbalanced-sparse",1,5,-0.90789193,-0.30622816 +"unbalanced-sparse",1,6,0.054531442,1.0601332 +"unbalanced-sparse",1,7,1.7094065,0.54960359 +"unbalanced-sparse",2,0,-2.3023292,-2.8682032 +"unbalanced-sparse",2,1,2.5459494,-0.64202547 +"unbalanced-sparse",2,3,1.0068163,1.4556996 +"unbalanced-sparse",2,4,0.24529169,-0.070879526 +"unbalanced-sparse",2,5,2.9971122,1.783467 +"unbalanced-sparse",3,0,0.48546243,-1.4728196 +"unbalanced-sparse",3,1,2.9693834,-0.036752797 +"unbalanced-sparse",3,2,2.0626106,-0.79728556 +"unbalanced-sparse",3,3,2.7836396,0.85228983 +"unbalanced-sparse",3,5,1.3195546,-0.26258928 +"unbalanced-sparse",3,6,1.187538,0.7804487 +"unbalanced-sparse",3,7,0.76972417,-0.59257485 +"unbalanced-sparse",4,1,1.0842135,-1.2764238 +"unbalanced-sparse",4,2,3.028815,-0.19993072 +"unbalanced-sparse",4,4,4.6475144,2.3045008 +"unbalanced-sparse",4,5,4.2013178,0.93235868 +"unbalanced-sparse",4,6,3.7298276,0.51648812 +"unbalanced-sparse",5,0,4.1679892,2.9614131 +"unbalanced-sparse",5,2,2.9365178,-0.1823096 +"unbalanced-sparse",5,3,1.5217279,0.4209724 +"unbalanced-sparse",5,4,2.1120594,1.2152466 +"unbalanced-sparse",5,6,3.2923368,0.51354547 +"unbalanced-sparse",6,1,3.9822934,1.053589 +"unbalanced-sparse",6,5,2.4830541,0.9133023 +"unbalanced-sparse",6,6,-0.59601379,-0.31032421 +"unbalanced-sparse",7,1,1.5176688,0.64931308 +"unbalanced-sparse",7,2,1.9161536,1.0160841 +"unbalanced-sparse",7,3,-0.24389586,1.3680413 +"unbalanced-sparse",7,7,0.31071201,0.31900973 +"unbalanced-sparse",8,0,2.3179779,0.97256588 +"unbalanced-sparse",8,1,2.8211026,0.26948506 +"unbalanced-sparse",8,2,2.0585524,-0.033166407 +"unbalanced-sparse",8,3,2.6822286,-0.63558822 +"unbalanced-sparse",8,5,1.6700044,1.0773174 +"unbalanced-sparse",9,1,2.1142529,-0.596137 +"unbalanced-sparse",9,2,1.75195,1.3393474 +"unbalanced-sparse",9,3,-0.77978933,0.12564487 +"unbalanced-sparse",9,4,-0.047202998,0.72392254 +"unbalanced-sparse",9,5,2.1300221,2.5935872 +"unbalanced-sparse",9,7,-0.14320287,1.1235812 +"unbalanced-sparse",10,0,2.4452699,0.95951289 +"unbalanced-sparse",10,2,1.2529372,0.65968519 +"unbalanced-sparse",10,5,0.65803115,0.37791104 +"unbalanced-sparse",10,6,1.0734229,1.7482824 +"unbalanced-sparse",10,7,2.1756022,1.3916143 +"unbalanced-sparse",12,0,1.256652,-0.35306147 +"unbalanced-sparse",12,2,3.0982178,0.66055793 +"unbalanced-sparse",12,7,0.36630398,-0.98914794 +"unbalanced-sparse",13,0,1.0603797,-0.20788467 +"unbalanced-sparse",13,2,0.72522926,-2.7111322 +"unbalanced-sparse",13,3,0.60616321,-1.5695779 +"unbalanced-sparse",13,4,-0.2907275,-1.9019727 +"unbalanced-sparse",14,0,-0.31341934,-1.1447367 +"unbalanced-sparse",14,1,-2.5520159,0.59250312 +"unbalanced-sparse",14,4,-0.11556701,0.33863639 +"unbalanced-sparse",14,5,0.35929986,-0.51930404 +"unbalanced-sparse",14,6,-0.56251884,0.97071584 +"unbalanced-sparse",15,0,1.5516471,0.61871827 +"unbalanced-sparse",15,1,1.0101489,0.54662096 +"unbalanced-sparse",15,7,2.0023772,1.5470583 +"unbalanced-sparse",16,0,0.54447543,0.43840248 +"unbalanced-sparse",16,4,-0.38984876,1.3394693 +"unbalanced-sparse",16,5,-0.54211201,-0.75603601 +"unbalanced-sparse",16,7,2.7671284,-0.19484388 +"unbalanced-sparse",17,0,2.986414,1.1898394 +"unbalanced-sparse",17,1,2.0441615,-0.56910781 +"unbalanced-sparse",17,4,2.8078709,2.5508282 +"unbalanced-sparse",17,5,4.2551611,0.95897762 +"unbalanced-sparse",18,2,2.9107421,-0.95831781 +"unbalanced-sparse",18,3,2.368172,0.78677507 +"unbalanced-sparse",18,4,3.0677913,0.89589753 +"unbalanced-sparse",18,5,3.3635559,-0.11229882 +"unbalanced-sparse",18,6,1.1863428,-0.44781753 +"unbalanced-sparse",18,7,3.1196906,-0.8047527 +"unbalanced-sparse",19,1,0.35133454,-0.11452486 +"unbalanced-sparse",19,2,0.086074556,-0.52368725 +"unbalanced-sparse",19,3,-0.72942665,0.52168641 +"unbalanced-sparse",19,5,-0.26311918,0.80498126 +"unbalanced-sparse",20,3,1.6929499,0.1789374 +"unbalanced-sparse",20,4,3.8956937,0.11387064 +"unbalanced-sparse",20,5,3.8882577,1.8540788 +"unbalanced-sparse",20,6,3.1543354,1.0777179 +"unbalanced-sparse",21,0,1.9022994,-1.0749492 +"unbalanced-sparse",21,1,3.1750717,-0.20222813 +"unbalanced-sparse",21,2,3.7976771,0.69182097 +"unbalanced-sparse",21,4,3.4979392,1.2645224 +"unbalanced-sparse",21,6,2.0082129,0.68173666 +"unbalanced-sparse",21,7,2.801101,0.3697852 +"unbalanced-sparse",23,3,-0.74065326,0.37401252 +"unbalanced-sparse",23,5,0.72419443,1.4227811 +"unbalanced-sparse",23,7,-0.14036288,1.7815202 +"unbalanced-sparse",24,2,-0.80678603,-0.74887785 +"unbalanced-sparse",24,5,2.0979157,-0.61487195 +"unbalanced-sparse",24,7,0.67028907,-1.3701469 +"unbalanced-sparse",25,0,2.5542564,1.3482223 +"unbalanced-sparse",25,1,0.47287448,1.2905863 +"unbalanced-sparse",25,3,-0.80195789,-0.15897791 +"unbalanced-sparse",25,4,1.9669235,0.68421707 +"unbalanced-sparse",25,5,0.010222018,-0.57314186 +"unbalanced-sparse",25,6,0.77148158,1.3193005 +"unbalanced-sparse",25,7,0.70968623,-0.52743702 +"unbalanced-sparse",26,0,-1.4881643,0.24830409 +"unbalanced-sparse",26,1,1.7155452,1.4920887 +"unbalanced-sparse",26,5,0.39155691,-0.24024637 +"unbalanced-sparse",26,6,0.87608961,1.4236429 +"unbalanced-sparse",26,7,-1.5426683,-0.56090176 +"unbalanced-sparse",28,0,1.8566561,1.1650742 +"unbalanced-sparse",28,2,1.5664343,-0.30249663 +"unbalanced-sparse",28,4,3.5140413,2.025958 +"unbalanced-sparse",28,5,2.128622,-0.87248392 +"unbalanced-sparse",29,1,4.6003515,0.44456425 +"unbalanced-sparse",29,2,2.227253,-0.71038113 +"unbalanced-sparse",29,4,3.4350765,2.255837 +"unbalanced-sparse",30,4,2.7411937,0.5314091 +"unbalanced-sparse",30,6,2.0358472,-0.40700865 +"unbalanced-sparse",30,7,0.1559855,-1.3836879 +"unbalanced-sparse",31,0,1.9945097,1.4273385 +"unbalanced-sparse",31,2,-1.9536745,-0.26174922 +"unbalanced-sparse",31,4,-1.1039151,-0.26741589 +"unbalanced-sparse",31,6,-1.5952553,0.1900463 +"unbalanced-sparse",32,2,2.8895734,1.5547598 +"unbalanced-sparse",32,3,2.294097,1.7692513 +"unbalanced-sparse",32,5,0.30079938,-0.2813722 +"unbalanced-sparse",32,6,0.53762128,-0.68242903 +"unbalanced-sparse",32,7,0.95983047,-1.2575022 +"unbalanced-sparse",33,0,1.0378008,-0.04545836 +"unbalanced-sparse",33,1,-0.16615698,0.85465246 +"unbalanced-sparse",33,2,1.0971009,0.51037774 +"unbalanced-sparse",33,3,1.480483,-0.11961037 +"unbalanced-sparse",33,4,1.4261909,2.8114759 +"unbalanced-sparse",34,2,2.0846543,0.21217262 +"unbalanced-sparse",34,4,3.7548618,0.90625233 +"unbalanced-sparse",34,6,0.78419378,0.27909589 +"unbalanced-sparse",34,7,3.1293933,0.78410554 +"unbalanced-sparse",36,0,1.2454138,-0.65735628 +"unbalanced-sparse",36,1,1.4240221,0.3651196 +"unbalanced-sparse",36,3,3.5654862,0.057990906 +"unbalanced-sparse",36,5,1.9337082,-0.34454385 +"unbalanced-sparse",36,7,2.2003542,-0.049446911 +"unbalanced-sparse",37,0,2.8788262,1.369064 +"unbalanced-sparse",37,2,2.2750747,0.69080096 +"unbalanced-sparse",37,7,0.55942134,-0.91342375 +"unbalanced-sparse",38,0,2.155969,1.1636197 +"unbalanced-sparse",38,1,-0.83562505,0.22357654 +"unbalanced-sparse",38,2,0.31022897,-0.6695908 +"unbalanced-sparse",38,5,1.2968682,-0.13212985 +"unbalanced-sparse",38,6,0.71797273,0.47887115 +"unbalanced-sparse",39,1,0.82076582,1.4645045 +"unbalanced-sparse",39,2,1.5465131,-0.56356785 +"unbalanced-sparse",39,6,0.75276231,-0.19583423 diff --git a/linearmodels/tests/panel/results/pesaran-cd-fd-reference.R b/linearmodels/tests/panel/results/pesaran-cd-fd-reference.R new file mode 100644 index 0000000000..d36d4772dd --- /dev/null +++ b/linearmodels/tests/panel/results/pesaran-cd-fd-reference.R @@ -0,0 +1,202 @@ +# Reference values for PanelResults.pesaran_cd of FirstDifferenceOLS, which +# computes the Pesaran CD statistic from the residuals of the differenced +# equation. The script simulates the panels, so that nothing is shared with +# linearmodels, and uses the R package plm. +# +# Run from this directory: Rscript pesaran-cd-fd-reference.R +# Requires: plm (tested with 2.6.7 on R 4.6.1) +# Output: pesaran-cd-fd-panels.csv the simulated panels +# pesaran-cd-fd-reference.csv the reference values +# (both are read by ../test_results_pesaran_cd.py) +# +# Definition (Pesaran 2021, Empirical Economics 60(1), 13-50): +# +# e_it residual of the estimated equation, for the periods in which the +# entity has a residual +# T_ij number of periods in which e_it and e_jt are both observed +# rho_ij sample correlation of e_it and e_jt over those T_ij periods +# CD = sum_{i= 2 +# and a defined correlation. CD is asymptotically standard normal under the +# null of cross-sectional independence, so the p-value is 2 (1 - Phi(|CD|)). +# This is what plm::pcdtest(test = "cd") computes for the residuals of a panel +# model. The script computes it from the definition, in two ways, and checks +# that both equal pcdtest. +# +# The residuals are those of the first-difference estimator: the regression +# of the first difference of y on the first difference of x, without a +# constant. A difference exists for the period t if the entity is observed in +# the periods t and t - 1, and its residual is labelled t. +# +# The model = "fd" of plm differences the observations of an entity that follow +# each other in the data, so that it also differences across a period that is +# missing for the entity. FirstDifferenceOLS differences adjacent periods only. +# The differences here are therefore those of diff() of plm for panel series, +# which respects the time index, followed by a pooled regression of the +# differences. The pcdtest of plm cannot be used on an fd model ("argument 1 is +# not a vector"), but it can be used on this regression. If no entity is +# missing a period inside its observed range (case "unbalanced-window") the +# differences are those of model = "fd", and the script checks that the +# estimates agree. +# +# Cases. There are N entities and T periods (0, ..., T - 1) and +# +# y = 1 + 0.5 x + a_i + e_it, x = standard normal + 0.3 f_t, +# +# where a_i, f_t and the shocks e_it are standard normal, except where noted: +# balanced-null independent shocks +# balanced-factor e_it = u_it + 0.3 l_i f_t, with l_i = 1 + 0.5 N(0, 1) +# balanced-random-walk the shocks are independent random walks; their +# first differences, which this estimator uses, are +# independent +# unbalanced-window each entity is observed from a first period in 0-3 +# to a last period in T - 4 to T - 1 +# unbalanced-gaps like balanced-factor, with each observation missing +# with probability 0.3 (an entity needs at least 3 +# observations to be kept) +# unbalanced-sparse each observation is missing with probability 0.5, so +# that most pairs of entities have fewer than two +# differences in common +# cd_levels is the statistic of the series in levels, y - x b, where b is +# the estimate. It is what pesaran_cd used for FirstDifferenceOLS before it used +# the residuals of the differenced equation, and is only here to show how much +# the choice matters. + +suppressMessages(library(plm)) + +cat(R.version.string, "and plm", as.character(packageVersion("plm")), "\n") +set.seed(20261012) + +# CSV files with "\n" line endings on every platform +write_csv <- function(x, path, ...) { + con <- file(path, open = "wb") + on.exit(close(con)) + write.csv(x, con, row.names = FALSE, eol = "\n", ...) +} + +simulate <- function(case, n, nt, errors = "iid", loading = 0, observed = "all") { + common <- rnorm(nt) + load <- 1 + 0.5 * rnorm(n) + x <- matrix(rnorm(n * nt), n, nt) + 0.3 * matrix(rep(common, each = n), n, nt) + shock <- matrix(rnorm(n * nt), n, nt) + if (errors == "random-walk") shock <- t(apply(shock, 1, cumsum)) + shock <- shock + loading * outer(load, common) + effect <- matrix(rep(rnorm(n), nt), n, nt) + y <- 1 + 0.5 * x + effect + shock + keep <- matrix(TRUE, n, nt) + if (observed == "window") { + first <- 1 + floor(runif(n) * 4) + last <- nt - floor(runif(n) * 4) + keep <- outer(seq_len(n), seq_len(nt), function(i, t) t >= first[i] & t <= last[i]) + } else if (is.numeric(observed)) { + keep <- matrix(runif(n * nt) >= observed, n, nt) + keep <- keep & rowSums(keep) >= 3 + } + d <- data.frame(case = case, + entity = rep(seq_len(n) - 1L, times = nt), + time = rep(seq_len(nt) - 1L, each = n), + y = signif(as.vector(y), 8), x = signif(as.vector(x), 8)) + d <- d[as.vector(keep), ] + d[order(d$entity, d$time), ] +} + +panels <- rbind( + simulate("balanced-null", 40, 8), + simulate("balanced-factor", 40, 8, loading = 0.3), + simulate("balanced-random-walk", 40, 8, errors = "random-walk"), + simulate("unbalanced-window", 40, 10, observed = "window"), + simulate("unbalanced-gaps", 40, 10, loading = 0.3, observed = 0.3), + simulate("unbalanced-sparse", 40, 8, observed = 0.5) +) +write_csv(panels, "pesaran-cd-fd-panels.csv") +# Everything below uses the file, so that the reference is that of the data +# that the tests read +panels <- read.csv("pesaran-cd-fd-panels.csv", stringsAsFactors = FALSE) + +## ------------------------------------------------------------- CD test --- +# The CD statistic of the residuals e of the entities and periods (entity, time), +# from the N x N matrices of the correlations and of the numbers of common periods +cd_matrix <- function(entity, time, e) { + ent <- sort(unique(entity)) + tim <- sort(unique(time)) + m <- matrix(NA_real_, length(tim), length(ent)) + m[cbind(match(time, tim), match(entity, ent))] <- e + tij <- crossprod(!is.na(m)) + rho <- suppressWarnings(cor(m, use = "pairwise.complete.obs")) + pair <- lower.tri(rho) & tij >= 2 & is.finite(rho) + list(stat = sum(sqrt(tij[pair]) * rho[pair]) / sqrt(sum(pair)), + npairs = sum(pair)) +} + +# The same with a loop over the pairs, which uses the common periods of each pair +cd_loop <- function(entity, time, e) { + series <- split(setNames(e, time), entity) + total <- 0 + npairs <- 0 + for (i in seq_len(length(series) - 1)) { + for (j in (i + 1):length(series)) { + both <- intersect(names(series[[i]]), names(series[[j]])) + if (length(both) < 2) next + rho <- suppressWarnings(cor(series[[i]][both], series[[j]][both])) + if (!is.finite(rho)) next + total <- total + sqrt(length(both)) * rho + npairs <- npairs + 1 + } + } + list(stat = total / sqrt(npairs), npairs = npairs) +} + +agree <- function(a, b, what, rtol = 1e-10) { + if (abs(a - b) > rtol * max(1, abs(b))) { + stop(sprintf("%s: %.15g vs %.15g", what, a, b)) + } +} + +## --------------------------------------------------------- the cases ---- +rows <- list() +for (case in unique(panels$case)) { + d <- panels[panels$case == case, c("entity", "time", "y", "x")] + pd <- pdata.frame(d, index = c("entity", "time")) + + # Differences of adjacent periods, and the regression of the differences + fd <- data.frame(entity = d$entity, time = d$time, + dy = as.numeric(diff(pd$y)), dx = as.numeric(diff(pd$x))) + fd <- fd[!is.na(fd$dy), ] + fit <- plm(dy ~ dx - 1, data = pdata.frame(fd, index = c("entity", "time")), + model = "pooling") + e <- as.numeric(residuals(fit)) + agree(sum(e * fd$dx), 0, "the residuals are orthogonal to dx") + + by_hand <- cd_matrix(fd$entity, fd$time, e) + looped <- cd_loop(fd$entity, fd$time, e) + agree(by_hand$stat, looped$stat, paste(case, "matrix and loop"), 1e-12) + stopifnot(by_hand$npairs == looped$npairs) + # plm warns that it omits the pairs without two common periods, as the + # definition does + pcd <- suppressWarnings(pcdtest(fit, test = "cd")) + agree(by_hand$stat, unname(pcd$statistic), paste(case, "pcdtest of plm"), 1e-10) + + # The levels, with the estimate of the differenced equation + levels <- cd_matrix(d$entity, d$time, d$y - unname(coef(fit)) * d$x) + + consecutive <- all(tapply(d$time, d$entity, function(t) all(diff(t) == 1))) + if (consecutive) { + plm_fd <- plm(y ~ x - 1, data = pd, model = "fd") + agree(unname(coef(plm_fd)), unname(coef(fit)), paste(case, "model = fd of plm"), 1e-10) + stopifnot(length(residuals(plm_fd)) == nrow(fd)) + cat(sprintf("%-22s model = 'fd' of plm has this coefficient and %d residuals\n", + case, nrow(fd))) + } + + rows[[case]] <- data.frame(case = case, nobs = nrow(fd), + coef = unname(coef(fit)), npairs = by_hand$npairs, + cd_stat = by_hand$stat, + cd_pvalue = 2 * pnorm(-abs(by_hand$stat)), + cd_levels = levels$stat) + cat(sprintf("%-22s nobs %4d pairs %4d CD %9.6f p %.6g levels %9.6f\n", case, + nrow(fd), by_hand$npairs, by_hand$stat, + 2 * pnorm(-abs(by_hand$stat)), levels$stat)) +} +write_csv(do.call(rbind, rows), "pesaran-cd-fd-reference.csv", quote = FALSE) +cat("wrote pesaran-cd-fd-panels.csv and pesaran-cd-fd-reference.csv\n") diff --git a/linearmodels/tests/panel/results/pesaran-cd-fd-reference.csv b/linearmodels/tests/panel/results/pesaran-cd-fd-reference.csv new file mode 100644 index 0000000000..23f9d92dc9 --- /dev/null +++ b/linearmodels/tests/panel/results/pesaran-cd-fd-reference.csv @@ -0,0 +1,7 @@ +case,nobs,coef,npairs,cd_stat,cd_pvalue,cd_levels +balanced-null,280,0.496938833909092,780,-0.366978247478736,0.713635243727115,-0.699092395728204 +balanced-factor,280,0.620586914236625,780,4.97305388448626,6.59063321869154e-07,6.67457138202798 +balanced-random-walk,280,0.53582473502824,780,-0.639887390382865,0.522245812297977,-1.27791497537843 +unbalanced-window,234,0.612643943922457,780,-0.581545549620823,0.560872828552816,-0.655132520804181 +unbalanced-gaps,172,0.471570161846001,477,4.915933423038,8.83604250838333e-07,6.27580589857232 +unbalanced-sparse,76,0.487123421933064,92,-0.783691374882634,0.433221224719038,0.729178940387188 diff --git a/linearmodels/tests/panel/test_results.py b/linearmodels/tests/panel/test_results.py index cfce9ce4a2..d24b2d0450 100644 --- a/linearmodels/tests/panel/test_results.py +++ b/linearmodels/tests/panel/test_results.py @@ -241,7 +241,12 @@ def test_pesaran_cd_all_estimators(estimator): res = models[estimator]().fit() cd = res.pesaran_cd assert isinstance(cd, NormalTestStatistic) - expected = brute_force_pesaran_cd(res.idiosyncratic) + if estimator == "first-difference": + # The residuals of the differenced equation, not the shocks in levels + shocks = res.resids.to_frame() + else: + shocks = res.idiosyncratic + expected = brute_force_pesaran_cd(shocks) assert_allclose(cd.stat, expected, rtol=1e-10) assert_allclose(cd.pval, 2 * stats.norm.sf(abs(expected)), rtol=1e-10) diff --git a/linearmodels/tests/panel/test_results_pesaran_cd.py b/linearmodels/tests/panel/test_results_pesaran_cd.py index a4961f6abb..13637c99e1 100644 --- a/linearmodels/tests/panel/test_results_pesaran_cd.py +++ b/linearmodels/tests/panel/test_results_pesaran_cd.py @@ -1,8 +1,14 @@ """ -Tests of PanelResults.pesaran_cd: which models the test is applicable to. +Tests of PanelResults.pesaran_cd: which models the test is applicable to, and +the residuals that FirstDifferenceOLS uses. + +The reference values of FirstDifferenceOLS in results/pesaran-cd-fd-reference.csv +were produced by results/pesaran-cd-fd-reference.R, which computes the statistic +from the residuals of the differenced equation using the R package plm. """ from itertools import combinations +import os import numpy as np from numpy.testing import assert_allclose @@ -24,6 +30,8 @@ NormalTestStatistic, ) +RESULTS = os.path.join(os.path.split(os.path.abspath(__file__))[0], "results") + def cd_panel(seed=0, nentity=30, nperiod=8, loading=0.0): """Panel with independent errors, or a common factor if loading > 0""" @@ -91,6 +99,10 @@ def cd_models(frame): ), "random": (lambda: RandomEffects(y, xc), True), "first-difference": (lambda: FirstDifferenceOLS(y, x), True), + "first-difference-weighted": ( + lambda: FirstDifferenceOLS(y, x, weights=weights), + True, + ), # Time-invariant groups of entities, and groups unrelated to the periods "other-group": (lambda: PanelOLS(y, xc, other_effects=entity % 3), True), "entity-other-random": ( @@ -156,7 +168,13 @@ def test_pesaran_cd_applicability(name): cd = res.pesaran_cd if applicable: assert isinstance(cd, NormalTestStatistic) - expected = brute_force_cd(res.idiosyncratic) + if name.startswith("first-difference"): + # The residuals of the differenced equation, not the shocks in + # levels, and the weights are not applied to them + shocks = res.resids.to_frame() + else: + shocks = res.idiosyncratic + expected = brute_force_cd(shocks) assert_allclose(cd.stat, expected, rtol=1e-10) assert_allclose(cd.pval, 2 * stats.norm.sf(abs(expected)), rtol=1e-10) return @@ -240,12 +258,63 @@ def test_pesaran_cd_time_invariant_other_effects_unbalanced(): assert_allclose(cd.stat, brute_force_cd(res.idiosyncratic), rtol=1e-10) -def test_pesaran_cd_first_difference_uses_levels(): - # The shocks are in levels and not the residuals of the differenced equation - frame = cd_panel(seed=3, nentity=40, nperiod=8) +def test_pesaran_cd_first_difference_closed_form(): + # With N entities that are observed in T periods there are T - 1 residuals + # of the differenced equation for each, so that + # CD = sqrt(2 (T - 1) / (N (N - 1))) * the sum of the N (N - 1) / 2 correlations + nentity, nperiod = 40, 8 + frame = cd_panel(seed=3, nentity=nentity, nperiod=nperiod) + y = frame.y.to_numpy().reshape(nentity, nperiod) + x = frame.x.to_numpy().reshape(nentity, nperiod) + dy, dx = np.diff(y, axis=1), np.diff(x, axis=1) + beta = np.sum(dx * dy) / np.sum(dx * dx) + corr = np.corrcoef(dy - beta * dx) + pairs = corr[np.triu_indices(nentity, k=1)] + expected = np.sqrt(2 * (nperiod - 1) / (nentity * (nentity - 1))) * pairs.sum() + res = FirstDifferenceOLS(frame.y, frame[["x"]]).fit() + assert_allclose(res.params.iloc[0], beta, rtol=1e-10) cd = res.pesaran_cd assert isinstance(cd, NormalTestStatistic) - assert_allclose(cd.stat, brute_force_cd(res.idiosyncratic), rtol=1e-10) - differenced = brute_force_cd(res.resids.to_frame()) - assert not np.isclose(cd.stat, differenced, rtol=1e-3) + assert_allclose(cd.stat, expected, rtol=1e-10) + assert_allclose(cd.pval, 2 * stats.norm.sf(abs(expected)), rtol=1e-10) + # It is not the statistic of the shocks in levels + assert not np.isclose(cd.stat, brute_force_cd(res.idiosyncratic), rtol=1e-3) + + +def test_pesaran_cd_first_difference_two_periods(): + # There is one difference for each entity, so that no pair of entities has + # two overlapping residuals. The shocks in levels have two for every pair + frame = cd_panel(seed=2, nentity=10, nperiod=2) + res = FirstDifferenceOLS(frame.y, frame[["x"]]).fit() + assert res.resids.shape[0] == 10 + cd = res.pesaran_cd + assert isinstance(cd, InapplicableTestStatistic) + assert "two or more overlapping observations" in str(cd) + + +FD_PANELS = pd.read_csv(os.path.join(RESULTS, "pesaran-cd-fd-panels.csv")) +FD_REFERENCE = pd.read_csv(os.path.join(RESULTS, "pesaran-cd-fd-reference.csv")) + + +@pytest.mark.parametrize( + "row", + [pytest.param(row, id=row.case) for row in FD_REFERENCE.itertuples(index=False)], +) +def test_pesaran_cd_first_difference_plm(row): + panel = FD_PANELS.loc[FD_PANELS.case == row.case].set_index(["entity", "time"]) + res = FirstDifferenceOLS(panel.y, panel[["x"]]).fit() + # The reference uses the same differences and the same estimate + assert res.nobs == row.nobs + assert_allclose(res.params.iloc[0], row.coef, rtol=1e-8) + # Pairs of entities with at least two residuals at the same times + seen = res.resids.unstack(level=0).notnull().to_numpy(dtype=int) + assert np.tril(seen.T @ seen >= 2, k=-1).sum() == row.npairs + + cd = res.pesaran_cd + assert isinstance(cd, NormalTestStatistic) + assert_allclose(cd.stat, row.cd_stat, rtol=1e-8) + assert_allclose(cd.pval, row.cd_pvalue, rtol=1e-8) + # The shocks in levels give the reference of the levels, which is not the same + assert_allclose(brute_force_cd(res.idiosyncratic), row.cd_levels, rtol=1e-8) + assert not np.isclose(cd.stat, row.cd_levels, rtol=1e-2) From 359d6ae3a72822d3ad971c7c027be31fc6c2b960 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Mon, 12 Oct 2026 11:17:19 +0100 Subject: [PATCH 2/2] DOC: Say when the first-difference Pesaran CD test over-rejects If the errors in levels are serially uncorrelated, the residuals of FirstDifferenceOLS are an MA(1) with autocorrelation -0.5. The asymptotic variance of each scaled pairwise correlation is then 1 + 2(0.5)(0.5) = 1.5 instead of 1, so a nominal 5% test rejects 2(1 - Phi(1.96 / sqrt(1.5))), about 11% of the time. The simulations in the previous commit give 6.9% to 10.0% for T from 5 to 20. The Notes now say so, and suggest PanelOLS with entity effects in that case: its residuals have the same sample correlations as the errors. --- linearmodels/panel/results.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/linearmodels/panel/results.py b/linearmodels/panel/results.py index 71f283928d..962b5f3736 100644 --- a/linearmodels/panel/results.py +++ b/linearmodels/panel/results.py @@ -654,7 +654,12 @@ def pesaran_cd(self) -> InapplicableTestStatistic | NormalTestStatistic: and are persistent when the errors are, for example a random walk, which is when first differences are used. Since the correlations are computed over time, the test assumes that the shocks are not serially - correlated, and it over-rejects if they are persistent. + correlated, and it over-rejects if they are persistent. Conversely, if + the errors in levels are serially uncorrelated, the residuals of + ``FirstDifferenceOLS`` are negatively autocorrelated (an MA(1) with + autocorrelation -0.5) and the test over-rejects, with a size of about + 11% at the nominal 5% level in large panels. The test is then better + applied to a ``PanelOLS`` model with entity effects. The test is not valid for every model and an InapplicableTestStatistic is returned for the following.