[R-es] regresion mixta

Pablo Emilio Verde PabloEmilio.Verde en uni-duesseldorf.de
Jue Mayo 27 12:18:13 CEST 2010


Cualquiera sea el criterio de ajuste que usen, en general es recomendable
graficar
el ajuste vs las respuestas. Aca les mando un ejemplo en el que contamino
una sola
observacion y el R2 *no* representa el ajuste del modelo.

#...
library(nlme)

Orthodont2[1,1]<-0

summary(fm1 <-lme(distance ~ age, random = ~ 1|Subject ,data = Orthodont))
summary(fm2 <-lme(distance ~ age, random = ~ 1|Subject ,data = Orthodont2))

cor(fitted(fm1), getResponse(fm1))^2
cor(fitted(fm2), getResponse(fm2))^2

par(mfrow=c(1,2))
 plot(fitted(fm1), getResponse(fm1))
 plot(fitted(fm2), getResponse(fm2))
par(mfrow=c(1,1))

#...

Pablo



----- Original Message -----
From: "Javier Martinez" <javi.martinez.lopez en gmail.com>
To: <r-help-es en r-project.org>
Sent: Thursday, May 27, 2010 10:25 AM
Subject: Re: [R-es] regresion mixta


Muchas gracias a ambos por las respuestas. Me gustaría saber qué
método o cita sigue la función 'RSqare' del paquete 'lsmeans' y si se
puede calcular la R2 ajustada, aunque por algún motivo no me funciona
con modelos generados con la función 'lm'. Dice: 'Error en
mymodel$call[[3]] : subíndice fuera de  los límites'. ¿Hay que hacer
también objetos agrupados previamente sobre la matriz de datos del
modelo 'lm'? He probado con ambos métodos y los resultados son:

> RSquare(lme_modelo)
       R2_0      R2_1
1 0.2780425 0.9560489

> cor(fitted(lme_modelo), getResponse(lme_modelo))^2
[1] 0.9560489

El valor de R2 sería entonces 0.95, ¿no? ¿Se supone que es la media de
cada una de las rectas de regresión en base a mis grupos? Cuando hago
un 'lm' normal con los mismo datos la regresión sale no significativa
y con un R2 de 0.278, en cambio teniendo en cuenta los grupos con
'lme' paso a 0.95 con una p<0.05!

Por otro lado he encontrado un material de clases de estadística en el
siguiente link, donde hablan de un pseudo R2 de nivel 1:
http://www.unc.edu/courses/2006spring/ecol/145/001/docs/lectures/lecture43.h
tm
y al calcularlo da otro valor:

> (as.numeric(VarCorr(lme_modelo0)[2,1]) -
as.numeric(VarCorr(lme_modelo)[2,1]))/ as.numeric(VarCorr(lme_modelo0)[2,1])
[1] 0.5376202

Gracias por vuestra ayuda y saludos,

Javier



2010/5/26 Luciano Selzer <luciano.selzer en gmail.com>:
> Hola Javier, no existe una manera que de ese valor automáticamente. Pero
> podes calcularlo fácilmente:
> cor(fitted(modelo), getResponse(modelo))^2
> Esto lo encontre buscando en los foros es la respuesta de Pinherio
> http://www.biostat.wustl.edu/archives/html/s-news/2002-04/msg00075.html
> También dice que no es lo mismo que el R cuadrado de una regresión lineal
> porque el método de ajuste no es LS.
> Este otro link apunta a un articulo sobre el R cuadrado para la selección
de
> efectos fijos en modelos mixtos.
> http://portal.acm.org/citation.cfm?id=1316079.1316196
> Un saludo.
> Luciano
>
>
> El 26 de mayo de 2010 13:16, Javier Martinez
<javi.martinez.lopez en gmail.com>
> escribió:
>>
>> Hola a tod en s,
>>
>> estoy trabajando con modelos de regresión mixta con el paquete "nlme",
>> concretamente con la función "lme". Una vez que hago mi modelo y el
>> summary del mismo obtengo por ejemplo la significación (valor p) de la
>> variable independiente, así como el valor del AIC para comparar mi
>> modelo con otro similar, pero no sé cómo obtener un valor del grado de
>> ajuste de la recta de regresión resultante a los datos observados,
>> algo así como el R al cuadrado ajustado que me da el modelo "lm".
>> ¿Alguien sabe cómo obtenerlo?
>>
>> Muchas gracias de antemano,
>>
>> Salu2,
>>
>> Javier
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es