serp
serp: An R package for smoothing in ordinal regression - Published in JOSS (2021)
Science Score: 93.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 20 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
categorical-data
ordinal-regression
penalized-regression
proportional-odds-regression
regularization-techniques
Last synced: 6 months ago
·
JSON representation
Repository
Smooth Effects on Response Penalty for CLM
Basic Info
- Host: GitHub
- Owner: ejikeugba
- Language: R
- Default Branch: master
- Homepage: https://ejikeugba.github.io/serp
- Size: 1.01 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 6
Topics
categorical-data
ordinal-regression
penalized-regression
proportional-odds-regression
regularization-techniques
Created about 5 years ago
· Last pushed over 1 year ago
Metadata Files
Readme
Changelog
Contributing
Code of conduct
README.Rmd
---
output: github_document
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# serp
[](https://www.repostatus.org/#active)
[](https://app.codecov.io/gh/ejikeugba/serp?branch=master)
[](https://CRAN.R-project.org/package=serp)
[](https://CRAN.R-project.org/package=serp)
[](https://doi.org/10.21105/joss.03705)
[](https://ci.appveyor.com/project/ejikeugba/serp)
[](https://www.gnu.org/licenses/gpl-2.0.en.html)
[](https://github.com/ejikeugba/serp/actions)
### Overview
The `serp` R package fits cumulative link models (CLMs) with the `smooth-effect-on-response penalty (SERP)`. The `cumulative model` developed by McCullagh (1980) is probably the most frequently used ordinal model in empirical studies. However, the stochastic ordering property of the general form of the model poses a very serious challenge in most empirical applications of the model. For instance, unstable likelihoods with ill-conditioned parameter space are frequently encountered during the iterative process. `serp` implements a unique regularization method for CLMs that provides the means of smoothing the adjacent categories in the model. At extreme shrinkage, SERP causes all subject-specific effects associated with each variable in the model to shrink towards unique global effects. Fitting is done using a modified Newton's method. Several standard model performance and descriptive methods are also available. See [Ugba, 2021](https://doi.org/10.21105/joss.03705), [Ugba et al., 2021](https://doi.org/10.3390/stats4030037) and [Tutz and Gertheiss, 2016](https://doi.org/10.1177/1471082X16642560) for further details on the implemented penalty.
### Example
Consider the cumulative logit model of the [wine dataset](https://ejikeugba.github.io/serp/reference/wine.html), where the rating of wine bitterness is predicted with the two treatment factors, temperature and contact.
```R
## The unpenalized non-proportional odds model returns unbounded estimates, hence,
## not fully identifiable.
f1 <- serp(rating ~ temp + contact, slope = "unparallel",
reverse = TRUE, link = "logit", data = wine)
coef(f1)
```
```R
## The penalized non-proportional odds model with a user-supplied lambda gives
## a fully identified model having bounded estimates. A suitable tuning criterion
## could as well be used to select lambda (e.g., aic or cv)
f2 <- serp(rating ~ temp + contact, slope = "penalize",
link = "logit", reverse = TRUE, tuneMethod = "user",
lambda = 1e1 ,data = wine)
coef(f2)
```
```R
## A penalized partial proportional odds model with one variable set to
## global effect is also possible.
f3 <- serp(rating ~ temp + contact, slope = "penalize",
reverse = TRUE, link = "logit", tuneMethod = "user",
lambda = 2e1, globalEff = ~ temp, data = wine)
coef(f3)
```
```R
## The unpenalized proportional odds model with constrained estimates.
## Under estreme shrinkage, estimates in f2 equal those in this model.
f4 <- serp(rating ~ temp + contact, slope = "parallel",
reverse = FALSE, link = "logit", data = wine)
summary(f4)
```
### Installation and Use
Before installing `serp`, it is encouraged to have a recent version of [R](https://cran.r-project.org/bin/windows/base/) installed. The released version of `serp` can be installed from [CRAN](https://cran.r-project.org/package=serp) with:
``` r
install.packages("serp")
```
or the development version from [GitHub](https://github.com/ejikeugba/serp) with:
``` r
if (!require("devtools")) install.packages("devtools")
devtools::install_github("ejikeugba/serp")
```
Load `serp` into R environment with:
```{r, eval = FALSE}
library(serp)
```
### Community Guidelines
Pull requests are welcomed! Please submit your contributions to `serp` through the list of `Pull Requests`, following the [contributing guidelines](https://ejikeugba.github.io/serp/CONTRIBUTING.html). To report issues and/or seek support, please file a new ticket in the [issue](https://github.com/ejikeugba/serp/issues) tracker, and expect a feedback ASAP!
### Code of Conduct
Please note that `serp` is released with a [Contributor Code of Conduct](https://github.com/ejikeugba/serp/blob/master/CODE_OF_CONDUCT.md). By contributing to this project, you agree to abide by its terms.
### References
McCullagh, P. (1980). Regression Models for Ordinal Data. *Journal of the Royal Statistical Society. Series B (Methodological)*, 42, 109-142. https://doi.org/10.1111/j.2517-6161.1980.tb01109.x
Randall, J (1989). The analysis of sensory data by generalized linear model. *Biometrical Journal*, 31, 781--793. https://doi.org/10.1002/bimj.4710310703
Tutz, G. and Gertheiss, J. (2016). Regularized Regression for Categorical Data (With Discussion and Rejoinder). *Statistical Modelling*, 16, 161-260. https://doi.org/10.1177/1471082X16642560
Ugba, E. R., Mörlein, D. and Gertheiss, J. (2021). Smoothing in Ordinal Regression: An Application to Sensory Data. *Stats*, 4, 616–633. https://doi.org/10.3390/stats4030037
Ugba, E. R. (2021). serp: An R package for smoothing in ordinal regression *Journal of Open Source Software*, 6(66), 3705. https://doi.org/10.21105/joss.03705
Owner
- Name: Ejike
- Login: ejikeugba
- Kind: user
- Location: Germany
- Company: Helmut Schmidt University, Hamburg
- Website: https://ejikeugba.github.io/DataXotic/
- Twitter: richyejk
- Repositories: 5
- Profile: https://github.com/ejikeugba
Data scientist with many years of experience in ML, data analytics, and software development in R/Python.
JOSS Publication
serp: An R package for smoothing in ordinal regression
Published
October 27, 2021
Volume 6, Issue 66, Page 3705
Authors
Tags
regularization identification problem cumulative models categorical data proportional odds shrinkage penaltyGitHub Events
Total
- Issues event: 1
- Push event: 35
Last Year
- Issues event: 1
- Push event: 35
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| ejike ugba | e****a@o****m | 308 |
| Hugo Gruson | h****n@p****m | 8 |
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 8
- Total pull requests: 4
- Average time to close issues: 2 months
- Average time to close pull requests: about 7 hours
- Total issue authors: 4
- Total pull request authors: 2
- Average comments per issue: 2.0
- Average comments per pull request: 0.5
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Bisaloo (3)
- wesleyburr (3)
- hadley (1)
- bernardsilenou (1)
Pull Request Authors
- ejikeugba (2)
- Bisaloo (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- cran 2,187 last-month
- Total dependent packages: 3
- Total dependent repositories: 1
- Total versions: 6
- Total maintainers: 1
cran.r-project.org: serp
Smooth Effects on Response Penalty for CLM
- Homepage: https://github.com/ejikeugba/serp
- Documentation: http://cran.r-project.org/web/packages/serp/serp.pdf
- License: GPL-2
-
Latest release: 0.2.5
published over 1 year ago
Rankings
Dependent packages count: 18.1%
Dependent repos count: 24.0%
Forks count: 27.8%
Stargazers count: 30.9%
Average: 31.2%
Downloads: 54.9%
Maintainers (1)
Last synced:
6 months ago
Dependencies
DESCRIPTION
cran
- R >= 3.2.0 depends
- crayon * imports
- ordinal >= 2016 imports
- stats * imports
- VGAM >= 1.1 suggests
- covr * suggests
- testthat * suggests
.github/workflows/R-CMD-check.yaml
actions
- actions/checkout v4 composite
- r-lib/actions/check-r-package v2 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml
actions
- JamesIves/github-pages-deploy-action v4.6.9 composite
- actions/checkout v4 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/rhub.yaml
actions
- r-hub/actions/checkout v1 composite
- r-hub/actions/platform-info v1 composite
- r-hub/actions/run-check v1 composite
- r-hub/actions/setup v1 composite
- r-hub/actions/setup-deps v1 composite
- r-hub/actions/setup-r v1 composite
