1

データのあるエリアのテーブルがあります。特定の操作では、極端な外れ値が含まれているため、上位 1% と下位 1% の領域を除外したいと考えています。

前進する方法は次のとおりです。

SORT CASES BY theVariableIwantToAnalyse  (A) .
NUMERIC id (F12.0) .  * create a casenum label "id"
COMPUTE id = $CASENUM. * populate it with casenum
EXECUTE.
NUMERIC idmax (F12.4) .   * create a variable to contain the highest value for "id" 
NUMERIC id1perc (F12.4) . * create a variable to contain 1% of the highest value for "id"  
COMPUTE idmax = MAX(id) .    * determine the highest value for id. This 'mock-syntax' line does not work.   
COMPUTE id1perc = idmax / 100 . * 1% of the highest value for "id"  
SELECT CASES WHERE ID >= id1perc or ID <= idmax - id1perc .

グラフなどを描画します。次にする必要があります

SORT CASES BY theNextVariableIwantToAnalyse  (A) .
COMPUTE id = $CASENUM. * populate it with the NEW casenum order
EXECUTE.

など...

4

2 に答える 2

2

これを試して、上位と下位の 1% を単純に除外します - 追加FILTER BY filter.してすべての極端なケースをオフにするか、またはSELECT IF filter....EXECUTE.削除します

RANK編集:繰り返される値はメソッド(特に/TIESオプション)によって圧縮されることに注意してください。値が繰り返される可能性がある場合、これは理想的ではない可能性があります。/TIESその場合はオプションを変更してください。

************* GENERATE RANDOM DATA *****************.
INPUT PROGRAM.
-       LOOP #I = 1 TO 1000.
-             COMPUTE Y = RV.NORMAL(100,10).
-           END CASE.
-       END LOOP.
-       END FILE.
END INPUT PROGRAM.

dataset name exampleData WINDOW=front.
EXECUTE.


************* RANK DATA  *************.
DATASET ACTIVATE exampleData.
RANK VARIABLES=Y (A)
  /RFRACTION INTO fractile
  /TIES=CONDENSE.

************* MAKE A FILTER  *************.
COMPUTE filter = (fractile>0.01 AND fractile < 0.99).
EXECUTE.

* Chart Builder.
GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=Y filter MISSING=LISTWISE REPORTMISSING=NO
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
  SOURCE: s=userSource(id("graphdataset"))
  DATA: Y=col(source(s), name("Y"))
  DATA: filter=col(source(s), name("filter"), unit.category())
  GUIDE: axis(dim(1), label("Y"))
  GUIDE: axis(dim(2), label("Frequency"))
  GUIDE: legend(aesthetic(aesthetic.color.interior), label("filter"))
  ELEMENT: interval.stack(position(summary.count(bin.rect(Y))), color.interior(filter), 
    shape.interior(shape.square))
END GPL.
于 2013-07-18T21:39:59.347 に答える
1

はるかに簡単な解決策は、RANK を使用してから、除外するランクを選択することです。

于 2013-07-18T17:44:52.420 に答える