From 7fe19d896f968af5cbb72ae77b44a67588cb4c79 Mon Sep 17 00:00:00 2001 From: Alexander Fischer Date: Fri, 13 Oct 2023 22:10:50 +0200 Subject: [PATCH 1/4] docs and white space in multiway formula --- docs/news.md | 6 ++++++ .../__pycache__/estimation.cpython-310.pyc | Bin 11806 -> 12050 bytes pyfixest/__pycache__/feols.cpython-310.pyc | Bin 31517 -> 31731 bytes pyfixest/__pycache__/fepois.cpython-310.pyc | Bin 9929 -> 9929 bytes pyfixest/__pycache__/utils.cpython-310.pyc | Bin 6515 -> 6515 bytes pyfixest/estimation.py | 2 ++ pyfixest/feols.py | 3 ++- pyproject.toml | 2 +- .../test_ses.cpython-310-pytest-7.3.1.pyc | Bin 2408 -> 2732 bytes ...est_vs_fixest.cpython-310-pytest-7.3.1.pyc | Bin 10584 -> 10593 bytes tests/test_vs_fixest.py | 4 ++-- 11 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/news.md b/docs/news.md index 2b7b0c85..7cbc70e7 100644 --- a/docs/news.md +++ b/docs/news.md @@ -1,8 +1,14 @@ # News +## PyFixest `0.10.3` + +- Allows for white space in the multiway clustering formula. +- Adds documentation for multiway clustering. + ## PyFixest `0.10.2` - Adds support for two-way clustering. +- Adds support for CRV3 inference for Poisson regression. ## PyFixest `0.10.1` diff --git a/pyfixest/__pycache__/estimation.cpython-310.pyc b/pyfixest/__pycache__/estimation.cpython-310.pyc index e7c6eda42434a2cab0076473ada8d9931e8f0c4f..a53b8c7af0e70d8652c207633a51eccb2d325e43 100644 GIT binary patch delta 376 zcmbOiGbxTQpO=@50SJyP&`dpMxRFnmi78oRvo4b!$K(h(o_e?ZB88Ij{PM&~h2)&l z;*!*&%)E3Rh2;F)q|Cfjg_4X^n7Be&Vo_#dQch~ILRn^_LZX6_wvvuQre3O^LP}Jic5+%=Ww0oVJw|&A%28$(&oS7 z_UwbgRlf51T#UCS@6{~k?g55fu^NyN%GzwL)yBjqIQfvy8Ub~nNRcXt&;SwIlk0Tz N8QCYl)758W0{~uYbF2UW delta 112 zcmbOfH!p@SpO=@50SGS5Q%b#Hu#r!eiRq>AW?d#dj?GuO?(i^{Ox`4Zgi&I1xr9CY zW&?!=F2< zX+eI(AAf+#tC$#PG)m$Sg>k4T2tyH30nsRun-XRO2ciZ|BpC_%Ja;9if4HQd_xbUC z-uK?0>-&@Zaf8?+nVIPv{7raOQi=u!?78_wQ%mx5%t9YT*)f+>Z7XzINFQ5QR_LSy z5bWnE4-MT0kTU2(wDmMk2iVy%H&IoKw8yk@KO{7BFdB-)B`ZCk%MfoM_8{IwyoK0@ zz|QI00Lhl>6$Ae-e+ML9(Wj3>-$nfcDX?arg&b68R$g+D=a{Q5S-cA}8lm(MDvkjp zLI;iJsL>o@gLRY1DR!yOUw#-u6ie>t>2Z_^dJ)AE`XS;Ywq~}6e82{0kINc_fR+{v zcPdl~2NZggjm-9mAEWGq+I)X4VNcdqlH+WD{j^k+jnp?ecA`KZ>}#~XRqN+m7Q|1` zKFNkx?lmyIVj$Avr!jg3<5v+sBYr}RMPvgsVeKk^+{@3c)`UPL z6r*@vG!mrGvWlikGNO8$b_vekP)-oWT+sR)af;=6raJWxdkXzl#1upWVublU?c^pq zxs&mv zqODRInD2qCmA=nB%QukM+3DqZOH`~rhuR~+q-_8+Tz=0BKj#_jHejSU91SOiA!)D8A*~LFLN>{lUMjBxGvJeErEg7 z@G{@RNv2Wa(m0RAYZj_RLw>kWo1jwS=^1F?s8t1utuX;?{!tfO7C4rZ3*$oiJf=4Q z;ITTxs^nb9WJu(LGNm5RTI87|#%`@BDAa3+-ZL%1?=D8@yQpvAWVT=4A?jUTXA6{x zWQeU&DoHWhsdU?MrQ$G?IN8F}GM3fp-YA=7VJnvq=5kv|QV8ehX&%zk5?s<0&d_}k z{Cjm@Sis5R7P6TnOtNJ)Pa9-Q(kz>kVz>|@)*g;7m(z?0`03zxBnWMbTV$JF#nTS3 zGtdrOK_O*=q*Jy-$(W>=5b5fKkhFw(*^#s)%n4IMOjtSvSlujjxbu15*qWIl%%cT< zvGIVFxHZ;)Zp}0N8r%?`x^Qg@0q}Shp{>6_ZhV36gXN`X!B}7Fla(kuA&RdD-V$Fh z99Vv6Wwiczl24@h#vrOJC%?US2Qsm z!Rf$V!&i}3;iuk()(ePhEIVFJcBqYUDiqaVt{Tt?>g$*;M(AI@6|G53dn7*_-(Za_ zH2xhJH7u<+--VB#X72Ha)++yfVx~i!`*Eg=eFkYc>>}865+?=k59j4ulO5Frxl0* delta 1866 zcmZ{kdu&rx9LIZZZ*RMG9c3Gjbp_Uq$qED97DgaA9AUu36(W<-3N&-K!#eE7S($Ej z1Hs2%YUC#&M)sHZ7=jG0g7Ol4p&+6`(bNYl3gZzBh6E!q;_rJqGBvSDKj-)O{(k42 zd(XMoe-}MBL}rW2m2Tl*+ZKQ1RNwB*kzNrpio7{Cbt^~dXuij&_j&9ZJh`2A7W+KC zid5h|%kXE&g|LUxbh@})>@n>A9oBWbIhC|UTUWQl{SIji31Phn>;QHGyMR96ZHC|Z z&%TKMulya(hP1Fbi`)z8y@R0IuwCpkW==lu7B5nMWmn-g&LoAD`=L0(@C*5VYB-!4 z4$+ay@!|xXuWXoffI|``LwflkWU5&tQ6i55AJCfF0dbIy%pNry{gP?XSW`qsVvP}b zm@du^Yac=Ou~B>XbRqWB`l?deTU9a`rHfTH?#&RGlbwcj#;BTeLDfEieT@1a96e$Q z%uj*O0CSU{Q&l)S{R{S;R*s#bN9Ru$U(v4l&$!P*)D9$p?`htG0?*Gdoj^HoKkx(a zBW+mFH1`UdA+52cy+O9gi-=zWE&~^UEFhbaRM$S#5DzJH%aUqi%j!1s03=0J5|z|U z76V48=2g}6E93%5?E}_v-~{Ccrg+SSJrBPQm={!gabu3%paI)!F zI+xS9Wj?yRY?jl8Tt-Sz8q59fdMBz|H1gqP!@zEH1QgT(%?IkPG8z(HZ5{$P$#ySzqt3@%A(dURDZ-j=!z zYU(y*Q{RfIB8$$gD4Fvzi~M39->Ww;O)tQ0ErApRb$) z)T2AZb$U%7motKM{7#-=v0srVQA1SSSm?N}vaPHiO|6YbE1=@^w@7z0_@e`9Qndf~ z0T-~+%cZiApJB5;vq+BPh(rUK4~z$Vfca|7w^BeC^i7)C{Tg*g#)u?sjZ79kIv#l> z^E;j>Zb?|;VxuB`RNYjuE|y~k6b|?kmM&{7!}K-wOHE(B$D*qn#RieE>b7P@R_eAc zn{MsWVm^*&?G{g{!tG>M>q3-S_b2;<4Chl)btDpN-TG*^_r5J^?5O zlB751kA8(SA$L39_;9?VH4@e%@rLMXIgz$D*C@(*W1zW0$v1l}Mh_2HCe!LzSuJIY zlpP43rMqIqB5X9pDwHfNBX#3j+2XHjlHO{q6pzu>);uxQNL#br>g<8$9MDgP<9Y5o zv7Qm|UjnYsrFfZm!SJq?YC#!trHpxeoUb8W2$-vR64n^%>+ojd!<7^ZQ{T^24V~@q ziW~H2hsRdV^@k|0b5RZ~UQ`8!3Gz2I_>#IiM~ZW_x$}%?D#y)DnnzCN!5s@xIX(4w Y{itbV!Z diff --git a/pyfixest/__pycache__/fepois.cpython-310.pyc b/pyfixest/__pycache__/fepois.cpython-310.pyc index 33963c879a397c9ed4e43e79def0a496b8e240f0..51a62ad5a35eab66b423516d25a1add12914ab2e 100644 GIT binary patch delta 19 ZcmX@A diff --git a/pyfixest/__pycache__/utils.cpython-310.pyc b/pyfixest/__pycache__/utils.cpython-310.pyc index d6484ff2e6db8d185e46b41df106ca3cf2e12232..55d8728223e39d486591d28f98da4ac9518cb39a 100644 GIT binary patch delta 19 Zcmext^x23jpO=@50SKfPY~;$61OPb41m6Gv delta 19 Zcmext^x23jpO=@50SJ~(*vOSB2>?5}1zG?A diff --git a/pyfixest/estimation.py b/pyfixest/estimation.py index eb8ff970..04dbe15f 100644 --- a/pyfixest/estimation.py +++ b/pyfixest/estimation.py @@ -56,6 +56,7 @@ def feols( vcov (Union(str, dict[str, str])): A string or dictionary specifying the type of variance-covariance matrix to use for inference. If a string, it can be one of "iid", "hetero", "HC1", "HC2", "HC3". If a dictionary, it should have the format dict("CRV1":"clustervar") for CRV1 inference or dict(CRV3":"clustervar") for CRV3 inference. + For twoway clustering, combine the cluster variables via a "+", i.e. dict(".CRV1":"clustervar1+clustervar2"). ssc (str): A ssc object specifying the small sample correction to use for inference. See the documentation for sscc() for more information. @@ -184,6 +185,7 @@ def fepois( vcov (Union(str, dict[str, str])): A string or dictionary specifying the type of variance-covariance matrix to use for inference. If a string, it can be one of "iid", "hetero", "HC1", "HC2", "HC3". If a dictionary, it should have the format dict("CRV1":"clustervar") for CRV1 inference or dict(CRV3":"clustervar") for CRV3 inference. + For twoway clustering, combine the cluster variables via a "+", i.e. dict(".CRV1":"clustervar1+clustervar2"). ssc (string): A ssc object specifying the small sample correction to use for inference. See the documentation for sscc() for more information. diff --git a/pyfixest/feols.py b/pyfixest/feols.py index 114ef5d5..af466965 100644 --- a/pyfixest/feols.py +++ b/pyfixest/feols.py @@ -1041,7 +1041,7 @@ def _check_vcov_input(vcov, data): list(vcov.values())[0], str ), "vcov dict value must be a string" deparse_vcov = list(vcov.values())[0].split("+") - assert all(col in data.columns for col in deparse_vcov), "vcov dict value must be a column in the data" + assert all(col.replace(" ","") in data.columns for col in deparse_vcov), "vcov dict value must be a column in the data" assert ( len(deparse_vcov) <= 2 @@ -1082,6 +1082,7 @@ def _deparse_vcov_input(vcov, has_fixef, is_iv): deparse_vcov = list(vcov.values())[0].split("+") if isinstance(deparse_vcov, str): deparse_vcov = [deparse_vcov] + deparse_vcov = [x.replace(" ", "") for x in deparse_vcov] elif isinstance(vcov, list): vcov_type_detail = vcov elif isinstance(vcov, str): diff --git a/pyproject.toml b/pyproject.toml index 8ff75d15..b98ee70d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyfixest" -version = "0.10.2" +version = "0.10.3" description = "(Not so) experimental draft package for high dimensional fixed effect estimation. Supports OLS, IV and Poisson regression and a range of inference procedures." diff --git a/tests/__pycache__/test_ses.cpython-310-pytest-7.3.1.pyc b/tests/__pycache__/test_ses.cpython-310-pytest-7.3.1.pyc index 6d3c915dc663fca682f61ffc49451d917c63fcae..4db05aa735967e29e363018b8f450cbd979fa79f 100644 GIT binary patch delta 407 zcmZ`#Jx>Bb5S`ikfIIFG`LG}sl&lyPO>7K}CKMDjHfl^LST4ClIWu=y7?8%6!dzwN z53n&*{tZih0j;f}a28|fO!no?yxE!AT^8Re`N;QOV5`2$!D!<-zm1*u#wq$GRepl2 zlEQP4l{w*yh2L{8)4}O6SNHXmKNC!{e9rj9U4{e{DxnN^Q&}@>0tqU63@W3tAtpjO z?Cwmc+{~OHYuGLEN632J5Dz-y;QW>6{US3DueXf&^&6qClfz zuTS?!J-tL64HXx}RfeJvsNF^v?Ul&> IETC8Y0sGKU3jhEB delta 72 zcmZ1@`a*~=pO=@50SJ1Q{7pH<|@XStc+EgMcBO<*-U|| aG=(S6e4E&ricB`I7L#LUEZKZY zvW!``3@BZc4dAd_TNxWCyU15C z@=e|=FI~^SkgVl^zY8RoL2i1)HGGQdsRoRsy@)$>9ou z#vrpKG35)z3x!h{f*CZW{EGNMekuYHf*_)F@@xfd7Pd4)g~=xs%-Go!(hRlJj5hyM zP+(+h0x4*otfDl9v1Rj4B}OL3y2-m$6oKSjm1B(klb5J|v1kXW0fr7kQ74Gd0THbr zq76hC0g0FYfk2ZniY2ikvsjb0s0Sp`J^6y#HO2{>m#d2~ayNoRT0lhI0Q`7* AzW@LL delta 449 zcmaDDbR&p2pO=@50SIPJ(oCJVk@plIn-P##B{lg!pVa2>e4E&rUZ!kbEhfjzSi1R? zWErz=IZ(PNA4F7uh$=W2ELH&G)&hxrj6g=+=3H4OM#hrK1#+^CHIw_~wlX$Nc9E}O z!dA!7|g3F`v36#j*bB`gb=Q&>|3YM5(SQrJ=i7qX=Y^|I8mm#}AXWO3H8 zW^t8pFW{+RU&xpu41^*z%(EF%L~B@PGt6a45$k1TWPqt$z`KwEXc{kEtvGhIlfxAR zjX`EfV9FPY7Ye5^1T$z#`W5kk{8S7g1VKdELQHXO(2n05K%w*yv8H|P?~tW diff --git a/tests/test_vs_fixest.py b/tests/test_vs_fixest.py index e97ef9b7..9f59b994 100644 --- a/tests/test_vs_fixest.py +++ b/tests/test_vs_fixest.py @@ -465,8 +465,8 @@ def test_twoway_clustering(): for cluster_adj in cluster_adj_options: for cluster_df in cluster_df_options: - fit1 = feols("Y ~ X1 + X2 ", data=data, vcov = {"CRV1":"f1+f2"}, ssc = ssc(cluster_adj = cluster_adj, cluster_df = cluster_df)) - fit2 = feols("Y ~ X1 + X2 ", data=data, vcov = {"CRV3":"f1+f2"}, ssc = ssc(cluster_adj = cluster_adj, cluster_df = cluster_df)) + fit1 = feols("Y ~ X1 + X2 ", data=data, vcov = {"CRV1":"f1 +f2"}, ssc = ssc(cluster_adj = cluster_adj, cluster_df = cluster_df)) + fit2 = feols("Y ~ X1 + X2 ", data=data, vcov = {"CRV3":" f1+f2"}, ssc = ssc(cluster_adj = cluster_adj, cluster_df = cluster_df)) feols_fit1 = fixest.feols( ro.Formula("Y ~ X1 + X2"), From b6e281193f123ffcb1e936f7cf06b64f6d35fdea Mon Sep 17 00:00:00 2001 From: Alexander Fischer Date: Fri, 13 Oct 2023 22:55:22 +0200 Subject: [PATCH 2/4] align convergence crit for demeaning with pyhdfe --- pyfixest/demean.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyfixest/demean.py b/pyfixest/demean.py index 3d5c58ef..06856d01 100644 --- a/pyfixest/demean.py +++ b/pyfixest/demean.py @@ -135,8 +135,7 @@ def demean_model( @nb.njit def _sad_converged(a, b, tol): for i in range(a.size): - tol -= np.abs(a[i] - b[i]) - if tol < 0: + if np.abs(a[i] - b[i]) >= tol: return False return True From d997165575510179d7d816a671a86783609e7bb4 Mon Sep 17 00:00:00 2001 From: Alexander Fischer Date: Fri, 13 Oct 2023 23:11:51 +0200 Subject: [PATCH 3/4] dont fail fast --- .github/workflows/ci-tests.yaml | 2 +- pyfixest/__pycache__/demean.cpython-310.pyc | Bin 5485 -> 5470 bytes .../__pycache__/estimation.cpython-310.pyc | Bin 12050 -> 12050 bytes pyfixest/__pycache__/feols.cpython-310.pyc | Bin 31731 -> 31731 bytes ...est_vs_fixest.cpython-310-pytest-7.3.1.pyc | Bin 10593 -> 10593 bytes tests/test_vs_fixest.py | 2 +- 6 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-tests.yaml b/.github/workflows/ci-tests.yaml index ad1dae7f..893071aa 100644 --- a/.github/workflows/ci-tests.yaml +++ b/.github/workflows/ci-tests.yaml @@ -14,7 +14,7 @@ jobs: test: runs-on: ${{ matrix.os }} strategy: - fail-fast: true + fail-fast: false matrix: os: ["ubuntu-latest"] python-version: ["3.8", "3.9", "3.10", "3.11"] diff --git a/pyfixest/__pycache__/demean.cpython-310.pyc b/pyfixest/__pycache__/demean.cpython-310.pyc index 03e62f616e5feb64647573ff863c9c07a6a3b282..a06bc92153ca0b14977cb5bcc316d6f8c7e4624c 100644 GIT binary patch delta 1057 zcmZuwJ#W)M81~uuZk$Av^ecP`p@J(Us#2yRfkf3ZlvdCdTA(!-`{KGy?C{!d6BLwz zk)eYn#0acN6{sxy1bzU^2~})NNHDN40QcH0bl{|W{C+%s@9}fV*O9#u)m7D;B-YN3 z#@@eG_p<$5ZMSrXHkhZ^ZO@02=>8lxcI8}I?s9o~iDwQ7JWK1A3%0-3;Kk)7-DC|$ z9cJoo-Q&)bXCb-S;S$>T4 zg&*=yyHi4zp`i5rl@QOA*w@7N#s&CNM_MOO$fUG#gazUMilhY>V8(Vm?!lGvow` zG4Tr)LnuBU){uV(AySeQl3b6I1;9hJ9Nfg#t#Gt-W+GzEi=2~n`0t6>>(vcfH*^c! zps8;$+gkIzSK)T4LRQ1qrIS4s9C!?2X7^+13+dj*mI^~^;hq4VbMzXcegMpa`&dv!#Iw%9iEtOGXb~)6JJr&S005s& zV4GZZTpzz>lYu3Ec4R|b_JnQnbZa9fVt~xZUQTpa!C6-k4qYs!BLd!pKYHiRVWi3M z0IL+^A)XX2G~2ONsU~$y>cR1_e)Lp#R1l(el|l{QIFE(2U;xlIT)-?*b=^APe}E^P zb=!};;R(|=e4Ywy$G DLscUl delta 1078 zcmZuwTWi!n7|kTvOY3I4pzEdejufMypgt7p<)Kx))N5O817(3{jaW-a+6-j^HQoJwYGU0SteZX0oS*Z`8v-@Jnn4URIlQJn1^OtSH`K(fX>zvgzoYUZzU^x3&ovcqHa{&Qk?n6Br z9XdGjRIeqHm2%ZAlf9&m_D`6~{GsQghf#kGA$L^J)?%s14B#Q|AY8=OrR+fM(0H!8 ztk;Sx!+%f2-d5_frcVQi(>A>;!eA+pud@fW5i*;-sO{S_j2n(1Osv1FeIdQ8SYt?m zo_c&c=hgsisY0X40;wtuj3o(!G*0Coo1)cD*80A0pwx^Oy`exPG)h}ESpvbhR91_1 zU>4iOcAmZGprqfXANYAH%bw1F8N=}~WXO>5+FDYh;vNWHY+GI4hoPXTq T)2*1NO_BZBHcrafSbg+219==r diff --git a/pyfixest/__pycache__/estimation.cpython-310.pyc b/pyfixest/__pycache__/estimation.cpython-310.pyc index a53b8c7af0e70d8652c207633a51eccb2d325e43..c3e1c1059401aa28f05f983a61a7f55a994e38da 100644 GIT binary patch delta 321 zcmbOfHz|%QpO=@50SM-=+sL(4jPcgw4Psl^rGWy!ERr{8i*FDD3dv~2n%v?_%dALE zi_cE2EH07*$`{Fl2tE+O2qfH!gn*=qwfL0W2lPH_)i**LM|B(~%Da=mwUeeK=5 z_T0NpylK6aii8x3TA0!b30hG5CsKJ-D@Tp{_2ufc_r*>Z8d@+|cSf@sBRj3(a&PmvdZm z!jhg=(ZmZh@={_gVLbUpO&3kLxG7zEFS#{TZl#7cdgMpwD>tJNa>sOxW?Q+e4m<9I z+=$+&SIA8WU6aXKzAs#PBlx!fwgR?+C*e!W^~MUGkT;=o6W|7dR74&Hy$sLjBpR8Ubqn zDF7SC%2>~g9f6ndCom9J%awo)fYpFD0DRK*W_nnpN6m?JVZwA=)z;M5yd9%E06PI4 zfa8D@fRpOuP1mm2O{5Nc#k}l8=N`Z!^hLaJ>C1lgKvS!+N`0^C#+Zk(UFttgQ)Lbi zT>Sqz7#)(rvUSXJviX>`Q5!|AjOACBbv!2~gtW3kNAkk*b@WJHWGyLS-4HwpQ-bLa zabRe&Yvvr!*Tz|0o6Z$IUq~dNHcVZ^ZO5i?cxhcXN@4VTSVVlKa zQetFvsGt6e<*csp(gi8ZtWFFG-!ez6^r#N|y}f`*%F46E*GvC>SsnFzvqaWqoU_97 z&3wTw=E&}hOb)&>OcMD_fwgC2z*SEr0|D!f89B!`6@|_i}Tr zZ!9C@7~V&aS{Uq~Z=r+p>4TKd=+Yq)W|VZKWYSigRKlYplHPXnF-{0#6c!G(|vfmQ^UMd*J_RnN37`LIq< zj*84!uHfqku-XhreXdfIdL&%_Inm?_ILN!_F*2`tGnUC0U{Y<>qJ5A_v+Tcsl9H>4f8EgcNRCFjs0rP{FyD zbFTGa8W-;spt#(3fZ9!j)q!J>_)WP)mX=dGH=QA zXx{_&sN>q=tX`BAzG>MbRIP$y6h{Zwp#&&@s6dGkkfhDmN%SHbMWK@?@VQ0Gf(-h( zT6ww_JV8#-8)&~@9#%OWz&Cf@)JD5A zpEK=ZK2Pf9LlA}Bk^cbv3sNE+9Cc{-%GyhLiW9uF`$8nCjVbvSINw&U4mE5%2J#Pp zKLVKj&odM^Iluo(eYIiYcvqd-x5fCo`r5vw!Pzg=6Z^W#bB_9Uh+r3L4Wf9>4NxJ# zLX55ed=9_~g-8b{^%AhuqREwxi&q$Z5df}JI$}F%Uw#T?ND3Xzmn}a%tfN_3D2~Yk z=#QCJZfw|+cSF!Yf>cAWQ1e-;YivR5D?QmldUT8~6=*Dj(&d0_0F40Nuh_Xd!WkL5 zxqhRL(2?qK?a_uKA5`rJuC1?%KFnw`DyI%S94W7a5c*#*y%M1Q1b7F4>L7Cjsb#@6 zisQHyy|bl%Hlnj3WY6F#DI!=0io=S17{vBGsPZZxb{mIKev&91E4t2jQ3SyYyOvwE zO1Be3>gphTn<093c`r9h$ATE@=%h(kh9FwVP#w+C*7S7L&X}3wLMLz=$e4NJ*#Lns zSSMX^#>CBr7?XvZeTlB|ibK5Mo4^%A_EUx8%2^fQO81dljTZKb%hYO8d%*~du3~%W z@uQJ4?g<>{&Qx7+fU+N$5*)N#l;AdBuv|HXkwbvPfLj4a0G$M>M4*M$UM@)2_L*+M zv;|$$TwJn>I_Y_hlja%6A9lEBa^@_-9zA*d0mB$n@102Pya@UKB)AyexbB7(*IkTl z-GZ;&PhlXPD=>aDfUhaImjns257b?1@Z|C>M?tOt%*Uu}e8-+N?M$^9>d}*rwHzQd z2q1mrEE6xpE*KLk4XEbc7WG!|$5tN%Yxg{pbjTCWqKq6QC42G$q{pC^r!>Q2`2z2GV_{eJ2r!TJh%S>!G0l*FaWZrlvIE?a6? z-K$-!iYX=9>F6`xrnYQT0{nBU+cCr4qBGh@{> z*X#D4C8r@S3m68B07lggv2B1At->5=(-D43MMlM>r(=BG@FY$)dK~0(TvSuxAi6ML zFQkG<$B5uZYG5GiXVoS3oVdj(Rhlwi3Ue5)QcpW=>oZW6C7{I|20h<_yq(sQ4&+rM zr&hs!y4=n60B&%fLsY3tT^!k{UK~l61;o14*V9R9H|t`a`vC<29AmfneN3E48=V-o zJd+E!{65-O@H-QiP%3n|n#ys^voW@i9vRbbPGRfhG)F6>Lv%gKl#31Z zxZkw%9OxzJ{R*Ikn)Ldv`q^jUbc64^)!M+`tQv~zjpoY!Vq>HXm2}sS+6XZ_LHSSe z0*88ZEoGi5MZPdWkLBB;_cnsPR5dtl`Lt&v`SiD8NtAvFqL&?xH97%tl+w$+kPFN- z4h0v=X;Jhel8)!;*DALl^V%5Ek#2KjL|QNahqsRMHkj+elv-Lk);>iH6zx0lSuI!7 zNB#{HVGrG>E!VcZpybpW>b}wsx0f(_4sZ>igc(@$(Qt>e2` zr2Vg!{M$Eg-n@D5&6_tf_vu;f)3aJU-_Q`Rp})BgJ{B)WHKCq~UO!FL8;N`-W9N)v zQ#wM0V{cH;+p(pD(fEh8x6*)ftG1Lsi?0oo7E;60y5w^D%4^UFelj-Jv^>%a!Ctk#DO2huQr{}uz|jFq09OE-0E+=v z0oXX6Y$2MHcKBYxAKyS&En5Ir0~P_U1i&Y6hLISs5=V{UM1I(?bE>VmX~FgAT?<$T zxB;*SuotjT9ciAwa6OS;&?#nR7nmCW)4&TkL(-M|)v4xItyMkOd|f1qz8lrQn~#?` zKydN@=Aa1oOUq1(h-0U-5wqRXib84gW|c%VV+~ukSX(OU8ktsT^C6R!hW{6sD+er$ClMoF@DU6OQi&-n@I-=p2Wv2&R zD`^x5Xc8^$1w>i|ilwxubrN}L8EFygw_MX0G!sX?pxe_U2u4NF9wE6N`tMDPu-lU+ zvLR)USdMFC^T}d{>`vLPAsx1rNKwan5;U(RMMG7?N+J!Zmb6%oOF33;VELieGa-ZB{4SI}4EP@4`+!FPj{+Ve7!Sw*=(`9mh|vES zs$OlIbA^aej#{ZgChvM7V6_?0S}xb>4+l#>Aevl(1bO#3dM;|-q-FAlFsZI;(LT?l ziue;GE+PicB7cNA&Mz9($6aVYSzdSb?&+GTPOLvM7oFn)FR*;2{93gz$*L6_dJiFC zMPU0DJtAkJed4@h?arapMYS*+gR#MkQtT1e540p6( zZ5<13*>|8#zNFsYU@rYBiL%CuI{6D|39(KIjq*9b&(+YzPVH%RdgEpLPZPt7*}0S@ ztz5!lDSf41!MT=mu5r=i;=KS0xZHD{U60{$+d&O6G5$C)gj&`yH}XqJKCgClG}duq z^N!P1p<`tUIWF%2oFJg3%q6W6F)eMmhM63sYULNBC>W?iA_mIs&*#sRG@C2p;367D z%Znet=VmGM(&uxvazq_u{G#UgYI4PCSt>ZJGHK=VS)rD1YAuNf=e{ey2$Sec&71CZ ztG$S?U)~9B8gDQvVrL9e^tx7q35}`3@jX;DwTQ!j)eF8IYD2 z&X!C!G2n&MGG8pnn}|=l)yxzIO!;LDx|u+4^cU)4mWtY>Me8da`3aAwO9dK#!T65> ze+7I9;Qfl7>xDQY12@fR_d;}}I$V1^&6fA7Wjp52;P_R7_)$&y;EsnvrN2Xo2Jlw` z)NcSU0r)se6Q$4fuTdPwYth94;nH7;XeET~8C;bg0hR(dtk{QsY8@9{*z@G>Ai3F zty&9v#bs&{^^a@5(N*j4;In%|r6U-NICts|{sGE8)zehIslshoFJP)-Kh?D&s(z-3ck%hby*&7V-nC2E=Zg*wyD0T<^7yZcC0e~&Dh{HYguA-7j%%HCX~?O*!>hDC>MMtv7V*ySgu(-W5Fi5R2Al+ZTb()FG*|}tBmjq- z`~VO`nEnQe>q!lo^Uw@};=H&U&1q;(2O!vT2B?{US%6B`Ftw|^$LI(~3XmL9_x0bR z;UMase>*YsfP5MJdkHA>9MJwCbs$mDj;I$BgG(0hO4IHGi#CR zOWG|guW^x+SHhsyNvkHLK1gnv(*t$=fCRt-q|^p$T^~>M5416x7viT>=%_X7coDvC zI1(otJq|J%E~Zu^oF=Fu})i;pm=c!%wx^=VWmYY-G400G|t5@u{6$@ct z3*6M?6`;>x_DURiEDq%Lw4QVzUp08}D%ek#yQv;vAoG$$jqO$E2HVwJgNf1tsI`gL z)k$erad9#DZ2%p>M>glsH0Y1AVz5=w;*S5vtZgAMf6(<5Wz z&1oe?e1e=!N9$CFit3f4d$nS@CG)UGOZ{?ocL&?WrFbqW^kQ8!1>frADCw5(5>T)w zPh&Y7+^RU059QVcHX}6hMF1(Ok;ps>EL@|2VIO!Q98PSn7ftcQht8KOJ?gE(3TL~LJX=U@n^jKbndD{uLQq|zJZG}QM z@(xx_eO{P;2%?wW2sAhFQA*GEe1^^Rw4MHiazfP_vOJolU#oI?nf0_m5!z=A4$3|# zJ4@h&c^gc1VYRw!?6zgAX*P=X8hjSZe`3sU0kDVe(`GJdI)2G{uSVTB_WXJmy+y#~ dfR!{*V)c3V$$6mWqXUYorsUPyrM~_J@gKcftc3so diff --git a/tests/__pycache__/test_vs_fixest.cpython-310-pytest-7.3.1.pyc b/tests/__pycache__/test_vs_fixest.cpython-310-pytest-7.3.1.pyc index 5aca67e5f8b93f9586cd8df292c193838eb158a2..ed6fba51493f3654293c2eeea4117a066ef2d456 100644 GIT binary patch delta 1493 zcmZ9MO>7%g5PkgbN$gFUP=_K?ewx1~s0D>Kgea+6%y#{pY-H~) zvl|l!NGd3Q0+hp3dq4$R0YwE-srX)r3US~9CnTPbP%lV5aDWRa9Lmh5Z2~LpxAWf2 zynQoo=G~gQH5IWVk-8oD{BT|4m##-5!A7YraF2s6m9eRrtgLE5VBvN&fh3`$dPO;0 zo0M!7;y9M7Id9p(H708e-Q)8%RL~jKyjs2+-Yd7{?!m?_f##> zy-bRSqciD2G&rdiOfNT^g+t`{DB*F!V}vINhsD>?e^^Rf+jZrDh7(fNU9aMB=pk({ zp_UNxbve_`nPnMzX@LWm;#|{YoebnAfg+aTm!`cfGUU0Q?#Z2oZ52$*lWJKnE^$|i zXeq>BmVs28SQ9_Shn|0kZ0Zf07Ye3f za?5k!3{DvgaqkJBK#6-6UwD(?uksd2@7y2yb89qw4{-w*fcHhIt(6Ulx7*rP+6<(` zS8azDpCR!$;RIod;0NOWVC%$=lHwRbhCsLGxeOP$XDsAOcAgjE1=1D>v|+Fb4&g<@ zFkwU-Pqb%WC(%!tOOi)eB9sa5A|%Vf%QSd}@T$0!=nZdA)K7^L6V)T_PqTs7$YK}a z4aBs6E|fp3jJY#yOE0d}&m~urv)N>Ca&{mIad9)LHTu8z%iga*v60*tp>v(Uo**4o zLdO_p%IbLTk^5o$2e=iJ4CTs(UG}RK{I&eR4RqIPu$?wK`ufh}04~si3bstv=fKIj z0=J89j%NN-0Mn@wyI8%MT4bzW^mXppvkyI20!C(o?cZR%8%zVL4>%}JcaC<++Cr(A zbDg4zeUax*SqFFfa%8zKzU}N_>*BZ0?!Aa4Rnr)3tON)UAr9-fbxHcXzxQ$nt-?8W&nR&Bn!v^xTtkr2m5O6fGCB zmP$@#v&&RRxAMB{7qpBym4dmkOmDrc0sG7% z-X<;_6{j+(_%PXy5Ka+JBczHgkhe=xe30qtKTFesaFMW1p!~r&VJie*S`)u#yng`* CFMccl delta 1493 zcmZ9MO>7%Q6o46fy-niSabr?7iQ}w;6MN$%)E1>FKP@;YMW}=lLU4u_Yr7uD8`-ysiYCZC({OB* zP;orAnmG;=s9ZJNaw*RrMaL6}lZbi5V~EGa*Rg+yB5oYMdMpD2o~$`;%Vs=_Ru$2U z2mz>EHk`82^g@?vj58{B2ABG1puEH}Vk&+f937@1*KswM9?~tdYM8DkH?{gEbEt^L zCnB`3Xj%1Drn?rW;&l8-KkapxTQRcoz@i%92~^UEDFnuP zH%9SrVjkA5C5lrPj9v@yr{UvCj>X+;0WUCj%p+SIO?$A#4~f&SW|r|z6rPq3-Gr@V{C*xAwC!zmvJ*(5nqm- z+&GKk^N1zH3kW}ub13bf*dnTD0A7e|<~pO{Ds%N(xnWgUov)$w0s=S8HN-`Pj@Zk; zIF}sHJE;39V<=S->xdfS4S+|=ypBo(VT#X_x$wb6{g`Z!%bjP&&yoVi8HW*@fEE8- zFn?wfa%WhkR^RSlQ`$-?ujG_cLE)p~mZA>$zxT`DuRzgN9*W?(E<#VB4JskE0GTpV zFQ2#{wts;8G0{-Dsas9IO1Zz5ANYB2S9_qHx~bXOcR=Cq;(`*iOx|aK_Enixcgi^O zp8{B!Xpo)Gt%(gnX2fjz=+P8-ZU^*im&|lYu1i#o^}!3`Lb^Cfd#jCl*|F;e^hJf) zO^rJTm&2KD@ohRq+Tz#rcZ;9EfOp8&T(~t%8s^NdYdUK{p16My2QrMV3xGi=HKzvz zDI^7>K`Fo&#GjL2Xt=Mvtz1EgAU;IQAl^f~k0=0sy919(sHANfjvC@0qv0a}+zGbL z%nFqZ$JD%_X0}xMZbON`rxHUIocX_96@{9~kfL}ovvy_$?Vlo^#pOcgX2WjzheTyt zGb@_o7c`CAt*Wub9Cr?0qoHA4aBLzT1W@ruW*AyOoJCG%bN#f3TNgLrHgWi(IG>$J t>|Y+QpjQe1CPNEUtOgaIWhdwSyW%q1b`Wg@=8qQ<`yu#}Eq>3s{{opoW`6(x diff --git a/tests/test_vs_fixest.py b/tests/test_vs_fixest.py index 9f59b994..deee50cc 100644 --- a/tests/test_vs_fixest.py +++ b/tests/test_vs_fixest.py @@ -206,7 +206,7 @@ def test_single_fit(N, seed, beta_type, error_type, dropna, model, inference, fm # relax tolerance for Poisson regression - effective rtol and atol of # 5e-05 - inference_inflation_factor = 100 + inference_inflation_factor = 50 try: pyfixest = fepois(fml=fml, data=data, vcov=inference) From 02969ba3b228d51351c7e1cfe5b12fe18fb99621 Mon Sep 17 00:00:00 2001 From: Alexander Fischer Date: Fri, 13 Oct 2023 23:39:23 +0200 Subject: [PATCH 4/4] increase inflation factor --- tests/test_vs_fixest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_vs_fixest.py b/tests/test_vs_fixest.py index deee50cc..9f59b994 100644 --- a/tests/test_vs_fixest.py +++ b/tests/test_vs_fixest.py @@ -206,7 +206,7 @@ def test_single_fit(N, seed, beta_type, error_type, dropna, model, inference, fm # relax tolerance for Poisson regression - effective rtol and atol of # 5e-05 - inference_inflation_factor = 50 + inference_inflation_factor = 100 try: pyfixest = fepois(fml=fml, data=data, vcov=inference)