# 5.3 Estimation of Missing Values ## imputation 經常我們會發現 observations 中,某些特定 variables 的值可能不見了。理想上我們就直接把這些 observations 棄之不用,但是通常我們沒有夠大的 samples 讓我們能這麼做,況且我們也不想浪費那些還有保留著 data 的 entries,因為這些 entries 仍然可以提供我們一些 information。 因此,我們要用的方式就是試著++去估計那些不見的值,然後把這些有空缺的 entries 補上++,這樣的做法就叫做 <font color = "snake">imputation</font>。 舉例來說,在下圖中 feature A 有兩筆 data 不見了,因此右邊我們分別用三種方式來估計這兩筆 data 的值:  ### mean imputation 對於一個 numeric variable,<font color = 'snake'>mean imputation</font> 就是去計算 sample 裡其他 available data 的 mean 再填入 missing entries。如果是 discrete variable,我們就填入其他 available data 中最常出現的值。 > 為什麼如果 variable discrete 要把 mean imputation 訂成這樣是因為,假設某個 feature 的 observed value 只有 $0/1$,那我們去取 mean 可能會算出 $0.6$ 之類的數字,但是這個值根本不屬於 sample space。 從上圖例子中的 imputation by mean,我們可以看到空缺的兩個紅色格子,填入的是其他幾筆 data 的 mean: \begin{equation} \frac{1+5+1+6+4+3+2}{7} \approx 3.14 \end{equation} ### imputation by regression #### 一個 variable 有 value missing 另一種 estimate missing entries 的方式叫做 <font color = 'snake'>imputation by regression (regression imputation)</font>,假設我們有多個 variables,其中一個 varaible 當中有 value missing,那我們就試著透過其他 varaibles 的已知 value 來 predict 這個 missing variable 的 value。 做法首先是根據 missing variable 的 type,額外定義一個 regression 或 classification problem,我們以 regression 為例,regression imputation 的過程如下:  上圖中我們定出 equation: \begin{equation} Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \epsilon \end{equation} 代表著我們假設 varaible $Y$ 可以由 $X_1, X_2$ 的值來被估計,但是這樣的做法是建立在這些 variables ++highly correlated++ 的情況下。 :::warning 如果這些 variables 並非 highly correlated,則這樣的 regression approach (regression imputation) 就等同於 mean imputation。 ::: 為什麼呢? 例子與說明如下圖:  #### 多個 variables 有 value missing 前面我們是假設只有一個 variable 具 missing value 的情形,但是如果我們有多個 variables 都有 value missing 呢? 我們的做法是: 1. 首先我們先用 mean imputation 的方式,各自計算有 missing value 的 variables 的 observed data 的 mean,再各自填入空缺。 2. 接著對每個具 missing value 的 variable,用其他的 variables (這些其他的 variables 現在不見的部分也都已經被 mean 補上了)來 predict,然後 update missing values。 $\rightarrow$ 我們對每個 missing variable 重複這個 process。 3. 最後,我們就不斷 iterate 這個過程,一直到 predicted values stabilize。 > 課本並沒有說到底怎麼樣才算已經 "stabilize",我在參考資料附上的相關文章寫說要 iterate 直到 "approximate convergence",但看 code 似乎是訂一個 iterate 次數限制。 > > 未來如果有用到,有相關內容和例子會再補上。 用講的去描述步驟可能沒那麼清楚,我們用一些符號表示,再稍微說明: 假設我們的 variables with missingness 為 $Y_1,Y_2,...,Y_K$,它們構成一個 matrix $Y$: \begin{equation} Y = \begin{bmatrix} Y_1 & Y_2 & ... & Y_K \end{bmatrix} \end{equation} 而 fully observed (沒有 value missing)的 variables 令為 $X$。 我們首先用某種方式 impute $Y$ 中的 missing values,這個方式可以用像上面提到的取 observed value 的 mean,或是也有一些其他的方法,像直接從 observed values 中 randomly 選一個。 接著: - impute $Y_1$ $\Rightarrow$ 利用 $X$ 和 $Y_2,...,Y_K$ - inpute $Y_2$ $\Rightarrow$ 利用 $X$ 和 $Y_1,Y_3, ...,Y_K$ 不斷 impute 直到 impute 完 $Y_K$,接著再進入下個 iteration。 Iterative regression imputation 的好處是,相較於去對所有的 variables 產生一個整體的 full multivariate model,對每個 $Y_i$ 個別定義一個 separate regression model 比較容易理解,也比較能夠在每個步驟去 fit 到適合的 model。 但是缺點是我們需要小心地去確保個別的 separate regression model 彼此之間是 consistent 的。 > 舉例來說,假設我們先用 income 去 impute age,在後面我們如果要去 impute income 時,如果沒有把 age 考慮進去就不合理。 除此之外,這樣的做法所產生的結果,一般來說也不會跟這些 variables 的 joint probabilty model 對應。 --- 課本對這個小節的內容也講得不多,最後用數學符號表示的部分出自參考資料的文章,有興趣可以參考。 那我們就簡短的結束在這裡。 # 參考資料 - [Missing data imputation](http://www.stat.columbia.edu/~gelman/arm/missing.pdf), p.539-540
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up