我有一個SAS數據集,其中有多列缺失的數據。我想用基於數據集中其他數據的預測來替換缺失的數據。 Here描述該方法的鏈接,但沒有告訴我如何去做。如何用預測替換缺失的值?用預測替換SAS中的缺失數據:迴歸插補
編輯: 我想到的方法只是使用Proc Reg,然後將係數應用於缺失數據以生成估計值。這回答了你的問題了嗎?
我有一個SAS數據集,其中有多列缺失的數據。我想用基於數據集中其他數據的預測來替換缺失的數據。 Here描述該方法的鏈接,但沒有告訴我如何去做。如何用預測替換缺失的值?用預測替換SAS中的缺失數據:迴歸插補
編輯: 我想到的方法只是使用Proc Reg,然後將係數應用於缺失數據以生成估計值。這回答了你的問題了嗎?
PROC STDIZE
,PROC EXPAND
和PROC MI
都能夠對您的數據執行不同類型的插值,具體取決於您想要如何確定「預測」。
對於簡單的事情,如替換平均值,PROC STDIZE
是要走的路。 PROC MI
是最先進的 - 它執行多個插補。 PROC EXPAND
適用於具有時間序列數據的情況,因爲它會嘗試計算出時間序列中該點的正確值。
如果您在多個列中缺少數據,則需要多次迴歸。這可能不是一個好辦法,但要回答這個問題 - 你所要求的就是所謂的打分數據集,你可以使用PROC SCORE
。
另一種方法是在迴歸過程中請求包含該回歸的預測值的OUTPUT
數據集。
output out=predicted1 p=pred_var_missing;
作爲一種方法論,我推薦@ Joe的方法。
添加到@Joe的答案,如果您告訴我們您爲什麼要這樣做插補,我們可以提供更好的建議。我寫了一篇名爲How to Ask a Statistics Question的博客文章,可能有所幫助。
但是,經常單個插補是一種不好的方法。更具體地說,如果您打算對這些數據(包含估算值)進行進一步分析,則單個估算將低估數據的可變性並給出錯誤結果。
PROC MI通常是一種更好的方法。
現在這太寬泛了 - 正如其他人解釋的那樣,有很多方法可以做到這一點。你預測的方法是什麼? – Joe