Skip to content

v0.1.7

Choose a tag to compare

@jturner-uofl jturner-uofl released this 27 May 12:15
· 37 commits to main since this release

What's fixed

  • joint_tests() now refuses posterior-derived EmmList inputs. The earlier posterior refusal only covered bare EMMResult / ContrastResult; an EmmList wrapper hit TypeError: No pymmeans adapter recognises EmmList. joint_tests now unwraps the first model_info-carrying member and routes it through the same inference_kind check.
  • Cox PH advisory warning now fires on older statsmodels releases. The 0.1.6 detection imported PHReg, PHRegResults, and PHRegResultsWrapper in a single from ... import. On statsmodels releases where the wrapper symbol is absent, the whole tuple raised ImportError and the warning was silently disabled. Each name is now imported in isolation.
  • Cox class-name collisions in the adapter metadata. src/pymmeans/utils.py still had two short-name string checks routing any unrelated proxy class named PHReg / PHRegResults into the Cox-PH code paths (synthetic np.log(<endog>) response_name, df_resid=inf). Both call sites now use a module-qualified isinstance against statsmodels.duration.hazard_regression.
  • apply_kenward_roger on non-MixedLM fits now raises a clear ValueError instead of AttributeError: 'OLSResults' object has no attribute 'cov_re'. Mirrors apply_satterthwaite's "MixedLM-only" refusal.
  • joint_tests() on a pickled EMM/contrast now raises a clear ValueError instead of AttributeError: 'NoneType' object has no attribute 'terms'. The new error names pickle as the cause and lists fixes.
  • bootstrap_ci(em, kind='case', ...) on a pickled EMM now raises a clear ValueError instead of the misleading Cannot bootstrap a zero-row dataset. Names the pickle round-trip as the cause and steers to refit_fn=.
  • Exact Dunnett at large k is now bounded by a configurable safety cap. adjust='dunnett' at k=200 (199-dim MVT integral) could run effectively unbounded; _dunnett now raises at k > 100 (overridable via set_emm_options(dunnett_max_k=...)) and steers to adjust='dunnettx'.
  • README honesty pass on Satterthwaite / KR coverage. Dropped the "any RE structure" overclaim; explicitly names cov_re / re_formula as supported, notes that vc_formula= crossed RE is a 0.2.0 candidate.