sim 01
Results
Clustering
## Warning: package 'simstudy' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'scales' was built under R version 4.3.3
## Warning: package 'survival' was built under R version 4.3.3
## Warning: package 'gee' was built under R version 4.3.3
library(data.table)
plotcolors <- c("#B84226", "#1B8445", "#1C5974")
cbbPalette <- c("#B84226","#B88F26", "#A5B435", "#1B8446",
"#B87326","#B8A526", "#6CA723", "#1C5974")
ggtheme <- function(panelback = "white") {
ggplot2::theme(
panel.background = element_rect(fill = panelback),
panel.grid = element_blank(),
axis.ticks = element_line(colour = "black"),
panel.spacing =unit(0.25, "lines"), # requires package grid
panel.border = element_rect(fill = NA, colour="gray90"),
plot.title = element_text(size = 12,vjust=.5,hjust=0),
axis.text = element_text(size=14),
axis.title = element_text(size = 14)
)
}
gen.school <- defData(varname="s0", dist = "normal",
formula = 0, variance = 3, id = "idSchool"
)
gen.school <- defData(gen.school, varname = "nClasses",
dist = "noZeroPoisson", formula = 3
)
set.seed(282721)
dtSchool <- genData(8, gen.school)
dtSchool <- trtAssign(dtSchool, n = 2)
dtSchool## idSchool s0 nClasses trtGrp
## 1: 1 0.9732297 3 1
## 2: 2 3.5741932 4 1
## 3: 3 0.1121028 3 0
## 4: 4 0.5147236 4 1
## 5: 5 0.4594058 1 0
## 6: 6 -0.1287554 4 0
## 7: 7 2.4400170 2 1
## 8: 8 -1.2496060 1 0
gen.class <- defDataAdd(varname = "c0", dist = "normal", formula = 0,
variance = 2)
gen.class <- defDataAdd(gen.class, varname = "nStudents", dist = "noZeroPoisson", formula = 20
)
dtClass <- genCluster(dtSchool, "idSchool", numIndsVar = "nClasses",level1ID = "idClass")
dtClass <- addColumns(gen.class, dtClass)
head(dtClass, 10)## idSchool s0 nClasses trtGrp idClass c0 nStudents
## 1: 1 0.9732297 3 1 1 1.62726560 16
## 2: 1 0.9732297 3 1 2 -0.69640102 16
## 3: 1 0.9732297 3 1 3 1.53921338 13
## 4: 2 3.5741932 4 1 4 -1.58765603 30
## 5: 2 3.5741932 4 1 5 -2.35483046 26
## 6: 2 3.5741932 4 1 6 0.45956895 20
## 7: 2 3.5741932 4 1 7 -0.88401500 26
## 8: 3 0.1121028 3 0 8 -1.46100446 19
## 9: 3 0.1121028 3 0 9 0.07024057 19
## 10: 3 0.1121028 3 0 10 1.09465368 21
gen.student <- defDataAdd(varname="Male", dist="binary", formula=0.5)
gen.student <- defDataAdd(gen.student, varname="age", dist = "uniform", formula="9.5; 10.5")
gen.student <- defDataAdd(gen.student, varname="test", dist = "normal",
formula = "50 - 5*Male + s0 + c0 + 8 * trtGrp", variance = 2)
dtStudent <- genCluster(dtClass,cLevelVar="idClass", numIndsVar = "nStudents", level1ID = "idChild")
dtStudent <- addColumns(gen.student, dtStudent)
ggplot(data=dtStudent,aes(x=factor(idClass),y=test,group=idClass)) +
geom_boxplot(aes(color=factor(trtGrp), fill = factor(idSchool)))+
xlab("Classes")+
ylab("Test scores") +
theme(axis.text.x=element_blank(),
axis.ticks.x=element_blank()) +
scale_fill_manual(values = cbbPalette, guide = FALSE) +
scale_color_manual(values = c("grey80", "#000000"),
labels = c("Ctrl", "Rx"),
guide = guide_legend(title = NULL,
override.aes = list(shape = 1,
keywidth=8
)
)
) +
theme(legend.key=element_rect(fill=NA)) +
ggtheme()## Warning: The `guide` argument in `scale_*()` cannot be `FALSE`. This was deprecated in
## ggplot2 3.3.4.
## ℹ Please use "none" instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Ordinal
library(simstudy)
library(ggplot2)
library(scales)
library(grid)
library(gridExtra)
library(survival)
library(gee)
library(data.table)
library(ordinal)
odds <- function (p) p/(1 - p) # TODO temporary remove when added to package
plotcolors <- c("#B84226", "#1B8445", "#1C5974")
cbbPalette <- c("#B84226","#B88F26", "#A5B435", "#1B8446",
"#B87326","#B8A526", "#6CA723", "#1C5974")
ggtheme <- function(panelback = "white") {
ggplot2::theme(
panel.background = element_rect(fill = panelback),
panel.grid = element_blank(),
axis.ticks = element_line(colour = "black"),
panel.spacing =unit(0.25, "lines"), # requires package grid
panel.border = element_rect(fill = NA, colour="gray90"),
plot.title = element_text(size = 8,vjust=.5,hjust=0),
axis.text = element_text(size=8),
axis.title = element_text(size = 8)
)
}
library(ggplot2)
library(data.table)
my_theme <- function() {
theme(panel.background = element_rect(fill = "white"),
panel.grid = element_blank(),
axis.ticks = element_line(colour = "black"),
panel.spacing = unit(0.25, "lines"),
axis.text = element_text(size=12),
axis.title = element_text(size = 12),
plot.title = element_text(size = 12, vjust = 0.5, hjust = 0),
panel.border = element_rect(fill = NA, colour = "gray90"))
}
# create data points density curve
x <- seq(-6, 6, length = 1000)
pdf <- dlogis(x, location = 0, scale = 1)
dt <- data.table(x, pdf)
# set thresholds for Group A
# P = c(0.31, 0.29, .20, 0.20)
thresholdA <- c(-0.8, 0.4, 1.4)
pdf <- dlogis(thresholdA)
grpA <- data.table(threshold = thresholdA, pdf)
aBreaks <- c(-6, grpA$threshold, 6)
# plot density with cut points
dt[, grpA := cut(x, breaks = aBreaks, labels = F, include.lowest = TRUE)]
p1 <- ggplot(data = dt, aes(x = x, y = pdf)) +
geom_line() +
geom_area(aes(x = x, y = pdf, group = grpA, fill = factor(grpA))) +
geom_hline(yintercept = 0, color = "grey50") +
annotate("text", x = -5, y = .28, label = "unexposed", size = 5) +
scale_fill_manual(values = c("#d0d7d1", "#bbc5bc", "#a6b3a7", "#91a192", "#7c8f7d"),
labels = c("strongly disagree", "disagree", "agree", "strongly agree"),
name = "Frequency") +
scale_x_continuous(breaks = thresholdA) +
scale_y_continuous(limits = c(0, 0.3), name = "Density") +
my_theme() +
theme(legend.position = c(.85, .7),
legend.background = element_rect(fill = "grey90"),
legend.key = element_rect(color = "grey90"))## Warning: A numeric `legend.position` argument in `theme()` was deprecated in ggplot2
## 3.5.0.
## ℹ Please use the `legend.position.inside` argument of `theme()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.