我试图使用以下代码绘制lmer模型的预测:
p1 <- ggplot(Mac_Data_Tracking, aes(x = Rspan, y = SubjEff, colour = NsCond)) +
geom_point(size=3) +
geom_line(data=newdat, aes(y=predict(SubjEff.model,newdata=newdat)),lineend="round")
print(p1)
我在每一行的末尾都有奇怪的变形,有没有办法删除它们?我已经更改了newdat中的数据,但这些行总是有这些变化。
结尾处有拐点的行:
答案 0 :(得分:1)
请注意,您有geom_line(data=newdat, aes(y=predict(SubjEff.model,newdata=newdat))
。因此,您已将newdat
作为用于绘图的数据框geom_line
。但是,对于您的y值,您提供了一个单独的预测矢量(基于newdat
),而y
实际上应该只是newdat
的一列。我不确定为什么会导致末端的变形(可能在某种程度上,为每个端点x值提供了两个不同的y值),但这可能是问题的根源。
相反,您应该使用预测在newdat
中创建一个列(如果您还没有),并将该列名称作为y
中的geom_line
提供给ggplot。要添加预测列,请执行以下操作:
newdat$pred = predict(SubjEff.model,newdata=newdat)
您还应该geom_line
x
y
与[{1}}中的newdat
值对应的geom_line(data=newdat, aes(y=pred, x=Rspan), lineend="round")
值。所以你的代码是:
Rspan
(其中Rspan
将(自动)成为newdat
中的brew doctor
列。)
答案 1 :(得分:0)
这是一个有2个x值的问题,实际上......它有2个主题值。
线性混合模型是: Mixed.model&lt; - lmer(结果~NsCond + Rspan +(1 |主题),数据=数据))
对于newdat,我最初使用:
"_GADUShowRewardBasedVideoAd", referenced from:
_Externs_GADUShowRewardBasedVideoAd_m892979392 in Bulk_Assembly-CSharp_1.o
_RewardBasedVideoAdClient_ShowRewardBasedVideoAd_m553031711 in Bulk_Assembly-CSharp_1.o (maybe you meant: _Externs_GADUShowRewardBasedVideoAd_m892979392)
哪位给了我:
newdat <- expand.grid(Subject=c(min(Data$Subject),max(Data$Subject)),Rspan=c(min(Data$Rspan), max(Data$Rspan)),NsCond=unique(Data$NsCond))
对于每个Rspan(x),有2个“主题”(1和18)。
我将newdat更改为:
Subject Rspan NsCond
1 1 0.2916667 Pink
2 18 0.2916667 Pink
3 1 1.0000000 Pink
4 18 1.0000000 Pink
5 1 0.2916667 Babble
6 18 0.2916667 Babble
7 1 1.0000000 Babble
8 18 1.0000000 Babble
9 1 0.2916667 Loss
10 18 0.2916667 Loss
11 1 1.0000000 Loss
12 18 1.0000000 Loss
结果是:
newdat <- expand.grid(Subject=1,Rspan=c(min(Data$Rspan), max(Data$Rspan)),NsCond=unique(Data$NsCond))