Open avehtari opened 3 years ago
@jgabry I would like to change also loo object part diagnostics$n_eff
to diagnostics$ess
, but can we do that?
@jgabry any comment on this?
I agree that it would be nice to change to ess
, but it's a bit tricky. The problem is that the diagnostics
element of the loo and psis objects doesn't have its own class (it's just a list), which means we can't define custom methods for [
, [[
, and $
that throw a deprecation warning when diagnostics$n_eff
is accessed.
If we wanted to make this change I think the first step would be to add a class to the diagnostics list in one release and then in a later release we could add the new ess
slot and methods for [
, [[
, and $
that throw a warning if n_eff
is accessed (but still return n_eff
to avoid breaking people's code).
I'm not sure that it's worth it, but maybe it is. What do you think?
Another question is what to do with the r_eff
argument that we have in many functions. The name is consistent with n_eff
. Would we keep that or change it to something else too?
If we wanted to make this change I think the first step would be to add a class to the diagnostics list in one release and then in a later release we could add the new
ess
slot and methods for[
,[[
, and$
that throw a warning ifn_eff
is accessed (but still returnn_eff
to avoid breaking people's code).
I meant to say we could add the class plus the ess
slot in one release (so both ess
and n_eff
work without warning for a little while), and then deprecate n_eff
in a later release with a warning. But I guess we could do it all in the same release instead of two steps.
The slot is still n_eff
but #235 did change the print method to print ESS
The current output
has column
n_eff
. Following new Rhat paper and posterior package, I propose we change that toESS
as in effective sample size.