Skip to content

Commit

Permalink
add link to SmoothPeriodicStatsModels
Browse files Browse the repository at this point in the history
  • Loading branch information
dmetivie committed Sep 22, 2023
1 parent 2a9c0da commit 4f656eb
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
This package is an extension of the package [HMMBase.jl](https://github.com/maxmouchet/HMMBase.jl) that originally define, use, fit Hidden Markov Models.
The extension adds the subtype `PeriodicHMM` to the type `HMMBase.AbstractHMM` that deals with non-constant transition matrix `A(t)` and emission distribution `B(t)`.

WARNING: As it is `fit_mle` does not enforce smoothness of hidden states with `t` i.e. because HMM are identifiable up to a relabeling nothing prevents that after fitting `ν[k=1, t=1]` and `ν[k=1, t=2]` mean the same hidden state (same for `Q` matrix).
To enforce smoothness and identifiability (up to a global index relabeling), one can be inspired by seasonal Hidden Markov Model, see [A. Touron (2019)](https://link.springer.com/article/10.1007/s11222-019-09854-4).
I implement that idea and generalization to other statistic model like HMM, Mixture, Auto Regressive in [SmoothPeriodicStatsModels.jl](https://github.com/dmetivie/SmoothPeriodicStatsModels.jl).

## Simple example

```julia
Expand Down Expand Up @@ -80,6 +84,7 @@ end
plot(p..., size=(1000, 500))
```
![Time dependent transition matrix coefficient](img/Q_estiamated.svg)

#### Emission distribution

```julia
Expand All @@ -92,4 +97,5 @@ for i in 1:K
end
plot(p..., size=(1000, 500))
```

![Emission distribution parameters](img/nu_estiamated.svg)

2 comments on commit 4f656eb

@dmetivie
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register()

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/91965

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.1.2 -m "<description of version>" 4f656ebfaaace5a53e84f218df86f1f53f00a336
git push origin v0.1.2

Also, note the warning: This looks like a new registration that registers version 0.1.2.
Ideally, you should register an initial release with 0.0.1, 0.1.0 or 1.0.0 version numbers
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

Please sign in to comment.