6 votos

¿Cómo comparar gráficamente valores predichos y reales de regresión multivariante en R?

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.

  1. Modelos glm
  2. 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)

4voto

DavLink Puntos 101

En adición a @mpiktas comentario, usted también puede tener una mirada en el rms paquete de Frank Harrell. La ventaja es que se encarga tanto de la LM y GLM para el ajuste del modelo y predicción; véase, por ejemplo plot.Predict() función. Si usted está planeando hacer trabajo serio en modelos de regresión, este paquete y su compañero de Hmisc son realmente buenos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X