Nothing
## ---- setup, include = FALSE--------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.align = "center",
fig.path = "figures/probit-",
fig.dim = c(8, 6),
out.width = "75%",
# all optimizations are pre-computed to save building time
eval = FALSE
)
library("ino")
options("ino_verbose" = TRUE)
data("probit_ino")
set.seed(1)
ggplot2::theme_set(ggplot2::theme_minimal())
## ---- choice covariates, eval = TRUE------------------------------------------
X <- function(n, t) {
J <- 3
cbind(stats::rnorm(J, mean = 10, sd = 3), stats::rnorm(J, mean = 0, sd = 0.3))
}
X(n = 1, t = 1)
## ---- simulate data, eval = TRUE----------------------------------------------
N <- 100
Tp <- 20
b <- c(1, -10)
Omega <- matrix(c(0.2, 0.5, 0.5, 2), 2, 2)
Sigma <- matrix(c(1, -0.5, 0.2, -0.5, 1, 0.2, 0.2, 0.2, 1), 3, 3)
probit_data <- sim_mnp(N, Tp, J = 3, P = 2, b, Omega, Sigma, X, seed = 1)
## ---- head of data, eval = TRUE-----------------------------------------------
head(probit_data)
## ---- true parameter, eval = TRUE---------------------------------------------
round(theta <- attr(probit_data, "true"), 2)
## ---- likelihood evaluation, eval = TRUE--------------------------------------
f_ll_mnp(theta = theta, data = probit_data)
## ---- define Nop--------------------------------------------------------------
# probit_ino <- Nop$new(f = f_ll_mnp, npar = 7, data = probit_data, neg = TRUE)$
# set_optimizer(optimizer_nlm(iterlim = 1000))
## ---- set true parameter------------------------------------------------------
# probit_ino$true_parameter <- theta
## ---- print initial Nop object, eval = TRUE-----------------------------------
print(probit_ino)
## ---- optimize with random initial values-------------------------------------
# probit_ino$optimize(initial = "random", runs = 100, label = "random")
## ---- optimize on subset------------------------------------------------------
# probit_ino$
# reduce("data", how = "random", proportion = 0.2)$
# optimize(initial = "random", runs = 100, label = "subset")$
# reset_argument("data")$
# continue()
## ---- deviation, eval = TRUE, warning = FALSE---------------------------------
probit_ino$deviation(
reference = probit_ino$true_parameter, which_run = c("random", "subset"),
parameter_labels = c("b.2", "o.11", "o.21", "o.22", "l.11", "l.21", "l.22"),
ylim = c(-10, 10)
)
## ---- optimize with standardized data-----------------------------------------
# probit_ino$
# standardize("data", by_column = TRUE, ignore = 1:3)$
# optimize(initial = "random", runs = 100, label = "standardized")$
# reset_argument("data")
## ---- optimize with standardize and subset------------------------------------
# probit_ino$
# standardize("data", by_column = TRUE, ignore = 1:3)$
# reduce("data", how = "random", proportion = 0.2)$
# optimize(initial = "random", runs = 100, label = "standardized_subset")$
# reset_argument("data")$
# standardize("data", by_column = TRUE, ignore = 1:3)$
# continue()
## ---- times, eval = TRUE, message = FALSE-------------------------------------
plot(probit_ino, by = "label", relative = TRUE, xlim = c(-1, 3))
## ---- summary, eval = TRUE, warning = FALSE, message = FALSE------------------
library("dplyr")
summary(probit_ino, which_element = c("seconds", "label")) %>%
group_by(label) %>%
summarize(
mean_seconds = mean(seconds, na.rm = TRUE),
sd_seconds = sd(seconds, na.rm = TRUE)
) %>%
arrange(mean_seconds)
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.