Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## -----------------------------------------------------------------------------
library(bootGOF)
set.seed(1)
X = runif(n = 200, min = 6, max = 14)
d = data.frame(x = X, y = sin(0.5 * X) + rnorm(200, sd = 0.2))
plot(y~x, data = d)
## -----------------------------------------------------------------------------
wrong_model = lm(y ~ I(x^2), data = d)
## -----------------------------------------------------------------------------
mt <- GOF_model(
data = d,
model = wrong_model,
simulator_type = "parametric",
nmb_boot_samples = 100,
y_name = "y",
Rn1_statistic = Rn1_KS$new())
mt$get_pvalue()
## -----------------------------------------------------------------------------
library(minpack.lm)
fit <- minpack.lm::nlsLM(y ~ sin(a * x),
data = d,
start = c(a = 0.5),
control = nls.control(maxiter = 500))
fit
## -----------------------------------------------------------------------------
fit_and_data <- list(fit = fit, data = d)
## -----------------------------------------------------------------------------
library(R6)
my_nls_info_extractor <- R6::R6Class(
classname = "my_nls_info_extractor",
inherit = GOF_model_info_extractor,
public = list(
yhat = function(model) {
predict(object = model$fit)
},
y_minus_yhat = function(model) {
residuals(object = model$fit)
},
beta_x_covariates = function(model) {
a_hat <- coef(object = model$fit)
x <- model$data$x
ret <- a_hat * x
return(ret)
}
))
my_info_extractor <- my_nls_info_extractor$new()
## -----------------------------------------------------------------------------
head(d)
## -----------------------------------------------------------------------------
head(my_info_extractor$yhat(model = fit_and_data))
## -----------------------------------------------------------------------------
head(my_info_extractor$y_minus_yhat(model = fit_and_data))
## -----------------------------------------------------------------------------
head(my_info_extractor$beta_x_covariates(model = fit_and_data))
## -----------------------------------------------------------------------------
my_simulator <- GOF_sim_wild_rademacher$new(
gof_model_info_extractor = my_info_extractor
)
## -----------------------------------------------------------------------------
head(d)
## -----------------------------------------------------------------------------
head(my_simulator$resample_y(model = fit_and_data))
## -----------------------------------------------------------------------------
my_nls_trainer <- R6::R6Class(
classname = "GOF_nls_trainer",
inherit = GOF_model_trainer,
public = list(
refit = function(model, data) {
fit <- update(object = model$fit, data = data)
ret <- list(fit = fit, data = data)
return(ret)
}))
my_trainer <- my_nls_trainer$new()
## -----------------------------------------------------------------------------
new_data <- d
new_data$y <- my_simulator$resample_y(model = fit_and_data)
my_trainer$refit(model = fit_and_data, data = new_data)$fit
## -----------------------------------------------------------------------------
set.seed(1)
mt <- GOF_model_test$new(
model = fit_and_data,
data = d,
nmb_boot_samples = 100,
y_name = "y",
Rn1_statistic = Rn1_CvM$new(),
gof_model_info_extractor = my_info_extractor,
gof_model_resample = GOF_model_resample$new(
gof_model_simulator = my_simulator,
gof_model_trainer = my_trainer
)
)
mt$get_pvalue()
## -----------------------------------------------------------------------------
library(MASS)
set.seed(1)
X1 <- rnorm(100)
X2 <- rnorm(100)
d <- data.frame(
y = MASS::rnegbin(n = 100, mu = exp(0.2 + X1 * 0.2 + X2 * 0.6), theta = 2),
x1 = X1,
x2 = X2)
fit <- MASS::glm.nb(y~x1+x2, data = d)
fit
## -----------------------------------------------------------------------------
my_negbin_trainer <- R6::R6Class(
classname = "GOF_glmnb_trainer",
inherit = GOF_model_trainer,
public = list(
refit = function(model, data) {
MASS::glm.nb(formula = formula(model), data = data)
}))
## -----------------------------------------------------------------------------
set.seed(1)
mt <- GOF_model_test$new(
model = fit,
data = d,
nmb_boot_samples = 100,
y_name = "y",
Rn1_statistic = Rn1_CvM$new(),
gof_model_info_extractor = GOF_glm_info_extractor$new(),
gof_model_resample = GOF_model_resample$new(
gof_model_simulator = GOF_glm_sim_param$new(),
gof_model_trainer = my_negbin_trainer$new()
)
)
mt$get_pvalue()
## -----------------------------------------------------------------------------
set.seed(1)
mt2 <- GOF_model(
model = fit,
data = d,
nmb_boot_samples = 100,
simulator_type = "parametric",
y_name = "y",
Rn1_statistic = Rn1_CvM$new()
)
mt2$get_pvalue()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.