我正在尝试编写一个函数来以图形方式显示线性回归中的预测与实际关系。到目前为止,我所拥有的对于线性模型来说效果很好,但我想以几种方式对其进行扩展。
- 处理 glm 模型
- 处理预测值中的 NA
到目前为止,我所拥有的似乎是一个很好的解决方案,还是在某处已经实现了这个包?
DF <- as.data.frame(na.exclude(airquality))
DF$Month <- as.factor(DF$Month)
DF$Day <- as.factor(DF$Day)
my_model <- lm(Ozone~Solar.R+Wind+Temp+Month+Day,DF)
PvA<- function(model,varlist=NULL,smooth=.5) { #Plot predicted vs actual for a model
indvars <- attr(terms(model),"term.labels")
if (is.null(varlist)) {
varlist <- indvars
}
Y <- as.character(as.list(attr(terms(model),"variables"))[2])
P.Y <- paste('P',Y,sep='.')
DF <- as.data.frame(get(as.character(model$call$data)))
DF[,P.Y] <- predict.lm(model)
par(ask=TRUE)
for (X in varlist) {
print(X)
A <- na.omit(DF[,c(X,Y)])
P <- na.omit(DF[,c(X,P.Y)])
plot(A)
points(P,col=2)
lines(lowess(A,f=smooth),col=1)
lines(lowess(P,f=smooth),col=2)
}
}
PvA(my_model)