2017-11-10 15 views
0

私は一連のデータを分析しており、その回帰を見つける必要があります。データセット内のデータポイントの数が少なく(〜15)、私はそのジョブに堅牢な線形回帰を使用することに決めました。問題は、手順が、影響力のないような外れ値としていくつかの点を選択していることです。Pythonの統計モデル堅牢な線形回帰(RLM)外れ値の選択

点BとC(図中の赤丸で示されている)が外れ値として選択され、影響の大きい点Aは外れ値として選択されます。ポイントAは回帰の一般的な傾向を変えないが、基本的に最高のXを持つポイントとともに勾配を定義している。ポイントBおよびCは勾配の有意性にのみ影響を与える。だから私の質問には2つの部分があります: 1)最も影響力のあるポイントが選択されていない場合、RLMパッケージの方法を教えてください。 2)あなたは点Aが外れ値だと思いますか?

答えて

1

statsmodelsのRLMはM推定値に限定されます。デフォルトのヒューバーノルムは、yの外れ値に対してのみ頑強であるが、xではなく、悪影響を及ぼす悪影響ポイントに対して頑健ではない。

たとえば、http://www.statsmodels.org/devel/examples/notebooks/generated/robust_models_1.html 行[51]以降を参照してください。

bisquareのような厳密な規範は悪い影響ポイントを取り除くことができますが、解は局所最適であり、適切な開始値が必要です。低ブレークダウンポイントを持ち、LTSのようなx外れ値に対して堅牢なメソッドは現在、統計モデルやAFAIKではPythonのどこにも存在しません。 Rには、これらのケースを扱うことができるより広範な推定器があります。 statsmodels.robustにメソッドやモデルを追加する拡張機能の中には、現在停止しているプルリクエストがあります。

一般に

と質問の後半部分に答えるために:特定のケースでは

を外れ値として観測を宣言するか、特定することが困難な場合が多いです。非常に多くの研究者は、詳細な調査が必要なの外れ値候補を示すために堅牢な方法を使用します。例えば、「異常値」が異なる母集団から抽出されたものである可能性があります。純粋に機械的な統計的な識別を用いることは、多くの場合適切ではないかもしれない。

この例では、急峻な傾斜と落とし穴Aを外れ値として当てはめると、点BとCは合理的によく適合し、異常値として識別されません。他方、余分な情報に基づいてAが合理的な点であれば、関係は非線形である可能性があります。 LTSはAを唯一の異常値として宣言し、急な回帰直線に合うと思います。

関連する問題