{
  "_id": "6ac9e9fefe5cc25786e829a2",
  "Package": "kalmix",
  "Type": "Package",
  "Title": "General State-Space Modelling, Filtering and Change-Point\nDetection",
  "Version": "0.6.0",
  "Authors@R": "c(\nperson(given = \"Max\",\nfamily = \"Moldovan\",\nrole = c(\"aut\", \"cre\"),\nemail = \"max.moldovan@gmail.com\",\ncomment = c(ORCID = \"0000-0001-9680-8474\")),\nperson(given = \"Johannes\",\nfamily = \"van der Hoek\",\nrole = \"aut\",\ncomment = \"Co-developer; foundational mean-reverting spread model in Elliott, van der Hoek & Malcolm (2005).\"),\nperson(given = \"Robert J.\",\nfamily = \"Elliott\",\nrole = \"ctb\",\ncomment = \"Foundational theory of the scalar mean-reverting spread filter in Elliott, van der Hoek & Malcolm (2005).\"),\nperson(given = \"William P.\",\nfamily = \"Malcolm\",\nrole = \"ctb\",\ncomment = \"Foundational theory of the scalar mean-reverting spread filter in Elliott, van der Hoek & Malcolm (2005).\"))",
  "Description": "A compact, dependency-light toolkit for linear-Gaussian\nand discrete-state state-space models. Provides a vector-state\nKalman filter and Rauch-Tung-Striebel smoother in closed form,\na native Gaussian-mixture (regime-switching) filter, hidden\nMarkov model filtering and Viterbi decoding, a likelihood-ratio\nchange-point detector, and a minimal single-case\ninterrupted-time-series causal contrast built on the smoother.\nMean-reverting spread estimation for pairs trading is included\nas one documented application of the general machinery,\nbuilding on the scalar Ornstein-Uhlenbeck spread model of\nElliott, van der Hoek and Malcolm (2005)\n<doi:10.1080/14697680500149370>. Methods follow Kalman (1960)\n<doi:10.1115/1.3662552>, Rauch, Tung and Striebel (1965)\n<doi:10.2514/3.3166> and Durbin and Koopman (2012)\n<doi:10.1093/acprof:oso/9780199641178.001.0001>.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/max578/kalmix",
  "BugReports": "https://github.com/max578/kalmix/issues",
  "Encoding": "UTF-8",
  "Language": "en-AU",
  "Remotes": [
    "max578/kernR",
    "biometryhub/ACI/acir@dbec5a1ee5f3ec9b8863260d2e35e52f02702b6c"
  ],
  "VignetteBuilder": "knitr",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "Collate": "'linalg-internal.R' 'ssm-internal.R' 'ssm-class.R'\n'student-t-internal.R' 'kalman.R' 'ssm-fit.R'\n'mixture-internal.R' 'mixture.R' 'mixture-smoother.R'\n'hmm-internal.R' 'hmm.R' 'changepoint.R' 'its-causal.R'\n'adequacy.R' 'student-t.R' 'aci.R' 'cir.R' 'kalmix-classes.R'\n'spread.R' 'filter.R' 'kalmix-package.R' 'zzz.R'",
  "Config/roxygen2/version": "8.1.0",
  "Repository": "https://max578.r-universe.dev",
  "Date/Publication": "2026-10-09 22:30:22 UTC",
  "RemoteUrl": "https://github.com/max578/kalmix",
  "RemoteRef": "main",
  "RemoteSha": "784634e8e95f5d664657848a1a576a801d9cfe84",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-10 07:23:59 UTC",
    "User": "root"
  },
  "Author": "Max Moldovan [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-9680-8474>),\nJohannes van der Hoek [aut] (Co-developer; foundational mean-reverting\nspread model in Elliott, van der Hoek & Malcolm (2005).),\nRobert J. Elliott [ctb] (Foundational theory of the scalar\nmean-reverting spread filter in Elliott, van der Hoek & Malcolm\n(2005).),\nWilliam P. Malcolm [ctb] (Foundational theory of the scalar\nmean-reverting spread filter in Elliott, van der Hoek & Malcolm\n(2005).)",
  "Maintainer": "Max Moldovan <max.moldovan@gmail.com>",
  "_user": "max578",
  "_type": "src",
  "_file": "kalmix_0.6.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/ac353766cd0cc425c75c1e108c6fc1d30c8a60d82390388f2953fd8b5190968b",
  "_filesize": 2103787,
  "_sha256": "ac353766cd0cc425c75c1e108c6fc1d30c8a60d82390388f2953fd8b5190968b",
  "_expires": "2027-01-18T07:32:11.000Z",
  "_created": "2026-10-10T07:23:59.000Z",
  "_published": "2026-10-10T07:32:13.997Z",
  "_buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 114161472860,
      "time": 358,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11663610020"
    },
    {
      "job": 114161472739,
      "time": 278,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11662899798"
    },
    {
      "job": 114161472737,
      "time": 313,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11663304453"
    },
    {
      "job": 114161472752,
      "time": 338,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11662509385"
    },
    {
      "job": 114160680412,
      "time": 281,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11662674831"
    },
    {
      "job": 114161472708,
      "time": 98,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11662449077"
    },
    {
      "job": 114161472855,
      "time": 422,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11662254671"
    },
    {
      "job": 114161472719,
      "time": 333,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11663159758"
    },
    {
      "job": 114161472709,
      "time": 431,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11663805005"
    }
  ],
  "_upstream": "https://github.com/max578/kalmix",
  "_commit": {
    "id": "784634e8e95f5d664657848a1a576a801d9cfe84",
    "author": "Max Moldovan <max.moldovan@gmail.com>",
    "committer": "Max Moldovan <max.moldovan@gmail.com>",
    "message": "chore(release): kalmix 0.6.0\n",
    "time": 1791585022
  },
  "_maintainer": {
    "name": "Max Moldovan",
    "email": "max.moldovan@gmail.com",
    "login": "max578",
    "orcid": "0000-0001-9680-8474",
    "description": "Research scientist, R&D translation professional, woking on practical impact applications in agriculture, healthcare/madicine and good-practices-AI education.",
    "uuid": 35710829
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.3",
      "role": "Depends"
    },
    {
      "package": "S7",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "acir",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "kernR",
      "role": "Suggests"
    },
    {
      "package": "mvtnorm",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.1.5",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "max578",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-23",
      "n": 1
    },
    {
      "week": "2026-24",
      "n": 5
    },
    {
      "week": "2026-27",
      "n": 10
    },
    {
      "week": "2026-35",
      "n": 6
    },
    {
      "week": "2026-36",
      "n": 2
    },
    {
      "week": "2026-37",
      "n": 1
    },
    {
      "week": "2026-38",
      "n": 1
    },
    {
      "week": "2026-39",
      "n": 3
    },
    {
      "week": "2026-40",
      "n": 2
    },
    {
      "week": "2026-41",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.3.0",
      "date": "2026-07-05"
    },
    {
      "name": "v0.4.0",
      "date": "2026-07-05"
    },
    {
      "name": "v0.5.0",
      "date": "2026-07-05"
    },
    {
      "name": "v0.6.0",
      "date": "2026-10-09"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "max578",
      "count": 57,
      "uuid": 35710829
    }
  ],
  "_userbio": {
    "uuid": 35710829,
    "type": "user",
    "name": "Max Moldovan",
    "followers": 2,
    "description": "Research scientist, R&D translation professional, woking on practical impact applications in agriculture, healthcare/madicine and good-practices-AI education."
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/kalmix"
  },
  "_devurl": "https://github.com/max578/kalmix",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/kalmix.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "aci",
    "aci_fit",
    "causal_information_rate",
    "changepoint_fit",
    "detect_changepoint",
    "estimate_obs_df",
    "half_life",
    "hmm",
    "hmm_filter",
    "hmm_fit",
    "hmm_viterbi",
    "innov_diag",
    "innovation_diagnostics",
    "its_causal",
    "its_fit",
    "kalman_filter",
    "kalman_fit",
    "kalmix_filter",
    "mixture_filter",
    "mixture_smoother",
    "ou_fit",
    "regime_fit",
    "regime_smooth",
    "rts_fit",
    "rts_smoother",
    "spread_model",
    "spread_series",
    "ssm",
    "ssm_fit",
    "ssm_mle"
  ],
  "_help": [
    {
      "page": "aci",
      "title": "Assimilative Causal Inference read-out for a state-space model",
      "concept": [
        "causal"
      ],
      "topics": [
        "aci"
      ]
    },
    {
      "page": "aci_fit",
      "title": "An Assimilative Causal Inference read-out",
      "concept": [
        "causal"
      ],
      "topics": [
        "aci_fit"
      ]
    },
    {
      "page": "causal_information_rate",
      "title": "Objective causal influence range and decision lead-time",
      "concept": [
        "causal"
      ],
      "topics": [
        "causal_information_rate"
      ]
    },
    {
      "page": "changepoint_fit",
      "title": "A change-point detection result",
      "concept": [
        "change-point"
      ],
      "topics": [
        "changepoint_fit"
      ]
    },
    {
      "page": "detect_changepoint",
      "title": "Detect change-points in the mean of a sequence",
      "concept": [
        "change-point"
      ],
      "topics": [
        "detect_changepoint"
      ]
    },
    {
      "page": "estimate_obs_df",
      "title": "Choose the Student-t degrees of freedom by profile likelihood",
      "concept": [
        "causal"
      ],
      "topics": [
        "estimate_obs_df"
      ]
    },
    {
      "page": "half_life",
      "title": "Mean-reversion half-life of a spread model",
      "concept": [
        "classes"
      ],
      "topics": [
        "half_life"
      ]
    },
    {
      "page": "hmm",
      "title": "A hidden Markov model specification",
      "concept": [
        "hidden-markov"
      ],
      "topics": [
        "hmm"
      ]
    },
    {
      "page": "hmm_filter",
      "title": "Hidden Markov model filtering and smoothing",
      "concept": [
        "hidden-markov"
      ],
      "topics": [
        "hmm_filter"
      ]
    },
    {
      "page": "hmm_fit",
      "title": "A hidden Markov model fit",
      "concept": [
        "hidden-markov"
      ],
      "topics": [
        "hmm_fit"
      ]
    },
    {
      "page": "hmm_viterbi",
      "title": "Most likely hidden-state path (Viterbi)",
      "concept": [
        "hidden-markov"
      ],
      "topics": [
        "hmm_viterbi"
      ]
    },
    {
      "page": "innov_diag",
      "title": "Innovation diagnostics for a fitted state-space model",
      "concept": [
        "causal"
      ],
      "topics": [
        "innov_diag"
      ]
    },
    {
      "page": "innovation_diagnostics",
      "title": "Model-adequacy diagnostics for a fitted state-space model",
      "concept": [
        "causal"
      ],
      "topics": [
        "innovation_diagnostics"
      ]
    },
    {
      "page": "its_causal",
      "title": "Single-case interrupted-time-series causal effect",
      "concept": [
        "causal"
      ],
      "topics": [
        "its_causal"
      ]
    },
    {
      "page": "its_fit",
      "title": "A single-case interrupted-time-series causal contrast",
      "concept": [
        "causal"
      ],
      "topics": [
        "its_fit"
      ]
    },
    {
      "page": "kalman_filter",
      "title": "Kalman filter for a linear-Gaussian state-space model",
      "concept": [
        "state-space"
      ],
      "topics": [
        "kalman_filter"
      ]
    },
    {
      "page": "kalman_fit",
      "title": "A Kalman filter pass",
      "concept": [
        "state-space"
      ],
      "topics": [
        "kalman_fit"
      ]
    },
    {
      "page": "kalmix_filter",
      "title": "Filter a regime-switching spread state (mixture Kalman)",
      "concept": [
        "filter"
      ],
      "topics": [
        "kalmix_filter"
      ]
    },
    {
      "page": "mixture_filter",
      "title": "Regime-switching Gaussian-mixture filter",
      "concept": [
        "state-space"
      ],
      "topics": [
        "mixture_filter"
      ]
    },
    {
      "page": "mixture_smoother",
      "title": "Regime-switching (Kim) smoother",
      "concept": [
        "state-space"
      ],
      "topics": [
        "mixture_smoother"
      ]
    },
    {
      "page": "ou_fit",
      "title": "Fit Ornstein-Uhlenbeck mean reversion to a spread",
      "concept": [
        "spread"
      ],
      "topics": [
        "ou_fit"
      ]
    },
    {
      "page": "regime_fit",
      "title": "A regime-switching mixture filter pass",
      "concept": [
        "state-space"
      ],
      "topics": [
        "regime_fit"
      ]
    },
    {
      "page": "regime_smooth",
      "title": "A regime-switching smoother pass",
      "concept": [
        "state-space"
      ],
      "topics": [
        "regime_smooth"
      ]
    },
    {
      "page": "rts_fit",
      "title": "A Rauch-Tung-Striebel smoother pass",
      "concept": [
        "state-space"
      ],
      "topics": [
        "rts_fit"
      ]
    },
    {
      "page": "rts_smoother",
      "title": "Rauch-Tung-Striebel smoother for a linear-Gaussian state-space model",
      "concept": [
        "state-space"
      ],
      "topics": [
        "rts_smoother"
      ]
    },
    {
      "page": "spread_model",
      "title": "A fitted mean-reverting spread model",
      "concept": [
        "classes"
      ],
      "topics": [
        "spread_model"
      ]
    },
    {
      "page": "spread_series",
      "title": "Build a cointegration spread from two price series",
      "concept": [
        "spread"
      ],
      "topics": [
        "spread_series"
      ]
    },
    {
      "page": "ssm",
      "title": "A linear-Gaussian state-space model",
      "concept": [
        "state-space"
      ],
      "topics": [
        "ssm"
      ]
    },
    {
      "page": "ssm_fit",
      "title": "Fit ssm noise parameters by maximum likelihood",
      "concept": [
        "state-space"
      ],
      "topics": [
        "ssm_fit"
      ]
    },
    {
      "page": "ssm_mle",
      "title": "A maximum-likelihood ssm fit",
      "concept": [
        "state-space"
      ],
      "topics": [
        "ssm_mle"
      ]
    }
  ],
  "_readme": "https://github.com/max578/kalmix/raw/main/README.md",
  "_rundeps": [
    "cli",
    "S7"
  ],
  "_vignettes": [
    {
      "source": "assimilative_causal_inference.Rmd",
      "filename": "assimilative_causal_inference.html",
      "title": "Assimilative causal inference with kalmix",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why",
        "What",
        "Do",
        "Causality as an assimilation problem",
        "A known-truth test: a recharge oscillator",
        "The null carries no causal information",
        "A divergence between two Gaussians, cross-checked",
        "Grounding the verdict: abstention under model error",
        "The lead-time without re-smoothing",
        "A real ENSO index",
        "Read",
        "Limits",
        "What to read next",
        "Reproduce"
      ],
      "created": "2026-06-13 13:37:44",
      "modified": "2026-09-26 04:06:45",
      "commits": 7
    },
    {
      "source": "change_points.Rmd",
      "filename": "change_points.html",
      "title": "Change-points and hidden states with kalmix",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why",
        "What",
        "Do",
        "Change-point detection",
        "The penalty controls over-segmentation",
        "Hidden Markov models",
        "Read",
        "Limits",
        "What to read next",
        "Reproduce"
      ],
      "created": "2026-06-13 13:00:59",
      "modified": "2026-09-02 07:38:17",
      "commits": 4
    },
    {
      "source": "state_space.Rmd",
      "filename": "state_space.html",
      "title": "Getting started: state-space models with kalmix",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why",
        "What",
        "Do",
        "A linear-Gaussian state-space model",
        "Filtering: recovering the state online",
        "Smoothing: using the whole series",
        "A vector state",
        "Read",
        "Limits",
        "What to read next",
        "Reproduce"
      ],
      "created": "2026-06-13 13:00:59",
      "modified": "2026-09-02 07:38:17",
      "commits": 4
    },
    {
      "source": "pairs_trading.Rmd",
      "filename": "pairs_trading.html",
      "title": "Pairs trading with kalmix",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why",
        "What",
        "Do",
        "A cointegration spread",
        "Fitting the mean reversion",
        "Tracking the volatility regime",
        "A causal read on an event",
        "Read",
        "Limits",
        "What to read next",
        "Reproduce"
      ],
      "created": "2026-06-13 13:00:59",
      "modified": "2026-09-02 07:38:17",
      "commits": 4
    },
    {
      "source": "elliott_spread_model.Rmd",
      "filename": "elliott_spread_model.html",
      "title": "The Elliott-van der Hoek-Malcolm spread model with kalmix",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why",
        "What",
        "Do",
        "The 2005 model",
        "Why least squares on the observed spread misprices the trade",
        "Estimating the model through the filter",
        "The filter and the trading rule",
        "The single-regime base case of the regime filter",
        "Read",
        "Limits",
        "What to read next",
        "Reproduce"
      ],
      "created": "2026-07-05 11:55:55",
      "modified": "2026-09-02 07:38:17",
      "commits": 3
    }
  ],
  "_score": 4.3979400086720375,
  "_indexed": true,
  "_nocasepkg": "kalmix",
  "_universes": [
    "max578"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.6.0",
      "date": "2026-10-10T07:26:00.000Z",
      "distro": "resolute",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/e668e3235e884b737e7e1e878d913c64e015e5eac1c2a2cad6fb0c02c70d21c7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.6.0",
      "date": "2026-10-10T07:26:01.000Z",
      "distro": "resolute",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/645f51ad85a186af2767f8aa987321e2d3088d8544df96ce29f5bfc4ba2c5724",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.6.0",
      "date": "2026-10-10T07:26:13.000Z",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/30ce1f6488ab74f9a7fc91f989b28831b80e6aee374c1b4744b886164fb489f5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.6.0",
      "date": "2026-10-10T07:26:37.000Z",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/2a47f8e249fc211d4c5c466ee65ad8be14b907f4f0f37ab0468573163e9a8f01",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.6.0",
      "date": "2026-10-10T07:25:58.000Z",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/9d67ac35e059ac2f93c5e4e0974a0b84351318436c2d74fc90fdb5557bf29561",
      "status": "success",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.6.0",
      "date": "2026-10-10T07:25:32.000Z",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/2e84c7949c73ac93b19d8e0184e8c839f40885746726986db6c53697e301d6aa",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.6.0",
      "date": "2026-10-10T07:25:34.000Z",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/b97eab6a2dcd42acd2aadb38b08fef56df8ada1f462a4f88d16f5a962ebe3aad",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.6.0",
      "date": "2026-10-10T07:25:34.000Z",
      "commit": "784634e8e95f5d664657848a1a576a801d9cfe84",
      "fileid": "https://r2.ropensci.org/ad660489e1a1457d8e3388fc38301800a5d1e2c7c3b895eb4fb070b1776fada1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/max578/actions/runs/38034027326"
    }
  ]
}