2017-10-18 343 views
0

我想運行R中逐步迴歸來選擇最適合的模式,我的代碼在這裏附:逐步迴歸錯誤

full.modelfixed <- glm(died_ed ~ age_1 + gender + race + insurance + injury + ais + blunt_pen + 
       comorbid + iss +min_dist + pop_dens_new + age_mdn + male_pct + 
       pop_wht_pct + pop_blk_pct + unemp_pct + pov_100x_npct + 
       urban_pct, data = trauma, family = binomial (link = 'logit'), na.action = na.exclude) 
reduced.modelfixed <- stepAIC(full.modelfixed, direction = "backward") 

有一個錯誤消息說

Error in stepAIC(full.modelfixed, direction = "backward") : 
number of rows in use has changed: remove missing values? 

幾乎數據中的每個變量都有一些缺失值,所以我不能刪除所有缺失值(data = na.omit(data))

有關如何解決此問題的任何想法?

謝謝!

+0

好像不止一個編程問題一個統計問題 - 可能是一個更適合stats.stackexchange。也許你想要推斷缺失的數據? – Gregor

+2

使用多重填補來填充缺失值並避免逐步迴歸,因爲它具有嚴重的統計問題並且有更好的方法可用。 – Roland

回答

2

這應該可能是在統計論壇(stats.stackexchange)中,但是簡要地有一些考慮事項。

主要的一點是,當比較兩個模型時,他們需要在相同的數據集上進行擬合(即您需要能夠將模型嵌套在對方內)。

有關示例

glm1 <- glm(Dependent~indep1+indep2+indep3, family = binomial, data = data) 
glm2 <- glm(Dependent~indep2+indep2, family = binomial, data = data) 

現在想象一下,我們缺少indep3的值,但不indep1或indep2。 當我們運行glm1時,我們在一個較小的數據集上運行它 - 我們有因變量的數據集和所有三個獨立的數據集(即,我們排除indep3值缺失的任何行)。

當我們運行glm2時,行中缺少indep3的值,因爲這些行確實包含依賴,indep1和indep2,它們是變量中的模型。

我們不能再直接比較模型,因爲它們適用於不同的數據集。

我認爲廣義你可以 1)限於數據是完整 2)如果適當考慮多重插補

希望有所幫助。

+0

這是非常有益的,謝謝! – mandy

0

可以使用MICE包做歸集,然後與數據集的工作不會給你錯誤