Fundamental Series — Part 10 of 20
Stata punya sistem missing value yang unik. Missing value numerik adalah . (titik) dan dianggap sebagai bilangan sangat besar — bisa menyebabkan error halus jika tidak hati-hati.
Missing Value di Stata
* Numerik missing
display . // .
display . + 1 // . (menular)
display . > 100 // 1 (TRUE — karena . = +infinity!)
* String missing
display "" // kosong
Penting
. Dianggap Lebih Besar dari Angka Apapun!
display (. > 1000000) // 1 (TRUE!)Ini artinya if x > 100 juga menangkap observasi missing. Selalu gunakan if !missing(x) & x > 100.
Extended Missing Values
Stata punya 27 jenis missing: ., .a, .b, …, .z:
clear
set obs 3
generate x = .
replace x = .a in 2
replace x = .b in 3
list
* 1. .
* 2. .a
* 3. .b
* Berguna untuk membedakan alasan missing:
* .a = tidak menjawab
* .b = tidak berlaku
* .c = data hilangDeteksi Missing
sysuse auto, clear
* Cek missing di satu variabel
count if missing(rep78)
count if rep78 == .
* Cek missing di semua variabel
misstable summarize
* Pattern missing
misstable patterns
* Tabel missing per variabel
mdesc // perlu install: ssc install mdescFilter Berdasarkan Missing
sysuse auto, clear
* Hanya observasi non-missing
list make price if !missing(rep78)
* Buang observasi missing
drop if missing(rep78)
* Atau keep non-missing
keep if !missing(rep78)Mengisi Missing
sysuse auto, clear
* Isi dengan nilai tetap
replace rep78 = 0 if missing(rep78)
* Isi dengan mean
quietly summarize rep78
replace rep78 = r(mean) if missing(rep78)
* Isi dengan mean per grup
bysort foreign: egen mean_rep = mean(rep78)
replace rep78 = mean_rep if missing(rep78)Best Practices
* SALAH — menangkap missing juga!
count if price > 10000
* BENAR
count if price > 10000 & !missing(price)
* Atau gunakan inrange()
count if inrange(price, 10001, .)
* Cek dulu sebelum analisis
misstable summarizeLatihan
BahayaLatihan 10.1 — Deteksi & Hitung
sysuse auto, clear
* 1. Berapa observasi yang punya missing di rep78?
* 2. Berapa persen?
* 3. Tampilkan misstable summarize
BahayaLatihan 10.2 — Handle Missing
sysuse auto, clear
* 1. Hitung mean rep78 (hanya non-missing)
* 2. Isi missing rep78 dengan mean
* 3. Bandingkan distribusi sebelum dan sesudahRingkasan
| Konsep | Keterangan |
|---|---|
. |
Missing value numerik |
"" |
Missing value string |
.a – .z |
Extended missing values |
missing(x) |
Cek apakah missing |
misstable |
Ringkasan missing |
. > angka → TRUE |
Missing dianggap sangat besar! |
!missing(x) & x > n |
Cara aman filter |
Sebelumnya: Part 9 — Date & Time Selanjutnya: Part 11 — Package & Library