我有以下对数线性模型。
library(MASS)
library(vcd)
## mosaic display for PreSex model
data("PreSex")
fm <- loglm(~ PremaritalSex * ExtramaritalSex * (Gender + MaritalStatus),
data = PreSex)
## visualize Pearson statistic
plot(fm, split_vertical = TRUE)
在绘图命令中,如何指定哪些变量将绘制在哪个绘图边1到4? plot.loglm命令如何选择在哪一侧绘制哪个变量?
在pbible的回答后更新#1
只是为了清楚地说明另一个例子。我有模特
data("PreSex")
fm <- loglm(~ PremaritalSex + ExtramaritalSex +Gender + MaritalStatus,data = PreSex)
plot(fm, split_vertical = TRUE)
导致马赛克图。在此图中,变量PremaritalSex
,MaritalStatus
,ExtramaritalSex
和Gender
分别位于1,2,3和4侧。
我的问题是:如何绘制相同的对数线性模型(不要更改分析),但在第2面和{{1}上有Gender
在结果图的第4面?
更新#2:
MaritalStatus
尊重输入变量的顺序(第一个变量位于第2侧,第2个,第3个,第3个,第3个,第4个,第4个,第4个,第1个,第1个)
例如这两个图:
mosaic
但是mosaic(~Gender+MaritalStatus +ExtramaritalSex + PremaritalSex , data = PreSex, shade = T) # Gender is 1st variable in the model plotted in side 2,
mosaic(~MaritalStatus + Gender+ExtramaritalSex + PremaritalSex , data = PreSex, shade = T) # Gender is 2nd variable in the model plotted in side 3,
不尊重输入的变量的顺序。无论变量的顺序(加法模型),它都会产生相同的图。例如,获得的2个图是相同的
plot.loglm
答案 0 :(得分:1)
<强>更新强>
玩了一段时间后,似乎可以通过用aperm
置换数组来实现目标。
这似乎可以满足您的需求:
fm <- loglm(~ PremaritalSex + ExtramaritalSex +Gender + MaritalStatus,data = aperm(PreSex,c(2,4,3,1)))
plot(fm, split_vertical = TRUE)
这是图片:
看起来马赛克强制执行数组的结构。使用数组置换允许您修改此结构。
下方:旧答案的一部分,可能会有所帮助。
我认为你可能正在寻找的是来自condvars
情节的mosaic
。您正在使用vcd库绘制loglm
。它使用plot.loglm
,而mosaic
可以使用assoc
或condvars
(在vcd手册中有解释)。
使用它一段时间后,我发现你可以使用mosaic
来指定条件变量。然后plot(fm, split_vertical = TRUE)
将使用这些线索重新排序图。
使用以上命令:
plot(fm, split_vertical = TRUE, condvars=c(2))
使用:
更改条件变量mosaic
我们得到:
查看vcd手册中的c(2,3)
文档。这post也很有帮助。如果你玩它,你可以得到你需要的。还可以尝试使用多个条件,例如{{1}}或其他。