From 2f3ca2cc914c92f08de68ab39f6147abefa73b48 Mon Sep 17 00:00:00 2001 From: Aki Vehtari Date: Mon, 4 Mar 2024 15:46:56 +0200 Subject: [PATCH] fix loo_moment_match p_loo computation --- R/loo_moment_matching.R | 2 +- .../reference-results/moment_match_loo_1.rds | Bin 1741 -> 1739 bytes .../reference-results/moment_match_loo_2.rds | Bin 1740 -> 1740 bytes .../reference-results/moment_match_loo_3.rds | Bin 1740 -> 1739 bytes .../moment_match_var_and_cov.rds | Bin 1924 -> 1916 bytes 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/R/loo_moment_matching.R b/R/loo_moment_matching.R index 7de1f06d..9ba55cad 100644 --- a/R/loo_moment_matching.R +++ b/R/loo_moment_matching.R @@ -258,6 +258,7 @@ loo_moment_match_i <- function(i, dim(log_liki) <- c(S_per_chain, N_chains, 1) r_eff_i <- loo::relative_eff(exp(log_liki), cores = 1) dim(log_liki) <- NULL + lpd <- matrixStats::logSumExp(log_liki) - log(length(log_liki)) is_obj <- suppressWarnings(importance_sampling.default(-log_liki, method = is_method, @@ -388,7 +389,6 @@ loo_moment_match_i <- function(i, # pointwise estimates elpd_loo_i <- matrixStats::logSumExp(log_liki + lwi) - lpd <- matrixStats::logSumExp(log_liki) - log(length(log_liki)) mcse_elpd_loo <- mcse_elpd( ll = as.matrix(log_liki), lw = as.matrix(lwi), E_elpd = exp(elpd_loo_i), r_eff = r_eff_i diff --git a/tests/testthat/reference-results/moment_match_loo_1.rds b/tests/testthat/reference-results/moment_match_loo_1.rds index a6e8d9b5bd87de9bdefb37b10bab03dc70a828ef..a7a7082d40e1de75d02efee1db5f8bf7ad9f6311 100644 GIT binary patch literal 1739 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 diff --git a/tests/testthat/reference-results/moment_match_loo_2.rds b/tests/testthat/reference-results/moment_match_loo_2.rds index 9cea1fc5f653901a9640bb3f53dcd4747ed8b8f7..10e88c4737c7b87749fcd908b8f214ef40d09de1 100644 GIT binary patch delta 1733 zcmV;$20Ho74a^OY8-D=4QmOSp7FfxQD2XD56lPH3-3Pb=yDPgMq>z_Zil=&D-rsy@e!rQyGoSlAzxDPM zMe!(WK9Az@ag* z_@2*QuVG}ITdh;B-iQp|_U~;jJBJK2qwK@F7a+r&r?z<5Ks2IR4&56k=_%ii%#;xi zWC$pgTv@zc&tH}85}G>|8QzUjA9d|OBaxwJ-)hw&(|`1&YbSH&AVWzMzqcFjuRFM0 z*rrFubvw(p^YMH?-r3SnwMlRFOLD~J_1BT1eSzs#rxqEe?cQP67>-Q2!WC{E8e|Ne z6rs#%1-Yjud(ZJd2bjZ21$DE}0CDfq?>CGX0aKvs@3gZ8OyOLwo^}dI1^kZ79{zx- z+9LTQvwt2)i(0jGMHUdfQ1&g#iv-Nsp!chH`~XB-Px`CA?gdPlKuC||0j9iVnW-NE z=HU5PzpJSO%s|>eO6Vw%YWuUk?VSghBd1kU>RW-5dA4z-O(tMYO!4Sf_yVSNTjB?Xrgo*_+mhE9ZMNE4nRO?ZaRgl9+- zo}mlj89EZ4p#$L=Iuf2CO?ZYh;Th6|XXrq9hAxC>NE4o+JK-79glFhLc!th|XGjyC zp%dX5Iuf3t1K}CE5}qMVc!o6L89Ec5p(Drh{Ws6vEZ+PfD)cqx?TSnSx)$wFOn=-2 zwD#rlz|f+7NGX_DAg|Pd&$?@Sr3+Kh2Yo|x`UC7hL&JkFwyhfiRXuG}zIL7n${rjq zlL$gkRakad2>K0`Z%Vp$dwM!56+a!Hm*#}_OuL|>&N+bE=Apq~!+pU?+n==5Z(pI3 zsfDXn-#39{Y~1y*?G(}+Sn+(~Cx6i(KYd2_{QN%9A?p!iACsZ#`m;B8Aw9efB&xMfphMvVsOAMc%fh@bRAZ(crWZ#wSdcX2D zteao`>P9NI?4DzROCY=DgVaKW2C}+KUR`_VLN@l(dj*o+kS%wdAO6vP$ksG_eH0M~ zS&g6Vgb;rmXB+*KM>O{D^M4m^^TWC}MSQOTvPYb6@?3S0mA=zCtOj_zwE1{QH`Kk+ zP`~ocTaf*D<5W#^A)e2BvArT5vhQTJY%RoU}wasy^yW$(hpKS*uT8ZbgBZfsn#yC$)1ocZg)Q45`X>hz6YqW-~Yuv zRe=RUkmZ(%DsTp$) bQ!$Ck1erW;+%VtV#CP&1uH0e51q%QGfoo|W delta 1733 zcmV;$20Ho74a^OY8-FbLsFYeCWP+8|E`NMQ;k-hF^8u)DJBK?-?krFc>ULL|ZE zy+V6YD|(>LLih*`!6ZpV516M21xzw%fo+z#YnZ2V>hJcPy}$X+{C+cYXFm6Le(UTh zisDh$d@G8_$4$OFe&9Zy6Sfl!;mNK~MP5w;_ZQBy7k6o(n15*KTfOe)NT2|84t*S! zWVId!5=~LoJRE05SyKY@WKwwoHjZOUU`gyFE_T>O!6eAkxb4pQxs3U8<%6ahmsP5Pptwuasw4kkSyK7+j5vy156~KYxLS z1K#t#D;z{4v#a!~RU47f%l^I1rRR`wW~6;+*F0pL^~@Fz8;FLr%bE4 zfsFno(kqMB8Tc!+TtafDBICP}nxn4mXgDI|>{~55WPh5TcC@ba^HazgYS$%8dZb*}(U!cKiUuTTl9_zwQA{sX#;z=K`jzd8w%n z0p{TO*S@Q+1x$Zxe{#qukm>p|zwMa=m?NjvQ|elPig~_ag-r%vPE7IWQ~Cg=WyKF) zj${GJaO1KXkNJQp64?u8tOt_X{o$eALLiO|SbyGkaTJI>yuMHO&INIcYi10kh5_c% z?n&or4&i;b9!=2i1k&_tse#sqfp|}t(}x!aLD!+%g2_S(WKT>hpShRAE5pq16u=vi)oQFe7v_9+ z4}WWsbH|-@Y<(9kJzRjTYughq;qmO_x5|zj!11fYRu${8hJL>rU!Xv>UDeL20j%S@ zxA}j7t>(J^D)!H72pKAtV(rmiSGf!81)X!6f5Pje?>^P}2ksx7Kkde33Y1oyK}l)p zAiJ<+;E=c3|K~;quY2Iq{76q6pG!}FX@B{b6kJAlhBV=ty{m4uoguNO*=c;Th6|XGjyCp#$L=x)7crO?Zaxgl9+-o}mNb89Ec5Ax(IO zPK0OZNO*=0glFhVc!o6L8PbGj=uCKqjvUVq-aLD=X!D1tz-J_PS41MvH|qwXV}B>0 zHLsKfgcR;aD#65jMTHK0)>YFZo1cRA_72SI^S1-_^+R85TRQ+MyIZGx?K}~b4jnI* z3W8B(XjW)2`VEzBO1$>d^fXi=c{VOL)d}sHc0o;@a{x6>1NVLn^8qJqZ|kVvzCy)Q z3s$arU;@Y3*z2L&DWpBH{Dp*1qJKbM+KjBZdA*=fcw$cMl_r#x?%GSe91rSzk45C> zs=%kVZ#2)0;{koz=jbl`090H^z8sa@jLJIwXSiJOL$B6%c+v}wg46plMN3>gQFh_g z<^kUdk}s`H_TGXVH>kL%ew;jxg_ z`r1wi_QP?uQMWy!uz#r{x?8h6YYMTo1d|r#}m2r@LC!;k_wFAd*@6SHJ46<1p#O3x!AX_qZy$HPx*@{nG z++M7O`ksRw;ivXNwyM)`kLt$$Wv!-D<&aIWc9Bo^gltip^ZDkehky6oPmTTlFZOQ* zi;bmPaiPXlDGxsoi&L~LCdMKX#{~I4&42STT3Jdfi?)-sOBR*$rjf+C_5pxO8Sxb#2y+`js63?g~zX$V%|5{+8JVB*Q)G+28 bre+dU@p47%xM9AziSOi30$WMT1q%QG+dOgk diff --git a/tests/testthat/reference-results/moment_match_loo_3.rds b/tests/testthat/reference-results/moment_match_loo_3.rds index 6d097b04c044206e26de0bda98a112562a192344..9548f017ebfd5c13c631a65a2c48c929c9d7d5db 100644 GIT binary patch delta 1734 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 diff --git a/tests/testthat/reference-results/moment_match_var_and_cov.rds b/tests/testthat/reference-results/moment_match_var_and_cov.rds index 11fb6c3b19972c7a97f3abb9bdf809f717d5f70f..8c28ad4a03ec9ba91bf4392a30e452ab823862cd 100644 GIT binary patch literal 1916 zcmV-?2ZQ(@iwFP!000001Lc-`P*Zmn$1e#Wkc6N-vLUNFg*4L zH*ryBXLkSI%;cW?J-_pN+wpC^Am{OkiQ zXji$juy6Nn7^c>)Q{x$J-!?$oxcXYj<}&zON)v=O4bRgev>1> zgy`Xrn9yjR2;Up4~b_;!~6-}))Z*gRvMU!6PE~l>f{~T6(rN@OTnZ zS-LcaexpE>xi?A$m6-}+g|>IlIt5ZW(jE=Ek0|Ini6%eaqS7_+ zMKg9~M{3NqkxFKgaL~~oP4_E{K6Z;lQ#*3jrE=nO=vhSjw; zI8L?H(s+}k9nEA(>_@M)qbZNEHOk8gK>A2f_w(pFkTx;++&}X%h_dmKFhmkSuJZXy z_-X|pU0>?Gep3ttJ0C`7H+uoHOsTkg-2jk&iW0k12=LdB*+-_v13uI5+|1X;fUNM_ z_S0oPAOrS^K=%N?MsGF^aFmt2^O<^JK(Rh zhbmh?K)%^@Dc#*3keLn2rs4g7^w^r^uaE-L?r{vC&H!Y2<49rT9%vgMrMqQWAV^)C zXqZ4JK>BZvtr9m9Al0g#H(Y@2^88TxF#<@(>wy+ zTmJhU*1r;xeB_uZ0Wvu5QR8p0Zr*z4%xMB{qIiZ3if3p@ z@eCOh&yYd!4A~UV*gwZJG@^KhEQ)8yq>imkw0za%|=U5ApX+;KRN=GZV5CV`8Eqx zMvOc=S-cn(!V6MIj~5{CJFBvdypKTZc)y^AnFIo??&q?R0%f~fyT@Am8B_+dx;E%I zfg7FzX~R#Bpj^)?_TrBdsMcnAQbp4~RMj#@D>?5CTJ#kYhj2a%@}*|4@4f(4b@3-} zhc5$_)!VPyUDpR!Yj9krY-eUzUzGp}w=t1F?-f2f_TXs(FI`7a78 zC6@4GA_Nj%4420dhQ{&4v79J%AvIPP^Vx!GiGJB`@l}}RE_6F8eaQM#jwT_fu;a-& zeNzTX5q#V?^ySYB5<+%HKYek{;{Al6yu-;=mdQ!rSjJ(|rKdt5EOl1Jt!qc}mtXuY z#_aflgk)!%JFHE-4{jM1X}>~ws8agr!S1ONO+t{H;X~iyjR~kWFo^R>=|gx*I`eqwq^(v}Tn6(5G|HPwdlQ%Pa2 zUq6TP@2B_w*pmk3B^#5kaAi=|9a!19p$f|We)+*S!DpbXeo+hSudiW_Z?mpH>VfjB z_vkfuhN1k>!F$uH6eyFrWpsEyfI0bQ)t{^?gR-MvoW4-{1h3~UYUsNKcUmy|jQWHI>O<)B)LoHC;}FL3W5fseB2Ayf z2u#_JyjExhA&ekwdXtYqkkJ&SCm_B=pbMi0ROU`Nq3jhG{ CWVQ?d literal 1924 zcmV-~2YdJ*iwFP!000001Lc-|IF#ug$8R$TV^H2&YgKF{Z!L+Aw)<|esXa=RmDI!- znHpmBs8-5B(s((~cxF1vb*}52 zzt3FPJiq&Q-@p6q`F)<>^$pMh0MLLcT?NqSWRtE>KFB_r4r$e;z6n1KKl?-lwu*O% zUb1$h5Xwi6lW)`8j?}}_$cM!aEKBqi3ARiG(fER-8T8s^Lvq)XWkLNv$_ zesBawNVfGAae6bcig6B45X$03Mk;(Y!EA?Ya@mR*H02CWVKg@)IGUsIX?~vMb4qcg zH0jEgw+HW-s$p5);+u{319+<0@#I+54J@<7S{o_>mYLkUX}4AnPv2^}qPyCF>^~X1 z*`JUCH{E9XWDA~LYSL_@eHu@=h1#FGI)NvRGQ9wC0?QU;bm{iEVwv&jTL16kvCPcA zA$X@0Pvl%H=9Oni!D3bSfHhJqv!Oj2bRLn?x5oDUQ$VhNAdp!Zmxw2P*UQwkyzsPD z$3OoI=tlpv4!p4K# z*G%6-)Q+b!Mb@KN+wr8!*vjrpM_}3`Ufr*wYhcRw;B%jhCvcyIr-&gGL1LNbUqT(E zkZ^pZ@#bA2G4>m*YQfnl$ z^oGPckBh0!){w}k?`|AE0120knLg4qNLW4LbLk97ls1f92;Tz>`8x`~ssY$8d{eJ3 z05J7;-z|%70C@c`3-@=%0lYD~DYz#Wz_hn@ft)1(rhN9arjrTa?z6|jt6c$1{>5(j z?NHL5ZA$9?jhvUxoLIFO;4KUL``i;ro5(ly5CFV^^ZUMja{c6No21-%0A^?e*xH%{ z>>HC3UfBlVI)iO{j1~jv$f!zglgFLg-J97XT+p5>0wAe27R>zlewhWB_ybua}o$7n_8++nk(bo{U(fcbf8MsIGv zfE9JICvJo;gymJ6uUJ)T!pjz%s>W9iRJ~N0o>fQ9`NUoU&T@; z1YhWQdPdWbfs=SEdWXLKbxuNv&WQdOS4}@o2+oa3s4zPn55G%~5nk*UKtZvcENV?V zmb}{b4d3YdISI+iGFiU*WGk%JD^Punb8&gvszaTP$;yOaC!PCV!|UR3t$zUPi-vFE z$yR$^*|_PPg#5hsdjAI2JY10w{}|0rzZ$X6pr3)aSK{AxEANfy zIV;DzH(f_Lj%=E@tu2zIY>esNB|zCBIk%GRoKW_ci(KO#KSGk@Q$wP*EF>=bENHKx zDw3Rv4{_Y_97%qfI&ilq1xbq5C0u5Uk@$gsdFR?1B>wxQdpiSvMB-cXnwfungR;Gv z)O~Odl3ck%uemvlB!>^(nUW zur7x0A3-@b)`C~lPmv@)+xFgJH*#O&!YgLc)FUj#Wuf zD1XI@f;X=X%oM#3^T6f>3+LuRe&By^V9bpWL`Fpi%WIf0I6}bV^7qUdrpudTPW}a+ KbaUnf3jhHB(ZM+Y