R語言 如何手動指定啞變量(虛擬變量)的參照水平
這個問題操作起來很簡單,但對于很多新手來說并不友好。國內(nèi)關(guān)于R語言中如何設(shè)置啞變量的教程太多,但就我所知,沒有相關(guān)介紹的這個小問題的。
假設(shè)有formula:lm(y?~?x?+?b)
首先,個人覺得設(shè)置啞變量最簡單的就是直接在formula中給變量面前加個factor()或as.factor()函數(shù)就行。例如變量b由=有1,2,3,4個值。若將b指定為因子變量(分類變量),則可以在不改變原數(shù)據(jù)的情況下加入:
lm(y?~?x?+?as.factor(b))
需要注意的是,R語言中絕大多數(shù)程序包會默認(rèn)把整數(shù)分類變量看作為因子變量,即不需要加factor()來指定。如果需要在回歸中做p for trend這種線性趨勢,則可以用numeric()或as.numeric()函數(shù)來強(qiáng)制指定b為連續(xù)資料。
lm(y?~?x?+?as.numeric(b))
不過R語言默認(rèn)的參照水均為最低值,例如變量b有1,2,3,4四個水平,則默認(rèn)參照水平為1。這時候如果需要指定參照水平為3時,則可以在formula中為該變量調(diào)用relevel()函數(shù)。
lm(y?~?x?+?relevel(b,?ref?=?"3"))
最后如果國內(nèi)搜不到R語言相關(guān)教學(xué),可以去stack overflow去看看。一般搜索引擎改為bing或google,問題翻譯為英語,基本上第一條都會是stack上的教學(xué)(可能需要科學(xué)上網(wǎng))。
標(biāo)簽: