mfaymon / spinar Goto Github PK
View Code? Open in Web Editor NEWSemiparametric and parametric estimation and bootstrapping of integer-valued autoregressive (INAR) models.
License: GNU General Public License v3.0
Semiparametric and parametric estimation and bootstrapping of integer-valued autoregressive (INAR) models.
License: GNU General Public License v3.0
Hi there,
I reviewed your package/paper and genuinely enjoyed learning about the topic and testing the package. There are a few comments and questions, I'd like to address regarding my review checklist:
Scholarly effort: The package is probably flagged for inspection by the editors due to <1000 LOC (according to codecov), but I see the effort in structuring the package and the rather complex theory. However, I was wondering if there had been previous work you relied on? I.e an implementation of methods by Carsten Jentsch and Christian Weiß from their 2019 paper on the Bootstrap procedure? Or am implementation by Drost et al.?
Performance: You state (around line 48 of the paper) that your main contribution is the efficient semiparametric estimation. It is not clear to me whether "efficient" refers to the properties of the estimators or the implementation of estimation.
Statement of Need: In my opinion the SoN in your paper and/or documentation would greatly benefit if you mentioned an application example. Did other authors maybe even discuss an application in which the semiparametric estimation is superior to a parametric approach (as that's your focus)?
Statement of Need / State of field: You mentioned that INAR processes are "clearly the most popular" among observation-driven count data models (around line 11 of the paper). On what basis do you make the statement? And related question: Is there actually no implementation in R dealing with INAR models, at least for parametric estimation? That would be in contrast with above popularity statement, wouldn't it? For example the tscount package has been applied and cited quite a few times.
Community guidelines: JOSS suggests to give the target audience information on how to contribute and how to get support. I think it would be a great idea to include a note in your Repo.
Outlook: I am very curious about how the package will develop in the future. If you have any plans, maybe you could list them in the Repo's readme. My suggestion would be to cover INAR(p) processes or arbitrary order by implementing a general likelihood function and leave the choice to the users.
Looking forward to hearing from you.
All the best and keep up the good work!
Dear Authors,
I reviewed the JOSS submission (manuscript and the software). The paper is well-written, and the software structure is organized and has a clear purpose.
Regarding software documentation, I suggest including a reproducible result from the literature for each provided functionality. For example, if not too computationally extensive, the spINAR results for Poi-INAR(1) or NB-INAR(1) from Table 1 or 2 in Jentsch and Weiß (2017) or a data set from a real-world application, like the iceberg stocks from Jung and Tremayne (2010), the Cascade-Turnoverdata or monthly demand of different car spare parts (time series of the car part 2404) from Snyder (2002) analyzed Faymonville et al. (2022). This would enable the user to validate the results from the R package with the published literature. If the reproducible examples are too extensive for the examples section of each documented function, you could provide them within a short vignette highlighting the functionality similar to the README.md of the GitHub repository. Related to this, you could also include a references section in the R documentation of each function.
Regarding the software package functionality, I performed tests on the provided functions and found that for some parameters (settings might be artificial), a check needs to be included to intercept these incorrect entries.
library(spINAR)
#spinar_boot
dat2 <- spinar_sim(n = 200, p = 2, alpha = c(0.2, 0.3), pmf = dgeom(0:60, 0.5))
spinar_boot(x = dat2, p = 2, B = 50, setting = "p", type = "mom", distr = "geo", level=0)
spinar_boot(x = dat2, p = 2, B = 50, setting = "p", type = "test", distr = "geo")
spinar_boot(x = dat2, p = 2, B = 50, setting = "p", type = NA, distr = "geo")
spinar_boot(x = dat2, p = NA, B = 50, setting = "p", distr = "nb")
#spinar_est
spinar_est(x = dat2, p = NA)
#spinar_est_param
dat1 <- spinar_sim(n = 200, p = 1, alpha = 0.5, pmf = dpois(0:20, 1))
spinar_est_param(x = dat1, p = NA, type = "mom", distr = "poi")
spinar_est_param(x = dat1, p = NA, type = "mom", distr = "geo")
spinar_est_param(x = dat1, p = NA, type = "mom", distr = "nb")
spinar_est_param(x = dat1, p = NA, type = "ml", distr = "poi")
spinar_est_param(x = dat1, p = NA, type = "ml", distr = "geo")
spinar_est_param(x = dat1, p = NA, type = "ml", distr = "nb")
#spinar_penal
dat1 <- spinar_sim(n = 50, p = 1, alpha = 0.5, pmf = c(0.3, 0.25, 0.2, 0.15, 0.1))
spinar_penal(x = dat1, p = NA, penal1 = 0, penal2 = 0)
#spinar_sim
spinar_sim(n = 100, p = NA, alpha = .3, pmf = c(0.3, 0.3, 0.2, 0.1, 0.1))
spinar_sim(n = 100, p = NA, alpha = c(0.2, 0.3), pmf = dpois(0:20,1))
spinar_sim(n = NA, p = 2, alpha = c(0.2, 0.3), pmf = dpois(0:20,1))
spinar_sim(n = 1, p = 2, alpha = c(0.2, 0.3), pmf = dpois(0:20,1), prerun=0)
spinar_sim(n = 1, p = 2, alpha = c(0.2, 0.3), pmf = dpois(0:20,1), prerun=1)
spinar_sim(n = 1, p = 2, alpha = c(0.2, 0.3), pmf = dpois(0:20,1), prerun=2)
#spinar_penal_val
dat1 <- spinar_sim(n = 50, p = 1, alpha = 0.5, pmf = c(0.3, 0.3, 0.2, 0.1, 0.1))
spinar_penal_val(x = dat1, p = 1, validation = NA)
spinar_penal_val(x = dat1, p = 1, validation = NULL)
spinar_penal_val(x = dat1, p = NA, validation = FALSE, penal1=0, penal2=0)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.