2017-01-21 14 views
0

変数があります。多くの欠損値を持つ変数varは、95パーセンタイルを計算したい場合、この値を使用して95パーセンタイルを超える観測値を削除します変数を逃していない観測)。Stata:egen rowpctile単一パーセンタイル値の代わりに値の範囲

多くの欠損値のため、私はegenrowpctileを使用します。これは、欠損値を無視して、p(#)パーセンタイルを計算することになっています。

. egen p95 = rowpctile(var), p(95) 

. list p95 

    +-----------+ 
    |  p95 | 
    |-----------| 
    1. |   . | 
    2. | 65.71429 | 
    3. | 14.28571 | 
    4. |   . | 
    5. |   . | 
... 

は私が間違って機能を使用していますか、行くには良い方法があります:私は、P95の値を見てみると下図のように、しかし、彼らはむしろ、単一の95パーセンタイル値とは異なる値の範囲ですこれについて? egenコマンドの

rowpctile
+1

通常、上位5%を投げるよりもデータを分析する方が良い方法があります。 –

+0

合意@NickCox。しかし、これは課題のためのものですので、私は要求通りに行う必要がありますが、より正確なアウトライヤーの特定方法についての展示を予定しています。 – kathystehl

答えて

2

機能は個別観察の変数のリストの値のパーセンタイルを算出します。あなたに正しい道をつけなければならない方法がいくつかあります。

. sysuse auto, clear 
(1978 Automobile Data) 

. replace price = . in 1/5 
(5 real changes made, 5 to missing) 

. summarize price, detail 

          Price 
------------------------------------------------------------- 
     Percentiles  Smallest 
1%   3291   3291 
5%   3748   3299 
10%   3895   3667  Obs     69 
25%   4296   3748  Sum of Wgt.   69 

50%   5104      Mean   6245.493 
         Largest  Std. Dev.  3015.072 
75%   6342   13466 
90%  11497   13594  Variance  9090661 
95%  13466   14500  Skewness  1.594391 
99%  15906   15906  Kurtosis  4.555704 

. display r(p95) 
13466 

. generate toobig = price>r(p95) 

. list make price if toobig | price==. 

    +---------------------------+ 
    | make    price | 
    |---------------------------| 
    1. | AMC Concord    . | 
    2. | AMC Pacer    . | 
    3. | AMC Spirit    . | 
    4. | Buick Century   . | 
    5. | Buick Electra   . | 
    |---------------------------| 
12. | Cad. Eldorado  14,500 | 
13. | Cad. Seville  15,906 | 
27. | Linc. Mark V  13,594 | 
    +---------------------------+ 
+0

ありがとう!私はそれを完全に動かすために適応させることができました。 – kathystehl

関連する問題