Estoy tratando de escribir una función a pantalla gráficamente predicha vs relaciones reales en una regresión lineal. Lo que tengo hasta ahora funciona bien para modelos lineales, pero me gustaría ampliarlo en algunos aspectos.
- Modelos glm
- Tratar con NAs en los valores predichos
¿No lo que me he hasta ahora parece una buena solución, o hay un paquete existente en algún lugar que ya ha implementado esto?
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)