Science Score: 26.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
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.2%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
Evaluate models fit using the trending package
Basic Info
- Host: GitHub
- Owner: reconverse
- License: other
- Language: R
- Default Branch: master
- Homepage: https://www.reconverse.org/trendeval/index.html
- Size: 1.43 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 0
- Releases: 1
Created over 5 years ago
· Last pushed about 1 year ago
Metadata Files
Readme
Changelog
License
README.Rmd
---
output: github_document
---
```{r setup, echo = FALSE, message=FALSE, results='hide'}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.align = "center",
fig.path = "man/figures/README-",
echo = TRUE,
fig.width = 8,
fig.height = 6
)
```
[](https://CRAN.R-project.org/package=trendeval)
[](https://app.codecov.io/gh/reconverse/trendeval?branch=master)
[](https://github.com/reconverse/trendeval/actions/workflows/R-CMD-check.yaml)
# Trendeval
*trendeval* aims to provide a coherent interface for evaluating models fit with
the [trending](https://github.com/reconverse/trending) package. Whilst it
is useful in an interactive context, it's main focus is to provide an intuitive
interface on which other packages can be developed
(e.g. [*trendbreaker*](https://github.com/reconhub/trendbreaker)).
## Installing the package
You can install the stable version of this package from
[CRAN](https://CRAN.R-project.org) with:
```{r, eval=FALSE}
install.packages("trendeval")
```
The development version can be installed from [GitHub](https://github.com/) with:
```{r, eval=FALSE}
if (!require(remotes)) {
install.packages("remotes")
}
remotes::install_github("reconverse/trendeval", build_vignettes = TRUE)
```
## Model selection example
```{r, message = FALSE}
library(dplyr) # for data manipulation
library(outbreaks) # for data
library(trending) # for trend fitting
library(trendeval) # for model selection
# load data
data(covid19_england_nhscalls_2020)
# define a selection of model in a named list
models <- list(
simple = lm_model(count ~ day),
glm_poisson = glm_model(count ~ day, family = "poisson"),
glm_poisson_weekday = glm_model(count ~ day + weekday, family = "quasipoisson"),
glm_quasipoisson = glm_model(count ~ day, family = "poisson"),
glm_quasipoisson_weekday = glm_model(count ~ day + weekday, family = "quasipoisson"),
glm_negbin = glm_nb_model(count ~ day),
glm_negbin_weekday = glm_nb_model(count ~ day + weekday),
will_error = glm_nb_model(count ~ day + nonexistant)
)
# select 8 weeks of data (from a period when the prevalence was decreasing)
last_date <- as.Date("2020-05-28")
first_date <- last_date - 8*7
pathways_recent <-
covid19_england_nhscalls_2020 %>%
filter(date >= first_date, date <= last_date) %>%
group_by(date, day, weekday) %>%
summarise(count = sum(count), .groups = "drop")
# split data for fitting and prediction
dat <-
pathways_recent %>%
group_by(date <= first_date + 6*7) %>%
group_split()
fitting_data <- dat[[2]]
pred_data <- select(dat[[1]], date, day, weekday)
# assess the models using the evaluate_resampling
results <-
models %>%
evaluate_resampling(fitting_data, metric = "rmse") %>%
summary
results
```
### Example of how this output could then be used
```{r}
library(tidyr) # for data manipulation
library(purrr) # for data manipulation
library(ggplot2) # for plotting
# Pull out the model with the lowest RMSE
best_by_rmse <-
results %>%
slice_min(value) %>%
select(model_name) %>%
pluck(1,1) %>%
pluck(models, .)
# Now let's look at the following 14 days as well
new_dat <-
covid19_england_nhscalls_2020 %>%
filter(date > "2020-05-28", date <= "2020-06-11") %>%
group_by(date, day, weekday) %>%
summarise(count = sum(count), .groups = "drop")
all_dat <- bind_rows(pathways_recent, new_dat)
out <-
best_by_rmse %>%
fit(pathways_recent) %>%
predict(all_dat) %>%
pluck(1) %>%
.subset2(1L)
out
# plot output
ggplot(out, aes(x = date, y = count)) +
geom_line() +
geom_ribbon(mapping = aes(x = date, ymin = lower_ci, ymax = upper_ci),
data = out, alpha = 0.5, fill = "#BBB67E") +
geom_ribbon(mapping = aes(x = date, ymin = lower_pi, ymax = upper_pi),
data = out, alpha = 0.5, fill = "#BBB67E") +
geom_vline(xintercept = as.Date("2020-05-28") + 0.5) +
theme_bw()
```
# Resources
## Getting help online
Bug reports and feature requests should be posted on *github* using the
[*issue* system](https://github.com/reconverse/trendeval/issues). All other
questions should be posted on the **RECON** slack channel see
for details on how to join.
Owner
- Name: reconverse
- Login: reconverse
- Kind: organization
- Repositories: 7
- Profile: https://github.com/reconverse
GitHub Events
Total
- Issues event: 2
- Issue comment event: 6
- Push event: 5
- Pull request event: 2
- Fork event: 1
Last Year
- Issues event: 2
- Issue comment event: 6
- Push event: 5
- Pull request event: 2
- Fork event: 1
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 1
- Total pull requests: 1
- Average time to close issues: about 2 months
- Average time to close pull requests: about 2 months
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 2.0
- Average comments per pull request: 4.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 1
- Average time to close issues: about 2 months
- Average time to close pull requests: about 2 months
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 2.0
- Average comments per pull request: 4.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- hfrick (1)
Pull Request Authors
- hfrick (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- cran 237 last-month
- Total docker downloads: 21,613
- Total dependent packages: 0
- Total dependent repositories: 2
- Total versions: 3
- Total maintainers: 1
cran.r-project.org: trendeval
Evaluate Trending Models
- Homepage: https://github.com/reconverse/trendeval
- Documentation: http://cran.r-project.org/web/packages/trendeval/trendeval.pdf
- License: MIT + file LICENSE
-
Latest release: 0.1.1
published about 1 year ago
Rankings
Docker downloads count: 0.6%
Dependent repos count: 19.3%
Forks count: 21.0%
Average: 24.9%
Dependent packages count: 28.8%
Stargazers count: 30.9%
Downloads: 48.6%
Maintainers (1)
Last synced:
11 months ago
Dependencies
DESCRIPTION
cran
- rsample * imports
- stats * imports
- tibble * imports
- trending * imports
- utils * imports
- yardstick * imports
- dplyr * suggests
- outbreaks * suggests
- testthat >= 3.0.0 suggests
.github/workflows/R-CMD-check.yaml
actions
- actions/checkout v3 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.4.1 composite
- actions/checkout v3 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/test-coverage.yaml
actions
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite