好大家好,一勞永逸,你怎麼了(重視你,因爲我敢肯定有實現這一目標的方法不止一種)的對比度代碼(治療,總和,helmert等),並保留一個有意義的因子標籤(所以你可以對glm函數做出有意義的解釋)?的R - 如何對比代碼的因素,並保留在輸出總之有意義的標籤
我明白我可以使用水平(),以瞭解哪些因素電平爲參考,但得到的單調乏味,當我開始用的因素5點或10的水平和他們的互動參與。
這裏是我的意思
outcome <- c(1,0,0,1,1,0,0,0,1, 0, 0, 1)
firstvar <- c("A", "B", "C", "C", "B", "B", "A", "A", "C", "A", "C", "B")
secondvar <- c("D", "D", "E", "F", "F", "E", "D", "E", "F", "F", "D", "E")
df <- as.data.frame(cbind(outcome, firstvar, secondvar))
df$firstvar <- as.factor(df$firstvar)
df$secondvar <- as.factor(df$secondvar)
#not coded manually (and default appears to be dummy or treatment coding)
#gives meaningful factor labels in summary function
summary(glm(outcome ~ firstvar*secondvar, data=df, family="binomial"))
#effects coded
#does not give meaningful factor labels
contrasts(df$firstvar)=contr.sum(3)
contrasts(df$secondvar)=contr.sum(3)
summary(glm(outcome ~ firstvar*secondvar, data=df, family="binomial"))
#dummy coded
contrasts(df$firstvar)=contr.treatment(3);
contrasts(df$secondvar)=contr.treatment(3);
summary(glm(outcome ~ firstvar*secondvar, data=df, family="binomial"))
任何一個快速的雙因素例子,所有的建議將不勝感激。這個問題困擾了我一段時間,我確信有一個簡單的(ish)解決方案。
感謝的人!當你說你「決定用‘AC’和‘BC’作爲標籤,你在哪裏調用的代碼?我習慣使用relevel並重新運行我的對比參考電平進行分類。 – gh0strider18
我應該有在'paste(names(x [x> 0]),names(x [x <0]),sep =「 - 」)'line中,我使用值爲「1」的rowname,減去值爲「-1」的rowname。粘貼將「 - 」放在這些值之間。 – MrFlick