stata如何縮尾?
在調查資料中,常常會遇到有極端值的情況,縮尾和結尾是兩種很普遍的處理極端值的做法。以1%和99%雙側縮尾/截尾為例:
縮尾:將大於99%分位數的取值,替換為99%分位數取值;將小於1%分位數的取值,替換為1%分位數取值。
截尾:將大於99%分位數或小於1%分位數的取值,替換為缺失值。
使用縮尾還是截尾,應根據資料情況和研究的具體問題選擇。
一、基本語法
winsor2 varlist [if] [in], [suffix(string) replace trim cuts(# #) by(groupvar) label]
/* Note: suffix(string) 表示縮尾和截尾後生成新變數的字尾,預設是“_w”(縮尾)和“_tr”(截尾);
replace 表示不生成新變數,縮尾或截尾後的數值替換當前變數數值;
trim 表示截尾,不新增該 option,則預設是縮尾;
cut(# #) 表示縮尾或截尾的百分位數;
by(groupvar) 表示分組變數;
label 表示在變數標籤中註明:(1)縮尾/截尾; (2)縮尾/截尾的百分位數。 */
二、示例
** 1%、99%縮尾:將小於1%百分位數和大於99%百分位數的數值分別替換為1%、99%分位數數值
winsor2 x,cut(1 99) //新變數名預設是x_w
** 1%、99%截尾:將小於1%百分位數和大於99%百分位數的數值分別替換缺失值“。”
winsor2 x,cut(1 99) trim //新變數名預設是x_tr
/* winsor2 圖示:
+——————————+
No | x x_w x_tr |
|——————————|
1 | 。02 。33 。 |
2 | 。33 。33 。33 |
3 | 。64 。64 。64 |
4 | 1。5 1。5 1。5 |
… | … … … |
98 | 136 136 136 |
99 | 321 321 321 |
100 | 450 450 450 |
101 | 687 450 。 |
+——————————+ */
** 根據 Province 分組,在1%和99%分位數處雙側縮尾/截尾,並替換原來的變數(不生成新變數)
winsor2 x,cut(1 99) by(Province) replace //縮尾
winsor2 x,cut(1 99) by(Province) trim replace //截尾
三、樣本刪除/保留
keep 和 drop 也可以用於樣本的管理(樣本刪除與保留):
drop if select==0 //刪除 select 取值為0的樣本
keep if select==1 //保留 select 取值為1的樣本
這裡需要用到 IF 條件的用法,點選下面連結可以檢視:
Stata IF條件用法1 贊同 · 0 評論文章