2012-02-15 24 views
5

當構造中的R的線性模型,就是以下兩個語句之間的差:「:」和「|」之間的區別中的R線性建模

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

lm function documentation記錄了:操作如下:

的A規範第一種形式:第二種表示通過首先將所有術語與第二種術語相互作用而獲得的術語組。

在該頁面上沒有提及|語法。有什麼不同?

+0

|僅用於條件模型和anova,因此在lm調用中沒有意義。其實應該會拋出一個錯誤。 – 2012-02-15 16:35:52

+0

不,對數值數據完美無缺。不過,對於因子數據不起作用。根據'R.Version()',我使用的是「R版本2.14.1(2011-12-22)」。 – eykanal 2012-02-15 16:42:19

+3

如果|在'lm'中沒有錯誤,我敢打賭,這是因爲它實際上正在評估數據上的邏輯「或者」,這些數據被強制回到數字。 – 2012-02-15 17:09:46

回答

8

:用於交互。在您的示例lm(y ~ x : z),式表示「y是取決於xz之間的相互作用效果。

通常,你將不包括在這樣的線性迴歸的相互作用,除非你也包括單獨的術語xz爲好。x * z是短期的x + x:z + z

據我所知,|不使用lm的。這當然不會以任何的demo("lm.glm", "stats")的例子出現。它是在混合效應模型中使用nlme

一個例子從?intervals.lme

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

這裏|手段 「組由」。也就是說,每個主題都適合年齡的不同隨機效應。 (看看ranef(model),你可以看到每一行對應一個人(主體)的隨機效果。)

+0

不錯的答案,但是您能詳細說明「針對不同年齡段的不同隨機效應是否適合每個主題」?我不是很清楚......謝謝 – sop 2015-05-21 13:22:25

+0

謝謝,現在更清楚了:) – sop 2015-05-21 15:43:01

+0

'lm(y〜x + x:z + z + k)'和'lm(y〜x * z + k)'? – sop 2015-05-28 07:46:23