diff --git a/linearmodels/panel/results.py b/linearmodels/panel/results.py index c85531cee9..962b5f3736 100644 --- a/linearmodels/panel/results.py +++ b/linearmodels/panel/results.py @@ -647,11 +647,19 @@ 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. 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. @@ -692,10 +700,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)