Extracting, Computing and Exploring the Parameters of Statistical Models using R

Extracting, Computing and Exploring the Parameters of Statistical Models using R - Published in JOSS (2020)

https://github.com/easystats/parameters

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    1 of 22 committers (4.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

beta bootstrap ci confidence-intervals data-reduction easystats fa feature-extraction feature-reduction hacktoberfest parameters pca pvalues r r-package regression-models robust-statistics standardize standardized-estimates statistical-models

Keywords from Contributors

standardization correlation predict r2 mixed-models loo aic interpretability hedges-g effectsize

Scientific Fields

Engineering Computer Science - 60% confidence
Economics Social Sciences - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

:bar_chart: Computation and processing of models' parameters

Basic Info
Statistics
  • Stars: 475
  • Watchers: 11
  • Forks: 40
  • Open Issues: 62
  • Releases: 30
Topics
beta bootstrap ci confidence-intervals data-reduction easystats fa feature-extraction feature-reduction hacktoberfest parameters pca pvalues r r-package regression-models robust-statistics standardize standardized-estimates statistical-models
Created almost 7 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Support

README.Rmd

---
output: github_document
bibliography: paper/paper.bib
csl: paper/apa.csl
---

```{r, warning=FALSE, message=FALSE, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  dpi = 300,
  fig.path = "man/figures/",
  comment = "#>",
  warning = FALSE,
  message = FALSE,
  out.width = "100%"
)

options(easystats_table_width = Inf)
set.seed(333)
library(parameters)
```

# parameters 

[![DOI](https://joss.theoj.org/papers/10.21105/joss.02445/status.svg)](https://doi.org/10.21105/joss.02445)
[![downloads](https://cranlogs.r-pkg.org/badges/parameters)](https://cran.r-project.org/package=parameters)
[![total](https://cranlogs.r-pkg.org/badges/grand-total/parameters)](https://cranlogs.r-pkg.org/)

***Describe and understand your model's parameters!***

**parameters**' primary goal is to provide utilities for processing the parameters of various statistical models (see [here](https://easystats.github.io/insight/) for a list of supported models). Beyond computing *p-values*, *CIs*, *Bayesian indices* and other measures for a wide variety of models, this package implements features like *bootstrapping* of parameters and models, *feature reduction* (feature extraction and variable selection), or tools for data reduction like functions to perform cluster, factor or principal component analysis.

Another important goal of the **parameters** package is to facilitate and streamline the process of reporting results of statistical models, which includes the easy and intuitive calculation of standardized estimates or robust standard errors and p-values. **parameters** therefor offers a simple and unified syntax to process a large variety of (model) objects from many different packages.

## Installation

[![CRAN](https://www.r-pkg.org/badges/version/parameters)](https://cran.r-project.org/package=parameters) [![parameters status badge](https://easystats.r-universe.dev/badges/parameters)](https://easystats.r-universe.dev) [![codecov](https://codecov.io/gh/easystats/parameters/branch/main/graph/badge.svg)](https://app.codecov.io/gh/easystats/parameters)

Type | Source | Command
---|---|---
Release | CRAN | `install.packages("parameters")`
Development | r - universe | `install.packages("parameters", repos = "https://easystats.r-universe.dev")`
Development | GitHub | `remotes::install_github("easystats/parameters")`

> **Tip**
>
> Instead of `library(parameters)`, use `library(easystats)`. This will make all features of the easystats-ecosystem available.
>
> To stay updated, use `easystats::install_latest()`.

## Documentation

[![Documentation](https://img.shields.io/badge/documentation-parameters-orange.svg?colorB=E91E63)](https://easystats.github.io/parameters/)
[![Blog](https://img.shields.io/badge/blog-easystats-orange.svg?colorB=FF9800)](https://easystats.github.io/blog/posts/)
[![Features](https://img.shields.io/badge/features-parameters-orange.svg?colorB=2196F3)](https://easystats.github.io/parameters/reference/index.html)

Click on the buttons above to access the package [documentation](https://easystats.github.io/parameters/) and the [easystats blog](https://easystats.github.io/blog/posts/), and check-out these vignettes:

- [Summary of Model Parameters](https://easystats.github.io/parameters/articles/model_parameters.html)
- [Parameter and Model Standardization](https://easystats.github.io/parameters/articles/standardize_parameters_effsize.html)
- [Robust Estimation of Standard Errors, Confidence Intervals and p-values](https://easystats.github.io/parameters/articles/model_parameters_robust.html)
- [Model Parameters and Missing Data](https://easystats.github.io/parameters/articles/model_parameters_mice.html)
- [Feature reduction (PCA, cMDS, ICA...)](https://easystats.github.io/parameters/articles/parameters_reduction.html)
- [Structural models (EFA, CFA, SEM...)](https://easystats.github.io/parameters/articles/efa_cfa.html)
- [Parameters selection](https://easystats.github.io/parameters/articles/parameters_selection.html)
- [A Practical Guide for Panel Data Analysis](https://easystats.github.io/parameters/articles/demean.html)
- [Plotting functions](https://easystats.github.io/see/articles/parameters.html)

## Contributing and Support

In case you want to file an issue or contribute in another way to the package, please follow [this guide](https://github.com/easystats/parameters/blob/main/.github/CONTRIBUTING.md). For questions about the functionality, you may either contact us via email or also file an issue.


# Features

## Model's parameters description

```{r echo=FALSE, fig.align='center', dpi=96}
knitr::include_graphics("man/figures/figure1.png")
```

The [`model_parameters()`](https://easystats.github.io/parameters/articles/model_parameters.html) function (that can be accessed via the `parameters()` shortcut) allows you to extract the parameters and their characteristics from various models in a consistent way. It can be considered as a lightweight alternative to [`broom::tidy()`](https://github.com/tidymodels/broom), with some notable differences:

- The column names of the returned data frame are *specific* to their content. For instance, the column containing the statistic is named following the statistic name, i.e., *t*, *z*, etc., instead of a generic name such as *statistic* (however, you can get standardized (generic) column names using [`standardize_names()`](https://easystats.github.io/insight/reference/standardize_names.html)).
- It is able to compute or extract indices not available by default, such as *p-values*, *CIs*, etc.
- It includes *feature engineering* capabilities, including parameters [bootstrapping](https://easystats.github.io/parameters/reference/bootstrap_parameters.html).


### Classical Regression Models

```{r}
model <- lm(Sepal.Width ~ Petal.Length * Species + Petal.Width, data = iris)

# regular model parameters
model_parameters(model)

# standardized parameters
model_parameters(model, standardize = "refit")

# heteroscedasticity-consitent SE and CI
model_parameters(model, vcov = "HC3")
```

### Mixed Models

```{r}
library(lme4)
model <- lmer(Sepal.Width ~ Petal.Length + (1 | Species), data = iris)

# model parameters with CI, df and p-values based on Wald approximation
model_parameters(model)

# model parameters with CI, df and p-values based on Kenward-Roger approximation
model_parameters(model, ci_method = "kenward", effects = "fixed")
```

### Structural Models

Besides many types of regression models and packages, it also works for other types of models, such as [**structural models**](https://easystats.github.io/parameters/articles/efa_cfa.html) (EFA, CFA, SEM...).

```{r, warning=FALSE, message=FALSE}
library(psych)

model <- psych::fa(attitude, nfactors = 3)
model_parameters(model)
```



## Variable and parameters selection

```{r echo=FALSE, fig.align='center', dpi=96}
knitr::include_graphics("man/figures/figure2.png")
```

[`select_parameters()`](https://easystats.github.io/parameters/articles/parameters_selection.html) can help you quickly select and retain the most relevant predictors using methods tailored for the model type.

```{r, warning=FALSE, message=FALSE}
lm(disp ~ ., data = mtcars) |>
  select_parameters() |>
  model_parameters()
```


## Statistical inference - how to quantify evidence
There is no standardized approach to drawing conclusions based on the available data and statistical models. A frequently chosen but also much criticized approach is to evaluate results based on their statistical significance [@amrhein_earth_2017].

A more sophisticated way would be to test whether estimated effects exceed the "smallest effect size of interest", to avoid even the smallest effects being considered relevant simply because they are statistically significant, but clinically or practically irrelevant [@lakens2020equivalence;@lakens_improving_2022]. A rather unconventional approach, which is nevertheless advocated by various authors, is to interpret results from classical regression models in terms of probabilities, similar to the usual approach in Bayesian statistics [@greenland_aid_2022;@rafi_semantic_2020;@schweder_confidence_2018;@schweder_frequentist_2003;@vos_frequentist_2022].

The _parameters_ package provides several options or functions to aid statistical inference. These are, for example:

- [`equivalence_test()`](https://easystats.github.io/parameters/reference/equivalence_test.lm.html), to compute the (conditional) equivalence test for frequentist models
- [`p_significance()`](https://easystats.github.io/parameters/reference/p_significance.lm.html), to compute the probability of *practical significance*, which can be conceptualized as a unidirectional equivalence test
- [`p_function()`](https://easystats.github.io/parameters/reference/p_function.html), or _consonance function_, to compute p-values and compatibility (confidence) intervals for statistical models
- the `pd` argument (setting `pd = TRUE`) in `model_parameters()` includes a column with the *probability of direction*, i.e. the probability that a parameter is strictly positive or negative. See [`bayestestR::p_direction()`](https://easystats.github.io/bayestestR/reference/p_direction.html) for details.
- the `s_value` argument (setting `s_value = TRUE`) in `model_parameters()` replaces the p-values with their related _S_-values [@@rafi_semantic_2020]
- finally, it is possible to generate distributions of model coefficients by generating bootstrap-samples (setting `bootstrap = TRUE`) or simulating draws from model coefficients using [`simulate_model()`](https://easystats.github.io/parameters/reference/simulate_model.html). These samples can then be treated as "posterior samples" and used in many functions from the **bayestestR** package.

Most of the above shown options or functions derive from methods originally implemented for Bayesian models [@makowski_indices_2019]. However, assuming that model assumptions are met (which means, the model fits well to the data, the correct model is chosen that reflects the data generating process (distributional model family) etc.), it seems appropriate to interpret results from classical frequentist models in a "Bayesian way" (more details: documentation in [`p_function()`](https://easystats.github.io/parameters/reference/p_function.html)).

## Citation

In order to cite this package, please use the following command:

```{r, comment=""}
citation("parameters")
```

## Code of Conduct

Please note that the parameters project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). By contributing to this project, you agree to abide by its terms.

## References

Owner

  • Name: easystats
  • Login: easystats
  • Kind: organization
  • Location: worldwide

Make R stats easy!

JOSS Publication

Extracting, Computing and Exploring the Parameters of Statistical Models using R
Published
September 09, 2020
Volume 5, Issue 53, Page 2445
Authors
Daniel Lüdecke ORCID
University Medical Center Hamburg-Eppendorf, Germany
Mattan S. Ben-Shachar ORCID
Ben-Gurion University of the Negev, Israel
Indrajeet Patil ORCID
Max Planck Institute for Human Development, Germany
Dominique Makowski ORCID
Nanyang Technological University, Singapore
Editor
Sebastian Benthall ORCID
Tags
easystats parameters regression linear models coefficients

GitHub Events

Total
  • Create event: 65
  • Release event: 9
  • Issues event: 79
  • Watch event: 34
  • Delete event: 61
  • Issue comment event: 209
  • Push event: 564
  • Pull request review comment event: 59
  • Pull request review event: 62
  • Pull request event: 127
  • Fork event: 3
Last Year
  • Create event: 65
  • Release event: 9
  • Issues event: 79
  • Watch event: 34
  • Delete event: 61
  • Issue comment event: 209
  • Push event: 564
  • Pull request review comment event: 59
  • Pull request review event: 62
  • Pull request event: 127
  • Fork event: 3

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 4,932
  • Total Committers: 22
  • Avg Commits per committer: 224.182
  • Development Distribution Score (DDS): 0.193
Past Year
  • Commits: 204
  • Committers: 7
  • Avg Commits per committer: 29.143
  • Development Distribution Score (DDS): 0.069
Top Committers
Name Email Commits
Daniel m****l@d****e 3,982
Dominique Makowski d****9@g****m 430
Indrajeet Patil p****e@g****m 309
Vincent Arel-Bundock v****k@u****a 63
mattansb 3****b 57
Brenton M. Wiernik b****k 22
etiennebacher e****r@p****m 17
github-actions[bot] 4****] 13
Douglas Ezra Morrison d****n@g****m 9
jmgirard me@j****m 9
Zen z****n 5
Joseph Luchman j****n@g****m 4
Aaron Peikert a****t@p****e 2
AmirDJV A****V@g****m 2
Ben Marwick b****k@h****m 1
Christina Maimone c****e@g****m 1
Daniel E. Weeks w****s@p****u 1
Guspan Tanadi 3****i 1
Philip Waggoner 3****r 1
Rémi Thériault 1****c 1
Stefan Hansen 4****n 1
jim j****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 141
  • Total pull requests: 345
  • Average time to close issues: 5 months
  • Average time to close pull requests: 8 days
  • Total issue authors: 50
  • Total pull request authors: 16
  • Average comments per issue: 3.39
  • Average comments per pull request: 1.19
  • Merged pull requests: 293
  • Bot issues: 1
  • Bot pull requests: 29
Past Year
  • Issues: 51
  • Pull requests: 160
  • Average time to close issues: 5 days
  • Average time to close pull requests: 1 day
  • Issue authors: 19
  • Pull request authors: 8
  • Average comments per issue: 2.88
  • Average comments per pull request: 0.63
  • Merged pull requests: 133
  • Bot issues: 1
  • Bot pull requests: 13
Top Authors
Issue Authors
  • vincentarelbundock (16)
  • strengejacke (15)
  • DominiqueMakowski (13)
  • IndrajeetPatil (12)
  • mattansb (9)
  • snhansen (9)
  • profandyfield (8)
  • raffaem (5)
  • bwiernik (5)
  • rbcavanaugh (3)
  • LukasWallrich (2)
  • InkaMarei (2)
  • rempsyc (2)
  • plants-22 (2)
  • Generalized (2)
Pull Request Authors
  • strengejacke (272)
  • github-actions[bot] (29)
  • DominiqueMakowski (11)
  • vincentarelbundock (8)
  • mattansb (5)
  • IndrajeetPatil (4)
  • etiennebacher (4)
  • jimrothstein (3)
  • mr-c (2)
  • guspan-tanadi (2)
  • DanielEWeeks (1)
  • jluchman (1)
  • donaldkip77 (1)
  • rempsyc (1)
  • snhansen (1)
Top Labels
Issue Labels
bug :bug: (13) Enhancement :boom: (11) 3 investigators :grey_question::question: (10) Bug :bug: (9) enhancement :boom: (7) consistency :green_apple: :apple: (5) feature idea :fire: (4) Feature idea :fire: (4) What's your opinion :hear_no_evil: (3) Refactor :recycle: (3) docs :books: (3) Won't fix :no_entry_sign: (2) Help us :eyes: (2) question :question: (2) waiting for response :love_letter: (1) beginner-friendly :handshake: (1) low priority :sleeping: (1) Consistency :green_apple: :apple: (1) wontfix :no_entry_sign: (1) reprex :bar_chart: (1) invalid :x: (1) Auto-update (1) what's your opinion :hear_no_evil: (1) Low priority :sleeping: (1) Breaking 🏴‍☠️ (1)
Pull Request Labels
Auto-update (17) auto-update (12) hacktoberfest 💻 (3) docs :books: (1)

Packages

  • Total packages: 3
  • Total downloads:
    • cran 73,675 last-month
  • Total docker downloads: 48,020
  • Total dependent packages: 46
    (may contain duplicates)
  • Total dependent repositories: 76
    (may contain duplicates)
  • Total versions: 100
  • Total maintainers: 1
cran.r-project.org: parameters

Processing of Model Parameters

  • Versions: 51
  • Dependent Packages: 33
  • Dependent Repositories: 75
  • Downloads: 73,675 Last month
  • Docker Downloads: 48,020
Rankings
Stargazers count: 1.0%
Downloads: 1.5%
Forks count: 2.1%
Dependent packages count: 2.3%
Dependent repos count: 2.7%
Average: 5.4%
Docker downloads count: 23.1%
Maintainers (1)
Last synced: 4 months ago
proxy.golang.org: github.com/easystats/parameters
  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 4 months ago
conda-forge.org: r-parameters
  • Versions: 27
  • Dependent Packages: 13
  • Dependent Repositories: 1
Rankings
Dependent packages count: 4.8%
Average: 20.0%
Stargazers count: 20.8%
Dependent repos count: 24.4%
Forks count: 30.2%
Last synced: 5 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.5 depends
  • bayestestR >= 0.12.1 imports
  • datawizard >= 0.4.1 imports
  • graphics * imports
  • insight >= 0.17.1.8 imports
  • methods * imports
  • stats * imports
  • utils * imports
  • AER * suggests
  • BayesFM * suggests
  • BayesFactor * suggests
  • ClassDiscovery * suggests
  • DRR * suggests
  • EGAnet >= 0.7 suggests
  • FactoMineR * suggests
  • GLMMadaptive * suggests
  • GPArotation * suggests
  • Hmisc * suggests
  • M3C * suggests
  • MASS * suggests
  • MCMCglmm * suggests
  • Matrix * suggests
  • MuMIn * suggests
  • NbClust * suggests
  • PCDimension * suggests
  • PMCMRplus * suggests
  • PROreg * suggests
  • TMB * suggests
  • VGAM * suggests
  • WRS2 * suggests
  • afex * suggests
  • aod * suggests
  • bbmle * suggests
  • betareg * suggests
  • biglm * suggests
  • blme * suggests
  • boot * suggests
  • brglm2 * suggests
  • brms * suggests
  • broom * suggests
  • cAIC4 * suggests
  • car * suggests
  • cgam * suggests
  • clubSandwich * suggests
  • cluster * suggests
  • cplm * suggests
  • dbscan * suggests
  • drc * suggests
  • effectsize >= 0.6.0 suggests
  • emmeans >= 1.7.0 suggests
  • factoextra * suggests
  • fastICA * suggests
  • fixest * suggests
  • fpc * suggests
  • gam * suggests
  • gamlss * suggests
  • gee * suggests
  • geepack * suggests
  • ggplot2 * suggests
  • glmmTMB * suggests
  • gt * suggests
  • httr * suggests
  • ivprobit * suggests
  • ivreg * suggests
  • knitr * suggests
  • lavaSearch2 * suggests
  • lavaan * suggests
  • lfe * suggests
  • lm.beta * suggests
  • lme4 * suggests
  • lmerTest * suggests
  • lmtest * suggests
  • logspline * suggests
  • lqmm * suggests
  • magrittr * suggests
  • marginaleffects * suggests
  • mclust * suggests
  • mediation * suggests
  • merDeriv * suggests
  • metaBMA * suggests
  • metafor * suggests
  • mfx * suggests
  • mgcv * suggests
  • mice * suggests
  • multcomp * suggests
  • nFactors * suggests
  • nlme * suggests
  • nnet * suggests
  • openxlsx * suggests
  • ordinal * suggests
  • panelr * suggests
  • pbkrtest * suggests
  • performance >= 0.8.0 suggests
  • plm * suggests
  • poorman * suggests
  • posterior * suggests
  • pscl * suggests
  • psych * suggests
  • pvclust * suggests
  • quantreg * suggests
  • randomForest * suggests
  • rmarkdown * suggests
  • rms * suggests
  • rstanarm * suggests
  • sandwich * suggests
  • see >= 0.6.9 suggests
  • sjstats * suggests
  • survey * suggests
  • survival * suggests
  • testthat * suggests
  • tripack * suggests
  • truncreg * suggests
.github/workflows/R-CMD-check-devel-easystats.yaml actions
.github/workflows/R-CMD-check-hard.yaml actions
.github/workflows/R-CMD-check-strict.yaml actions
.github/workflows/R-CMD-check.yaml actions
.github/workflows/check-all-examples.yaml actions
.github/workflows/check-link-rot.yaml actions
.github/workflows/check-random-test-order.yaml actions
.github/workflows/check-readme.yaml actions
.github/workflows/check-spelling.yaml actions
.github/workflows/check-styling.yaml actions
.github/workflows/check-test-warnings.yaml actions
.github/workflows/check-vignette-warnings.yaml actions
.github/workflows/html-5-check.yaml actions
.github/workflows/lint-changed-files.yaml actions
.github/workflows/lint.yaml actions
.github/workflows/pkgdown-no-suggests.yaml actions
.github/workflows/pkgdown.yaml actions
.github/workflows/revdepcheck.yaml actions
.github/workflows/test-coverage.yaml actions