web-dev-qa-db-ja.com

Rの適合度関数

曲線をデータに適合させ、その曲線がどの程度適合しているかをテストするために、Rでどの関数を使用しますか?どのような結果が良いと見なされますか?

23
medriscoll

その質問の最初の部分だけで本全体を埋めることができます。いくつかの簡単な選択:

  • lm()標準線形モデルの場合
  • 一般化線形モデルの場合はglm()(ロジスティック回帰の場合など)
  • rlm()堅牢な線形モデルのパッケージMASSから
  • lmrob()堅牢な線形モデルのパッケージrobustbaseから
  • loess()非線形/ノンパラメトリックモデルの場合

次に、ドメイン固有のモデルがあります。時系列、マイクロ計量経済学、混合効果など。いくつかのタスクビュー(例: 計量経済学 これについてさらに詳しく説明します。適合度に関しては、それは本全体で簡単に議論できるものでもあります。

26

Rでのカノニカルカーブフィッティングの主力は、lm()glm()、およびnls()です。私にとって、適合度はモデル選択のより大きな問題のサブ問題です。実際、適合度を誤って使用すると(たとえば、ステップワイズ回帰を介して)、モデルが大幅に誤って指定される可能性があります(「回帰モデリング戦略」に関するHarrellの本を参照)。この問題を最初から説明するのではなく、lmglmに関するHarrellの本をお勧めします。聖書とリプリーの聖書は簡潔ですが、それでも読む価値があります。 Farawayによる「Rによる線形モデルの拡張」は包括的で読みやすいものです。 nlsはこれらのソースではカバーされていませんが、Ritz&Streibigによる「NonlinearRegression with R」はギャップを埋め、非常に実践的です。

11
gappy

nls()関数( http://sekhon.berkeley.edu/stats/html/nls.html )は、非線形最小二乗曲線近似のかなり標準的なものです。カイ2乗(残差平方和)は、その場合に最適化されるメトリックですが、正規化されていないため、適合度を判断するために簡単に使用することはできません。確認する必要がある主なことは、残差が正規分布していることです。残念ながら、それを自動化する方法がわかりません。

8
Craig W

Quick Rサイトには、サンプルRコードとともに、モデルの適合と適合のテストに使用される基本関数の合理的な概要があります。

6
ars

確認する必要がある主なことは、残差が正規分布していることです。残念ながら、それを自動化する方法がわかりません。

qqnorm()を変更して、サンプル分位数と理論分位数の間の相関を見つけることができます。基本的に、これは正規クォンタイルプロットの数値解釈にすぎません。おそらく、異なる範囲の分位数の相関係数のいくつかの値を提供することが役立つ可能性があります。たとえば、相関係数がデータの中央の97%で1に近く、テールではるかに低い場合、これは、残差の分布がほぼ正規分布であり、テールでいくらかの面白さが起こっていることを示しています。

3
Ryan R. Rosario

シンプルに保ち、線形メソッドが「十分に」機能するかどうかを確認するのが最善です。決定係数とF統計量を一緒に見て、決して分離しないことで、一般的に適合度を判断できます。従属変数に関係のない変数をモデルに追加すると、R2が増加する可能性があるため、F統計量も考慮する必要があります。

また、モデルを他のネストされた、またはより単純なモデルと比較する必要があります。従属変数が同じである限り、対数尤度比検定を使用してこれを行います。

ジャック-ベラ検定は、残差分布の正規性を検定するのに適しています。

2
christian miner