2016-11-07 44 views
0

我有兩個數據幀:「緩存」值是否會導致邏輯迴歸失敗?

df_bad

die_y倉

1 11 JD

2 13 I

df_good

die_y倉

1 11 JD

2 13 I

我運行邏輯迴歸:

model_lr < - 列車(BIN〜,數據= df_bad,方法= 'GLM',家庭= '二項式'。)

model_lr < - 列車(倉〜,數據= df_good,方法= 'GLM',家庭= '二項式')

第二成功(其直接創建)

df_good < - data.frame(die_y = C( 11,13),bin = as.factor(c('JD','I')))

第一次失敗(從較大的數據框中切片),錯誤: 結果中的一個或多個因子級別沒有數據:' BA','dU','other','TT','XD'

由於在我看來數據幀是相同的,算法如何知道其他潛在因素值不在數據?整個混亂從原始數據中的錯誤開始,所以我想我會嘗試將原始數據削減到一個可用的數據集並從那裏開始,除了算法似乎「記住」我所擁有的並將其用作另一個失敗的藉口。即使刪除原始源數據也不會改變結果。是什麼賦予了?我怎樣才能讓算法忘記之前發生的事情? TIA

+3

閱讀'help(「droplevels」)'。 – Roland

+1

數據框存儲您的因素的所有級別,即使您沒有每個級別的案例。正如羅蘭所說,使用微滴。 –

+0

非常感謝 - 添加以下代碼: df_bad < - droplevels(df_bad) 和它的工作 – kmccarty

回答

1

添加代碼:df_bad < - droplevels(df_bad)

和作品!

+0

當您創建子集,運行'STR()'來看看你在新集已經發生的事情! – sconfluentus