Nothing
## ----setup, include = FALSE-------------------------------
knitr::opts_chunk$set(tidy.opts=list(width.cutoff=60),
collapse = TRUE,
comment = "#>"
)
options(width = 60)
#devtools::load_all(".")
library(cNORM)
## ----fig1, fig.height = 4, fig.width = 7------------------
# Fit shash model with custom settings
# The function automatically displays percentile plots
model.shash <- cnorm.shash(age = ppvt$age, score = ppvt$raw)
# Use print(model.shash), diagnostics(model.shash) or summary(model.shash)
# to retrieve information on the data fit.
## ----eval=FALSE-------------------------------------------
# # Conservative parameterization with fixed delta across age
# model.simple <- cnorm.shash(age = ppvt$age, score = ppvt$raw,
# mu_degree = 2, # Quadratic location pattern
# sigma_degree = 1, # Linear variability change
# epsilon_degree = 1, # Linear skewness change
# delta_degree = NULL, # deactivates polynimial fitting for delta
# delta = 1.1) # Slightly heavy tails,
# # kept constant across age
#
# # Example with more complex parameterization
# model.complex <- cnorm.shash(age = ppvt$age, score = ppvt$raw,
# mu_degree = 4, # Quadric pattern
# sigma_degree = 3, # Complex variability changes
# epsilon_degree = 2, # Quadratic age-varying skewness
# delta_degree = 2) # Changing tail weights across age (quadratic)
#
# # Compare models
# compare(model.simple, model.complex, age = ppvt$age, score = ppvt$raw,
# title = "ShaSh Model Comparison")
#
#
## ----eval=FALSE-------------------------------------------
# # Calculate post-stratification weights
# margins <- data.frame(variables = c("sex", "sex", "migration", "migration"),
# levels = c(1, 2, 0, 1),
# share = c(.52, .48, .7, .3))
#
# weights <- computeWeights(ppvt, margins)
#
# # Fit weighted ShaSh model
# model.weighted <- cnorm.shash(ppvt$age, ppvt$raw, weights = weights)
#
# # Compare weighted vs. unweighted
# compare(model.shash, model.weighted, age = ppvt$age, score = ppvt$raw,
# title = "Unweighted vs. Weighted ShaSh Models")
## ----eval=FALSE-------------------------------------------
# # Individual Norm Score Prediction:
# # Generate norm scores for specific age-score combinations
# ages <- c(10.25, 10.75, 11.25, 11.75)
# raw_scores <- c(180, 185, 190, 195)
#
# norm_scores <- predict(model.shash, ages, raw_scores)
# prediction_table <- data.frame(
# Age = ages,
# Raw_Score = raw_scores,
# Norm_Score = round(norm_scores, 1)
# )
# print(prediction_table)
#
#
# # Norm Score tables:
# # Generate detailed norm tables for multiple ages
# tables <- normTable.shash(model.shash,
# ages = c(10.25, 10.75),
# start = 150,
# end = 220,
# step = 1,
# CI = 0.95,
# reliability = 0.94)
#
# # Display head from first table
# head(tables[[1]], 10)
## ----fig5, fig.height = 4, fig.width = 7------------------
# Compare shash with betabinomial models (BB). BB models should work worse,
# since the test has stop rules, leading to non-binomial distributions.
model.bb <- cnorm.betabinomial(ppvt$age, ppvt$raw, n = 228, plot = FALSE)
# Model comparisons
compare(model.shash, model.bb, age = ppvt$group, score = ppvt$raw,
title = "SinH-ArcSinH vs. Beta-Binomial")
# Compare distribution free Taylor model
model.taylor <- cnorm(group = ppvt$group, raw = ppvt$raw, plot=FALSE)
# Model comparisons shash versus taylor
compare(model.shash, model.taylor, age = ppvt$group, score = ppvt$raw,
title = "SinH-ArcSinH vs. Taylor")
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.