{"id":25109977,"url":"https://github.com/smac-group/mgmwm","last_synced_at":"2025-10-07T15:25:53.290Z","repository":{"id":70231178,"uuid":"128155956","full_name":"SMAC-Group/mgmwm","owner":"SMAC-Group","description":":chart_with_upwards_trend: :chart_with_downwards_trend: :chart_with_upwards_trend: :chart_with_upwards_trend: :chart_with_downwards_trend: Multisignal GMWM estimation and model selection for IMU","archived":false,"fork":false,"pushed_at":"2021-07-12T18:29:27.000Z","size":5636,"stargazers_count":4,"open_issues_count":2,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-22T10:22:59.239Z","etag":null,"topics":["estimation","gmwm","imu","inertial-sensors","multivariate-timeseries","stochastic-processes"],"latest_commit_sha":null,"homepage":"https://smac-group.github.io/mgmwm/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SMAC-Group.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-04-05T03:47:01.000Z","updated_at":"2021-11-16T13:56:15.000Z","dependencies_parsed_at":"2023-03-05T20:15:48.767Z","dependency_job_id":null,"html_url":"https://github.com/SMAC-Group/mgmwm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SMAC-Group/mgmwm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMAC-Group%2Fmgmwm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMAC-Group%2Fmgmwm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMAC-Group%2Fmgmwm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMAC-Group%2Fmgmwm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SMAC-Group","download_url":"https://codeload.github.com/SMAC-Group/mgmwm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMAC-Group%2Fmgmwm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278797215,"owners_count":26047608,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["estimation","gmwm","imu","inertial-sensors","multivariate-timeseries","stochastic-processes"],"created_at":"2025-02-08T00:34:02.269Z","updated_at":"2025-10-07T15:25:53.279Z","avatar_url":"https://github.com/SMAC-Group.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, echo = FALSE, warning=FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\"\n)\n\nlibrary(mgmwm)\n```\n\n[![Travis-CI Build Status](https://travis-ci.org/SMAC-Group/classimu.svg?branch=master)](https://travis-ci.org/SMAC-Group/classimu)\n[![Project Status: Active](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)\n[![Licence](https://img.shields.io/badge/licence-CC BY--NC--SA 4.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)\n[![minimal R version](https://img.shields.io/badge/R%3E%3D-3.4.0-6666ff.svg)](https://cran.r-project.org/)\n[![CRAN](http://www.r-pkg.org/badges/version/classimu)](https://cran.r-project.org/package=classimu)\n[![packageversion](https://img.shields.io/badge/Package%20version-0.1.0-orange.svg?style=flat-square)](commits/develop)\n[![Last-changedate](https://img.shields.io/badge/last%20change-`r gsub('-', '--', Sys.Date())`-yellowgreen.svg)](/commits/master)\n\n# `mgmwm` Overview \u003ca href=\"https://smac-group.com/\"\u003e\u003cimg src=\"man/figures/logo.png\" align=\"right\" style=\"width: 20%; height: 20%\"/\u003e\u003c/a\u003e\n\nMultisignal GMWM (`mgmwm`) R package allows to estimate the parameters from multiple replicates coming from an IMU error signal, apply the near-stationarity test and select the nost approriate model.\n\nTo see what `mgmwm` is capable of, please refer to the \"Vignettes\" tabs above.\n\n## IEEE/ION PLANS Monterey 2018 presentation\n\nYou'll find hereunder the presentation of the `mgmwm` package and its related theory:\n\n[A Two-Step Computationally Efficient Procedure for IMU Classification and Calibration](https://smac-group.com/pdfs/ieee_ion_plans_2018_slides.pdf).\n\n\n## Install Instructions\n\n### Installing the package through GitHub\n\nFor users who are interested in having the latest developments, this option is ideal. Though, more dependancies are required to run a stable version of the package. Most importantly, users **must** have a compiler installed on their machine that is compatible with R (e.g. Clang).\n\n*The setup to obtain the development version of `mgmwm` is platform dependent.*\n\n### Requirements and Dependencies\n\n**OS X**\n\nSome users report the need to use X11 to suppress shared library errors. To install X11, visit [xquartz.org](http://www.xquartz.org/).\n\n**Linux**\n\nBoth curl and libxml are required.\n\nFor **Debian** systems, enter the following in terminal:\n\n```{r, eval = F, engine='bash'}\nsudo apt-get install curl libcurl3 libcurl3-dev libxml2 libxml2-dev\n```\n\nFor **RHEL** systems, enter the following in terminal:\n\n```{r, eval = F, engine='bash'}\nsudo yum install curl curl-devel libxml2 libxml2-dev\n```\n\n**All Systems**\n\nThe following R packages are also required. If you have made it this far, run the following code in an R session and you will be ready to use the devlopment version of `mgmwm`.\n\n```{r, eval = F}\n# Install dependencies\ninstall.packages(c(\"RcppArmadillo\",\"devtools\",\"knitr\",\"rmarkdown\", \"iterpc\", \"progress\", \"shinyjs\"))\n\n# Install dependencies from github\ndevtools::install_github(c(\"SMAC-Group/simts\", \"SMAC-Group/wv\", \"SMAC-Group/gmwm\"))\n\n# Install the package from GitHub without Vignettes/User Guides\ndevtools::install_github(\"SMAC-Group/mgmwm\")\n\n# Install the package with Vignettes/User Guides \ndevtools::install_github(\"SMAC-Group/mgmwm\", build_vignettes = TRUE)\n```\n\n### Package capabilities example\n\n**Create a M-IMU object**\n\nIn order to use the `mgmwm` package, one need to create a mimu object through the function `make_mimu`. An example on how to use this function is provided hereunder with simulated data:\n\n```{r, eval = T, warning = F, message = F, fig.width = 8, fig.height = 6}\nlibrary(simts)\nlibrary(wv)\nlibrary(gmwm)\nlibrary(mgmwm)\n\n# Set seed for reproducibility \nset.seed(2710)\n\n# Define the differente sample size for simulated data\nn1 = 10000\nn2 = 500000\nn3 = 100000\nn4 = 50000\n\n# Define the model for simulated data\nmodel1 = AR1(.995, sigma2 = 1e-6) + WN(.005) + RW (1e-7)\nmodel2 = AR1(.990, sigma2 = 1e-6) + WN(.007) + RW (1e-7)\n\n# Generate 4 replicates coming from the above models\nWt =  gen_gts(n1, model1)\nXt =  gen_gts(n2, model1)\nYt =  gen_gts(n3, model2)\nZt =  gen_gts(n4, model2)\n\n# Create the mimu object\nmimu = make_mimu(Wt ,Xt, Yt, Zt, freq = 100, unit = \"s\", sensor.name = \"Simulated Data sets\", \n                 exp.name = c(\"today\", \"yesterday\", \"last friday\",\"last tuesday\" ))\n\n# Plot the data at hand\nplot(mimu)\n\n```\n\n**Estimates parameters values and plot function**\n\n```{r, eval = T, warning = F, message = F, fig.width = 8, fig.height = 6}\n\n# Specify the model which you want to estimate\nmodel = 3*AR1() + WN() + RW ()\n\n# Estimate the model with the mgmwm function\nfit_1 = mgmwm(mimu, model, CI = T)\n\n# Print summary of estimation (Parameters values and respective confidence intervals if computed)\nsummary(fit_1)\n\n# Plot the Empirical Wavelet Variance with the one Implied by the parameters\nplot(fit_1)\n\n# Plot the Empirical Wavelet Variance with the one Implied by the parameters with the contribution \n# of each individual processes\nplot(fit_1, decomp = T)\n\n```\n\n** Select model and compare the selection criteria **\n\n\n```{r, eval = T, warning = F, message = F, fig.width = 8, fig.height = 6}\n# Compute the Wavelet Variance Information Criterion (WVIC) on all nested models\nmodel_selection_1 = model_selection(mimu, model)\n\n# Plot the selected model Implied WV\nplot(model_selection_1)\n\n# Plot the equivalent model WV\nplot(model_selection_1, type = \"equivalent\")\n\n# Plot the value of the WVIC for every nested model with their respective confidence intervals\nplot(model_selection_1, type = \"wvic_all\")\n\n# Plot the value of the WVIC for equivalent model(s) with their respective confidence intervals\nplot(model_selection_1, type = \"wvic_equivalent\")\n```\n\nThe models in green are the equivalent models with the same or less models complexity, with respect to the number of parameters to estimate.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmac-group%2Fmgmwm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmac-group%2Fmgmwm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmac-group%2Fmgmwm/lists"}