2012-02-15 7 views
5

Cuando se construye un modelo lineal en R, ¿cuál es la diferencia entre las dos afirmaciones siguientes:Diferencia entre ":" y "|" en el modelado lineal R

lm(y ~ x | z) 
lm(y ~ x : z) 

El lm function documentation documenta el operador : de la siguiente manera:

Una especificación de la formulario primero: segundo indica el conjunto de términos obtenidos al tomar las interacciones de todos los términos en primer lugar con todos los términos en segundo.

No hay mención de la sintaxis | en esa página. ¿Cuál es la diferencia?

+0

| solo se usa en modelos condicionales y anova y, por lo tanto, no tiene sentido en una llamada a lm. En realidad debería haber un error lanzado. –

+0

No, funciona perfectamente bien para datos numéricos. Sin embargo, no funciona para los datos de los factores. Estoy usando "R versión 2.14.1 (2011-12-22)", de acuerdo con 'R.Version()'. – eykanal

+3

si | no error en 'lm', apuesto a que es porque en realidad está evaluando un" o "lógico en los datos que se vuelven forzados a un valor numérico. –

Respuesta

8

: se utiliza para las interacciones. En su ejemplo lm(y ~ x : z), la fórmula significa "y depende de un efecto de interacción entre x y z.

Por lo general, no incluiría una interacción en una regresión lineal como esto a menos que también incluyó los términos individuales x y z también. x * z es la abreviatura de x + x:z + z.

yo sepa, | no es utilizado por lm en absoluto. ciertamente no aparece en ninguno de los ejemplos en demo("lm.glm", "stats"). se utiliza en los modelos de efectos mixtos en el nlme paquete.

Un ejemplo de ?intervals.lme:

model <- lme(distance ~ age, Orthodont, random = ~ age | Subject) 
ranef(model) 

Aquí el "grupo por" | medios. Es decir, se adapta un efecto aleatorio diferente para cada edad. (Mirando ranef(model), puede ver que cada fila corresponde a los efectos aleatorios para una persona (asunto).)

+0

Buena respuesta, pero ¿puedes detallar "un efecto aleatorio diferente para cada edad de acuerdo con la edad", por favor? No está muy claro para mí ... Gracias – sop

+0

Gracias, ahora está más claro :) – sop

+0

¿Hay alguna diferencia entre 'lm (y ~ x + x: z + z + k)' y 'lm (y ~ x * z + k) '? – sop

Cuestiones relacionadas