在ggplot中绘制具有交互作用的混合效应模型

时间:2017-12-02 20:14:49

标签: r ggplot2 lme4 interaction

我有一个lmer模型,它具有两个连续变量之间的相互作用。效果包很好地展示了这种互动以及分类可变的效果:

Effects package plot

但是我试图用ggplot和随机效果以及基于Habitat类型的分组来绘制这种交互。我做了一个尝试,但留下了一个非常令人困惑的图表:

dataframe1$fit<-predict(SR14.1)
p<-ggplot(dataframe1,aes(interaction(standmoisture, standTemp), `Species Richness`, group = fhabitat, col=Area, shape=fhabitat )) + 
  geom_line(aes(y=fit2), size=0.8) +
  geom_point() + 
  theme_classic() 
p+theme(legend.position = "bottom") +ylab(
  expression(bold("Species Richness")))

My attempt of plotting this with ggplot

任何帮助将不胜感激。这是我的数据:

structure(list(`Species Richness` = c(1, 2, 2, 2, 5, 4, 3, 7, 
4, 4, 5, 5, 3, 3, 3, 2, 6, 5, 8, 6, 7, 5, 5, 6, 7, 7, 7, 6, 5, 
7, 8, 4), standTemp = structure(c(0.720812577321754, 1.41490248010771, 
0.0146933080454731, 2.0380887793892, 1.28080253427975, -0.339111964680604, 
-0.186933532099618, -1.04644870942643, 1.00134901679053, 0.629436912210655, 
1.30527718827517, 1.23329420029196, -0.70224836547858, -0.298343821795056, 
0.644926209311894, 0.361500234717626, -1.70378944519547, -0.238189024325525, 
0.394362033579524, 0.42276111901573, 0.585447308443146, 0.637435021986569, 
-0.00641281497429604, 0.513464320459941, -1.03017086629094, -0.334335315786658, 
-1.88419125458547, -0.401319485159916, -1.59260510821939, -1.06216330539459, 
-1.27891208032179, -1.09337815049224), .Dim = c(32L, 1L), "`scaled:center`" = 28.7021556522675, "`scaled:scale`" = 0.893068155224622), 
    standmoisture = structure(c(0.249478032878488, -1.17491997943563, 
    0.0549893575950258, -1.58242006098193, -1.46943140200773, 
    2.16472841614611, 1.64979649491942, 1.65535331421323, -1.00821540062123, 
    0.405068973105258, -0.228408426389447, -0.280272073131704, 
    0.923705440527824, 1.0403986456979, 1.36639871093494, 1.32564870278031, 
    -0.182101598941004, -0.252487976662638, -0.815578998435709, 
    -0.72481761663676, -1.7528291859922, -0.582192588095555, 
    -0.272862980739953, -0.0728174861626776, 0.0753643616723412, 
    -0.0468856627915491, -0.41363573618322, -0.546999399234737, 
    -0.196919783724506, 0.890364524764945, 0.840353151120626, 
    -1.03785177018824), .Dim = c(32L, 1L), "`scaled:center`" = 0.16413125, "`scaled:scale`" = 0.0539877192576716), 
    fhabitat = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Flatwood", "Sandhill"
    ), class = "factor"), fblock = structure(c(1L, 1L, 1L, 1L, 
    1L, 2L, 2L, 2L, 3L, 4L, 4L, 4L, 5L, 5L, 6L, 6L, 7L, 7L, 7L, 
    7L, 8L, 8L, 8L, 8L, 8L, 9L, 9L, 9L, 10L, 10L, 10L, 11L), .Label = c("1", 
    "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"), class = "factor")), .Names = c("Species Richness", 
"standTemp", "standmoisture", "fhabitat", "fblock"), row.names = c(NA, 
-32L), class = c("tbl_df", "tbl", "data.frame"))

这是我使用的模型:

SR14.1<-lmer(`Species Richness`~fhabitat + standmoisture * standTemp +(1|fblock), data = dataframe1)

编辑**以更好地阐明我的意思我附加了另一个混合效果模型的图像,显​​示了分类变量和连续变量之间的相互作用。在这个图中我用(1 | fblock)绘制了多个回归线的随机效应,我希望能够通过两个连续变量之间的相互作用来做到这一点

enter image description here

1 个答案:

答案 0 :(得分:0)

我不完全清楚你在寻找什么?这是否接近?

public void loadArray()
{

ClassA im = new ClassA();
im.getList();

     cmboDoctorList.addItem(im.getList());

}