Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----load-package-data--------------------------------------------------------
library(saeproj.multilevel)
data("saeml_modelsvy")
data("saeml_projsvy")
## ----inspect-data-------------------------------------------------------------
dim(saeml_modelsvy)
dim(saeml_projsvy)
head(saeml_modelsvy)
head(saeml_projsvy)
## ----model-survey-domain-count------------------------------------------------
model_domain_count <- table(saeml_modelsvy$kab_kota)
c(
n_domains = length(model_domain_count),
min_units_per_domain = min(model_domain_count),
max_units_per_domain = max(model_domain_count)
)
## ----projection-survey-domain-count-------------------------------------------
proj_domain_count <- table(saeml_projsvy$kab_kota)
c(
n_domains = length(proj_domain_count),
min_units_per_domain = min(proj_domain_count),
max_units_per_domain = max(proj_domain_count)
)
## ----response-variable-check--------------------------------------------------
"Y" %in% names(saeml_modelsvy)
"Y" %in% names(saeml_projsvy)
## ----fit-estimator------------------------------------------------------------
result <- sae_ml_linear(
formula = Y ~ X1 + X2 + X3 + X4 + Z1 + Z2 + (1 | kab_kota),
data_model = saeml_modelsvy,
data_proj = saeml_projsvy,
domain = "kab_kota",
cluster_ids = ~1,
weight = "WEIND",
strata = "kab_kota",
summary_function = "mean"
)
## ----estimator-summary--------------------------------------------------------
summary(result)
## ----final-estimates----------------------------------------------------------
head(result$estimates)
## ----estimates-data-frame-----------------------------------------------------
estimates <- as.data.frame(result)
head(estimates)
## ----estimation-components----------------------------------------------------
head(result$estimation_details)
## ----synthetic-component------------------------------------------------------
head(
result$estimation_details[, c(
"kab_kota",
"estimate_synthetic",
"variance_synthetic"
)]
)
## ----correction-component-----------------------------------------------------
head(
result$estimation_details[, c(
"kab_kota",
"correction",
"variance_correction"
)]
)
## ----model-parameters---------------------------------------------------------
# Fixed-effect estimates
result$model_parameters$fixed_effects
# Random-effect and residual variance components
result$model_parameters$variance_components
# Residual variance
result$model_parameters$residual_variance
## ----random-effects-----------------------------------------------------------
head(result$model_parameters$random_effects$kab_kota)
## ----model-diagnostics--------------------------------------------------------
result$diagnostics
## ----diagnostics-table--------------------------------------------------------
data.frame(
icc = result$diagnostics$icc,
singular_fit = result$diagnostics$singular_fit,
convergence = result$diagnostics$convergence,
sigma = result$diagnostics$sigma,
residual_variance = result$diagnostics$residual_variance,
REML = result$diagnostics$REML,
AIC = result$diagnostics$AIC,
BIC = result$diagnostics$BIC
)
## ----fitted-model-------------------------------------------------------------
fit <- result$fitted_model
summary(fit)
## ----residual-plot, fig.width = 7, fig.height = 5-----------------------------
plot(
fitted(fit),
resid(fit),
xlab = "Fitted values",
ylab = "Residuals",
main = "Residuals versus Fitted Values"
)
abline(h = 0, lty = 2)
## ----residual-qq-plot, fig.width = 7, fig.height = 5--------------------------
qqnorm(resid(fit))
qqline(resid(fit))
## ----fitted-random-effects----------------------------------------------------
lme4::ranef(fit)
## ----keep-unit, eval = FALSE--------------------------------------------------
# result_unit <- sae_ml_linear(
# formula = Y ~ X1 + X2 + X3 + X4 + Z1 + Z2 + (1 | kab_kota),
# data_model = saeml_modelsvy,
# data_proj = saeml_projsvy,
# domain = "kab_kota",
# cluster_ids = ~1,
# weight = "WEIND",
# strata = "kab_kota",
# summary_function = "mean",
# keep_unit = TRUE
# )
#
# head(result_unit$unit_projection)
#
# head(result_unit$unit_model_residual)
## ----direct-estimator, eval = FALSE-------------------------------------------
# result_direct <- sae_ml_linear(
# formula = Y ~ X1 + X2 + X3 + X4 + Z1 + Z2 + (1 | kab_kota),
# data_model = saeml_modelsvy,
# data_proj = saeml_projsvy,
# domain = "kab_kota",
# cluster_ids = ~1,
# weight = "WEIND",
# strata = "kab_kota",
# summary_function = "mean",
# return_direct = TRUE
# )
#
# head(result_direct$direct_estimator)
## ----multiple-domain-variables, eval = FALSE----------------------------------
# result_multi <- sae_ml_linear(
# formula = Y ~ X1 + X2 + X3 + X4 + Z1 + Z2 + (1 | kab_kota),
# data_model = saeml_modelsvy,
# data_proj = saeml_projsvy,
# domain = c("prov", "kab_kota"),
# cluster_ids = ~1,
# weight = "WEIND",
# strata = "kab_kota",
# summary_function = "mean"
# )
#
# head(result_multi$estimates)
## ----clustered-survey-design, eval = FALSE------------------------------------
# result_clustered <- sae_ml_linear(
# formula = Y ~ X1 + X2 + X3 + X4 + Z1 + Z2 + (1 | kab_kota),
# data_model = data_model,
# data_proj = data_proj,
# domain = "kab_kota",
# cluster_ids = "psu_id",
# weight = "survey_weight",
# strata = "stratum",
# summary_function = "mean",
# nest = TRUE
# )
## ----output-structure---------------------------------------------------------
names(result)
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.