Skip to content

fit/fit_mle for DiagNormal/IsoNormal fails: "suffstats is not implemented" #2074

Description

@rsenne

Fitting a diagonal multivariate normal (DiagNormal/IsoNormal) via fit/fit_mle errors because suffstats is not defined for that type. Both the weighted and unweighted forms fail, and full-covariance MvNormal works fine.

MWE

using Distributions, LinearAlgebra

d = MvNormal(zeros(3), Diagonal(ones(3)))   # a DiagNormal
# d = MvNormal(zeros(3), I) # an IsoNormal
typeof(d) 

fit(typeof(d), randn(3, 50))                 # ERROR

Error

ERROR: suffstats is not implemented for (IsoNormal{Float64, PDMats.ScalMat{Float64}, Vector{Float64}}, Matrix{Float64}).
Stacktrace:
 [1] error(s::String)
   @ Base .\error.jl:44
 [2] suffstats(dt::Type{IsoNormal{Float64, PDMats.ScalMat{Float64}, Vector{Float64}}}, xs::Matrix{Float64})
   @ Distributions C:\Users\senne\.julia\packages\Distributions\XAng5\src\genericfit.jl:5
 [3] fit_mle(dt::Type{IsoNormal{Float64, PDMats.ScalMat{Float64}, Vector{Float64}}}, x::Matrix{Float64})
   @ Distributions C:\Users\senne\.julia\packages\Distributions\XAng5\src\genericfit.jl:30
 [4] fit(dt::Type{IsoNormal{Float64, PDMats.ScalMat{Float64}, Vector{Float64}}}, x::Matrix{Float64})
   @ Distributions C:\Users\senne\.julia\packages\Distributions\XAng5\src\genericfit.jl:46
 [5] top-level scope
   @ REPL[12]:1

Version Info

Julia: 1.12.6
Distributions 0.25.129

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions