2013-04-28 138 views
0

所以我有一個數據集叫x。內容足夠簡單,只寫了所以我就勾勒出在這裏:R:如何製作邏輯迴歸模型的預測列?

  • 因變量,Report,第一列是二進制的是/否(0 =否,1 =是)
  • 隨後的3列是所有分類變量(race.fsex.fgender.f),其全部被轉換爲的因素,並且他們通過指定的數字(例如1 =白色,2 =黑等)

我對x進行邏輯迴歸,如下所示:

glm <- glm(Report ~ race.f + sex.f + gender.f, data=x, 
      family = binomial(link="logit")) 

我可以通過查看summary(glm$fitted)來檢查擬合概率。

我的問題:如何在此數據集x的右側創建第五列,其中包含Report的預測(即擬合概率)?當然,我可以將glm$fitted作爲列插入,但我想嘗試編寫一個代碼,根據種族,性別,性別列中的任何內容進行預測,以獲得更廣泛的用途。

現在,我將遵循下面的代碼,我希望創建一個預測列以及置信區間的下限和上限。

xnew <- cbind(xnew, predict(glm5, newdata = xnew, type = "link", se = TRUE)) 
xnew <- within(xnew, { 
    PredictedProb <- plogis(fit) 
    LL <- plogis(fit - (1.96 * se.fit)) 
    UL <- plogis(fit + (1.96 * se.fit)) 
}) 

不幸的是我得到的錯誤:

Error in eval(expr, envir, enclos) : object 'race.f' not found 

cbind代碼之後。

任何人有什麼想法?

回答

0

在您的代碼中似乎有一些錯字;首先Xnew調用glm5,但我所看到的模型是glm(順便說一下,使用glm作爲輸出的名稱可能不是一個好主意)。其次確保變量race.f實際上在您希望從中進行預測的數據集中。我的猜測是R無法找到該變量,因此錯誤。