看板 R_Language 關於我們 聯絡資訊
y <- c(8,13,12,11,9,8,7,13,11,13) x1 <- c(-1,-1,-1,-1,1,1,1,1,0,0) x2 <- c(-1,1,1,1,-1,-1,-1,1,0,0) m.f <- lm(y~x1+x2) m.r <- lm(y~factor(x1):factor(x2)) anova(m.f, m.r) 最後一列即為所求。 重點就在於 m.r 的自變項是一個「所有 x1 與 x2 的組合」。 在 R 中的 formula 採取「:」字符有相同功能。 如果不夠直白的話,可以看看以下的操作,結果是一樣的。 x12 <- paste(x1, x2, sep="&") m.r1 <- lm(y~factor(x12)) anova(m.f, m.r1) ※ 引述《DrRd (就這樣吧)》之銘言: : [問題類型]: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : [軟體熟悉度]: : 入門(寫過其他程式,只是對語法不熟悉) : [問題敘述]: : 用R來執行多元迴歸的lack of fit test : 在網路上找到的方法是單迴歸用的,多元迴歸不知道怎麼做 : [程式範例]: : reduce.mod = lm(y ~ x) : full.mod = lm(y ~ 0 + as.factor(x)) : anova(reduce.mod, full.mod) : 但多元迴歸不能把full.mod寫成 lm(y ~ 0 + as.factor(x1) + as.factor(x2)) : 這樣出來的自由度是錯的 : [關鍵字]: : : lack of fit : -- http://apansharing.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.37.172 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1398852025.A.D35.html ※ 編輯: andrew43 (122.117.37.172), 04/30/2014 18:00:39
DrRd:果真如此!感恩感謝! 04/30 22:01
※ 編輯: andrew43 (122.117.37.172), 04/30/2014 22:14:47