Nothing
## ----setup, include=FALSE------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
set.seed(12314159)
## ----libraries-----------------------------------------------------------
library(eikosograms)
library(gridExtra)
## ----set up conditional independence tables, eval = TRUE, echo = FALSE----
# This function will create all the joint probabilities
# and place them in the appropriate three-way table
create3WayBinaryTable <- function(widths, heights) {
toprow_eikos <- widths * (1 - heights)
bottomrow_eikos <- widths * heights
probs <- array(c(bottomrow_eikos, toprow_eikos),
dim = c(2,2,2),
dimnames = list(Z = c("z1", "z2"),
X = c("x1", "x2"),
Y = c("y1", "y2")
))
as.table(probs)
}
# Marginal probabilities (widths) for
# the two binary conditioning variates
# are given by the xz values,
# and the conditional probabilities (heights)
# for the response variate's first value
# are given by the b values.
# Figure numbers here refer to those figure numbers of
# the original Oldford (2003) article entitled
# "Understanding probabilistic independence and its
# modelling via Eikosograms and graphs."
xz1 <- c(2/7, 8/35, 1/7, 12/35)
b1 <- c(4/5, 1/2, 3/10, 7/10)
fig5a_data <- create3WayBinaryTable(xz1, b1)
b2 <- c(4/5, 1/2, 3/5, 1/5)
fig5b_data <- create3WayBinaryTable(xz1, b2)
b3 <- c(4/5, 1/2, 4/5, 1/2)
fig5c_data <- create3WayBinaryTable(xz1, b3)
b4 <- c(7/10, 7/10, 7/10, 7/10)
fig6_data <- create3WayBinaryTable(xz1, b4)
xz2 <- c(10/33, 4/11, 5/33, 2/11)
fig7_data <- create3WayBinaryTable(xz2, b4)
xz3 <- c(1/3, 1/6, 1/3, 1/6)
b5 <- c(7/10, 7/10, 3/10, 3/10)
fig8_data <- create3WayBinaryTable(xz2, b5)
xz4 <- c(2/9, 1/9, 2/9, 4/9)
b6 <- c(2/3, 2/3, 1/6, 1/6)
fig9_data <- create3WayBinaryTable(xz4, b6)
xz5 <- c(1/7, 1/7, 3/7, 2/7)
b7 <- c(1/3, 2/3, 1/4, 1/6)
fig11_data <- create3WayBinaryTable(xz5, b7)
xz6 <- c(1/4, 1/4, 1/4, 1/4)
b8 <- c(3/4, 1/2, 1/4, 1/4)
fig12_data <- create3WayBinaryTable(xz6, b8)
xz7 <- c(1/3, 1/6, 1/3, 1/6)
b9 <- c(2/3, 1/2, 5/6, 1/6)
fig13_data <- create3WayBinaryTable(xz7, b9)
xz8 <- c(1/6, 1/3, 1/6, 1/3)
b10 <- c(1/6, 2/3, 5/6, 1/3)
fig14_data <- create3WayBinaryTable(xz8, b10)
# Create this now for early illustration
cond_indep <- fig5c_data
## ----independence Y given X, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "Independence of variates X and Y"----
independenceExample <- as.table(array(c(10, 40, 15, 60),
dim = c(2,2),
dimnames =
list(X =c("x_1", "x_2"),
Y = c("y_1", "y_2"))))
## ----bivariate independence 1, eval = FALSE, echo = TRUE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%"----
# eikos("Y", "X", data = independenceExample)
## ----png bivariate independence 1, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "Independence of variates Y and X"----
include_graphics("img/IndependenceExploration/indepYX.png")
## ----bivariate independence 2, eval = FALSE, echo = TRUE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%"----
# eikos("X", "Y", data = independenceExample)
## ----png bivariate independence 2, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "Independence of variates X and Y"----
include_graphics("img/IndependenceExploration/indepXY.png")
## ----conditional independence, eval = FALSE, echo = TRUE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%"----
# eikos("Y", c("X", "Z"), data = cond_indep, xaxs = FALSE, yaxs = FALSE)
## ----png conditional independence, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "Conditional independence of variates Y and X given Z"----
include_graphics("img/IndependenceExploration/indepYgivenXZ.png")
## ----table creation function , echo = TRUE, eval = FALSE-----------------
# # This function will create all the joint probabilities
# # and place them in the appropriate three-way table
# create3WayBinaryTable <- function(widths, heights) {
# toprow_eikos <- widths * (1 - heights)
# bottomrow_eikos <- widths * heights
# probs <- array(c(bottomrow_eikos, toprow_eikos),
# dim = c(2,2,2),
# dimnames = list(Z = c("z1", "z2"),
# X = c("x1", "x2"),
# Y = c("y1", "y2")
# ))
# as.table(probs)
# }
## ----some table, echo = TRUE, eval = TRUE--------------------------------
someTable <- create3WayBinaryTable(widths = c(10/35, 8/35, 5/35, 12/35),
heights = c(7/10, 7/10, 7/10, 7/10))
## ----cond_indep table, echo = FALSE--------------------------------------
knitr::kable(cond_indep)
## ----eikos of someTable, eval = FALSE, echo = TRUE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%"----
# eikos(y="Y", x = c("Z", "X"), data = someTable)
## ----png eikos of someTable, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "What is the independence structure?"----
include_graphics("img/IndependenceExploration/someTableYgivenZX.png")
## ----conditional independence tables display, echo = FALSE, eval = FALSE----
# # Marginal probabilities (widths) for
# # the two binary conditioning variates
# # are given by the xz values,
# # and the conditional probabilities (heights)
# # for the response variate's first value
# # are given by the b values.
# # Figure numbers here refer to those figure numbers of
# # the original Oldford (2003) article entitled
# # "Understanding probabilistic independence and its
# # modelling via Eikosograms and graphs."
# xz1 <- c(2/7, 8/35, 1/7, 12/35)
# b1 <- c(4/5, 1/2, 3/10, 7/10)
# fig5a_data <- create3WayBinaryTable(xz1, b1)
# b2 <- c(4/5, 1/2, 3/5, 1/5)
# fig5b_data <- create3WayBinaryTable(xz1, b2)
# b3 <- c(4/5, 1/2, 4/5, 1/2)
# fig5c_data <- create3WayBinaryTable(xz1, b3)
# b4 <- c(7/10, 7/10, 7/10, 7/10)
# fig6_data <- create3WayBinaryTable(xz1, b4)
# xz2 <- c(10/33, 4/11, 5/33, 2/11)
# fig7_data <- create3WayBinaryTable(xz2, b4)
# xz3 <- c(1/3, 1/6, 1/3, 1/6)
# b5 <- c(7/10, 7/10, 3/10, 3/10)
# fig8_data <- create3WayBinaryTable(xz2, b5)
# xz4 <- c(2/9, 1/9, 2/9, 4/9)
# b6 <- c(2/3, 2/3, 1/6, 1/6)
# fig9_data <- create3WayBinaryTable(xz4, b6)
# xz5 <- c(1/7, 1/7, 3/7, 2/7)
# b7 <- c(1/3, 2/3, 1/4, 1/6)
# fig11_data <- create3WayBinaryTable(xz5, b7)
# xz6 <- c(1/4, 1/4, 1/4, 1/4)
# b8 <- c(3/4, 1/2, 1/4, 1/4)
# fig12_data <- create3WayBinary Table(xz6, b8)
# xz7 <- c(1/3, 1/6, 1/3, 1/6)
# b9 <- c(2/3, 1/2, 5/6, 1/6)
# fig13_data <- create3WayBinaryTable(xz7, b9)
# xz8 <- c(1/6, 1/3, 1/6, 1/3)
# b10 <- c(1/6, 2/3, 5/6, 1/3)
# fig14_data <- create3WayBinaryTable(xz8, b10)
#
## ----complete independence table, echo = TRUE----------------------------
complete_indep <- create3WayBinaryTable(widths = c(10/33, 12/33, 5/33, 6/33),
heights = c(7/10, 7/10, 7/10, 7/10))
## ----complete independence code, eval = TRUE, fig.height = 0.1-----------
eikosY <- eikos(y="Y", x = c("Z", "X"),
xaxs = FALSE, yaxs= FALSE,
data = complete_indep, draw = FALSE)
eikosX <- eikos(y="X", x = c("Z", "Y"),
xaxs = FALSE, yaxs= FALSE,
data = complete_indep, draw = FALSE)
eikosZ <- eikos(y="Z", x = c("X", "Y"),
xaxs = FALSE, yaxs= FALSE,
data = complete_indep, draw = FALSE)
## ----complete independence arrange 3, eval = FALSE, echo = TRUE, fig.width=11, fig.height=3.5, fig.align="center", out.width="100%"----
# grid.arrange(eikosY, eikosX, eikosZ, nrow=1)
## ----png complete independence arrange 3, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "Complete independence"----
include_graphics("img/IndependenceExploration/completeIndep.png")
## ----conditional on one, echo = TRUE, fig.width=9, fig.height=0.1, fig.align="center", out.width="80%"----
eikosYX <- eikos(y = "Y", x = "X",
data = complete_indep, main = "Y | X",
xaxs = FALSE, yaxs= FALSE, draw = FALSE)
eikosYZ <- eikos(y = "Y", x = "Z",
data = complete_indep, main = "Y | Z",
xaxs = FALSE, yaxs= FALSE, draw = FALSE)
eikosXZ <- eikos(y = "X", x = "Z",
data = complete_indep, main = "X | Z",
xaxs = FALSE, yaxs= FALSE, draw = FALSE)
## ----conditional on one arranged, eval = FALSE, echo = TRUE, fig.width=10, fig.height=3, fig.align="center", out.width="80%"----
# grid.arrange(eikosYX, eikosYZ, eikosXZ, nrow = 1)
## ----png conditional on one arranged, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "Pairwise independence"----
include_graphics("img/IndependenceExploration/pairwise.png")
## ----grid code, eval = TRUE, fig.height = 0.1----------------------------
layout3and2way <- function(table) {
if(length(dimnames(table))!=3) stop("Must be a three-way table")
varNames <- names(dimnames(table))
zVar <- varNames[1]
xVar <- varNames[2]
yVar <- varNames[3]
eikosY <- eikos(y = yVar, x = c(zVar, xVar),
data = table, main = paste0(yVar, " | ", zVar, "&", xVar),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE,
draw = FALSE)
eikosX <- eikos(y = xVar, x = c(zVar, yVar),
data = table, main = paste0(xVar, " | ", zVar, "&", yVar),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE,
draw = FALSE)
eikosZ <- eikos(y = zVar, x = c(xVar, yVar),
data = table, main = paste0(zVar, " | ", xVar, "&", yVar),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE,
draw = FALSE)
eikosYX <- eikos(y = yVar, x = xVar,
data = table, main = paste(yVar, xVar, sep =" | "),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE,
draw = FALSE)
eikosYZ <- eikos(y = yVar, x = zVar,
data = table, main = paste(yVar, zVar, sep =" | "),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE,
draw = FALSE)
eikosXY <- eikos(y = xVar, x = yVar,
data = table, main = paste(xVar, yVar, sep =" | "),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE,
draw = FALSE)
eikosXZ <- eikos(y = xVar, x = zVar,
data = table, main = paste(xVar, zVar, sep =" | "),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE, draw = FALSE)
eikosZY <- eikos(y = zVar, x = yVar,
data = table, main = paste(zVar, yVar, sep =" | "),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE, draw = FALSE)
eikosZX <- eikos(y = zVar, x = xVar,
data = table, main = paste(zVar, xVar, sep =" | "),
xlabs = FALSE, ylabs = FALSE, xaxs = FALSE, yaxs= FALSE,
draw = FALSE)
layout <- rbind(c(1,1, NA, 2, 2, NA, 3, 3),
rep(NA, 8),
c(4, 5, NA, 6, 7, NA, 8, 9))
grid.arrange(eikosY, eikosX, eikosZ,
eikosYX, eikosYZ,
eikosXY, eikosXZ,
eikosZY, eikosZX,
layout_matrix = layout,
widths = c(2,2,1,2,2,1,2,2),
heights = c(2, 0.5, 1.1)
)
}
## ----complete independence layout, eval = FALSE, echo = TRUE, fig.width=11, fig.height=5.5, fig.align="center", out.width="80%"----
# layout3and2way(complete_indep)
## ----png complete independence layout, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "Complete independence"----
include_graphics("img/IndependenceExploration/complete_indep.png")
## ----Case 2, eval = FALSE, echo = TRUE, fig.width=11, fig.height=5.5, fig.align="center", out.width="80%"----
# table <- create3WayBinaryTable(widths = c(10/33, 12/33, 5/33, 6/33),
# heights = c(7/10, 7/10, 3/10, 3/10))
#
# layout3and2way(table)
## ----png Case2, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "One 4-flat; two 2 by 2 flats"----
include_graphics("img/IndependenceExploration/case2.png")
## ----Case 3, eval = FALSE, echo = TRUE, fig.width=11, fig.height=5.5, fig.align="center", out.width="80%"----
# table <- create3WayBinaryTable(widths = c(2/9, 1/9, 2/9, 4/9),
# heights = c(2/3, 2/3, 1/6, 1/6))
#
# layout3and2way(table)
## ----png Case 3, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "One no-flat; two 2 by 2 flats"----
include_graphics("img/IndependenceExploration/case3.png")
## ----Case 4.1, eval = FALSE, echo = TRUE, fig.width=11, fig.height=5.5, fig.align="center", out.width="80%"----
# table <- create3WayBinaryTable(widths = c(1/7, 1/7, 3/7, 2/7),
# heights = c(1/3, 2/3, 1/4, 1/6))
#
# layout3and2way(table)
## ----png Case 4.1, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "No flats; no marginal independence"----
include_graphics("img/IndependenceExploration/case41.png")
## ----Case 4.2, eval = FALSE, echo = TRUE, fig.width=11, fig.height=5.5, fig.align="center", out.width="80%"----
# table <- create3WayBinaryTable(widths = c(1/4, 1/4, 1/4, 1/4),
# heights = c(3/4, 1/2, 1/4, 1/4))
#
# layout3and2way(table)
## ----png Case 4.2, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "No flats; one marginal independence"----
include_graphics("img/IndependenceExploration/case42.png")
## ----Case 4.3, eval = FALSE, echo = TRUE, fig.width=11, fig.height=5.5, fig.align="center", out.width="80%"----
# table <- create3WayBinaryTable(widths = c(2/6, 1/6, 2/6, 1/6),
# heights = c(2/3, 1/2, 5/6, 1/6))
#
# layout3and2way(table)
## ----png Case 4.3, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "No flats; two marginal independences"----
include_graphics("img/IndependenceExploration/case43.png")
## ----Case 4.4, eval = FALSE, echo = TRUE, fig.width=11, fig.height=5.5, fig.align="center", out.width="80%"----
# table <- create3WayBinaryTable(widths = c(1/6, 2/6, 1/6, 2/6),
# heights = c(1/6, 2/3, 5/6, 1/3))
#
# layout3and2way(table)
## ----png Case 4.4, eval = TRUE, echo = FALSE, fig.width=4, fig.height=3.5, fig.align="center", out.width="50%", fig.cap = "No flats; three marginal independences"----
include_graphics("img/IndependenceExploration/case44.png")
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.