此处的目标是绘制经过调节和未调节的回归的置信区间。对于未经模型化的回归,这很简单。
dependent <- c(0.0357264300, 0.0127688421, 0.0574075955, 0.0478508616, 0.8182810990, 0.2923778764, 0.0002984776, 0.0175975337, 0.1282831072, 0.1496447041, 0.0175852979)
independent <- c(13, 9, 54, 16, 1623, 120, 6, 30, 50, 117, 36)
model <- lm(dependent ~ independent)
newX <- seq(6, 1637, 1)
pred <- predict(model, newdata=data.frame(independent =newX), interval=c("confidence"),
level=0.95, type="response")
plot(independent, dependent)
abline(model)
lines(newX,pred[,2],col="red",lty=2)
lines(newX,pred[,3],col="red",lty=2)
但是,当我尝试使用主持人重复此过程时,输出似乎不合理。在这种情况下,我希望主持人的值随着自变量值的增加而衰减。
moderator <- c(0.03823529, 0.05325444, 0.14400000, 0.04289544, 0.25774178, 0.66298343, 1.00000000, 0.68181818, 0.70422535, 0.46987952, 0.55384615)
modelMod <- lm(dependent ~ moderator*independent)
# a decay function
func <- function(x, a, b){
res <- a*exp(-b*x)
return(res)
}
newModerator <- func(newX, a=1, b=0.001)
predMod <- predict(modelMod, newdata=data.frame(independent=newX,
moderator = newModerator), interval=c("confidence"),
level=0.95, type="response")
plot(independent, dependent)
lines(newX, predMod[,1])
lines(newX, predMod[,2], lty=2, col="red")
lines(newX, predMod[,3], lty=2, col="red")
这个结果是否正确?结果是我得到一个错误的方法来使用&#39;预测&#39;功能?我希望代码在两个回归之间是同源的,以便结果的可视化具有可比性。