0

对于我的手稿,我用两个连续变量的交互绘制了一个 lme:

创建数据

mydata <- data.frame( SID=sample(1:150,400,replace=TRUE),age=sample(50:70,400,replace=TRUE), sex=sample(c("Male","Female"),200, replace=TRUE),time= seq(0.7, 6.2, length.out=400), Vol =rnorm(400),HCD =rnorm(400))  
mydata$time <- as.numeric(mydata$time)

运行模型:

model <- lme(HCD ~ age*time+sex*time+Vol*time, random=~time|SID, data=mydata)

制作情节:

sjp.int(model, swap.pred=T, show.ci=T, mdrt.values="meansd")

审阅者现在希望我将原始数据点添加到该图中。我怎样才能做到这一点?我尝试添加引用 mydata 的 geom_point(),但这是不可能的。有任何想法吗?

更新:我认为也许我可以提取 HCD 的随机斜率,然后提取协变量的残差 HCD 以及协变量的残差 Vol 并绘制这两者以使事情变得更容易(然后我可以在 2D 图中绘制点)。因此,我尝试提取斜率并使用它们来拟合线性回归,但结果不同(在可重现的示例中不太显着,但在我的数据中:交互变得不显着(并且在 lme 中显着)) . 不知道这意味着什么,或者这是否只是表明我不应该尝试以这种方式绘制它。

得到斜坡:

  model <- lme(HCD ~ time, random=~time|SID, data=mydata)
  slopes <- rbind(row.names(model$coefficients$random$SID),  model$coef$random$SID[,2])
  slopes2 <- data.frame(matrix(unlist(slopes), nrow=144, byrow=T))
  names(slopes2)[1] <- "SID"
  names(slopes2)[2] <- "slopes"

(保存斜坡2并重新打开,因为不知何故R将其视为一个因素)

然后创建一个横截面数据框并合并斜率:

  mydata$time2 <- round(mydata$time)
  new <- reshape(mydata,idvar = "SID", timevar="time2", direction="wide")
  newdata <- dplyr::left_join(new, slop, by="SID")

lm:

modelw <- lm(slop$slopes ~ age.1+sex.1+Vol.1, data=newdata)

Vol 现在的 p 值为 0.8(以前是 0.14)

4

0 回答 0