非線形モデルの適合度


8

観測データに非線形関数を適合させました。次のステップは、この関数の適合度の評価です(線形モデルのように)。R2

これを測定する通常の方法は何ですか?

編集1:

フィッティングは次のように実行されました。

  1. 独立変数AおよびBを使用して線形回帰を実行します。
  2. 回帰パラメーターから分布のパラメーターを計算します。(分布は非線形であり、変数Cを入力として使用します。)
  3. 推定データと観測データを比較して、非線形分布の適合度を評価します。

編集2:

上記のステップの例:

  1. 回帰モデル:log(y)=β0+β1log(a)+β2log(b)
  2. およびθ=β2次の非線形分布のために:F=ρA-θρ=β0β1θ=β2f(a)=ρaθ
  3. f(a)(a,f(a))

5
「適合度」は、適合がどのように行われたかによって異なります。たとえば、ランダム成分が追加の正規変数でない場合、最尤推定量の適切なGoFメジャーは、最小二乗推定量のGoFメジャーとは異なるはずです。特定の問題を念頭に置いている場合は、フィッティングの実行方法を示すことができます。
whuber

2
R2R2

1
@whuber上記の質問に、実行した手順の説明を追加しました。
Marco

@Alexisリファレンスをありがとう、私はそれらを見ていきます。
Marco

1
f(a)

回答:


2

それ以上かもしれませんが、私にとっては、特定のデータセット(a、f(a))に適合した関数f(a)の適合度(GoF)を決定したいようです。したがって、以下は3番目のサブ質問にのみ回答します(1番目と2番目は3番目のものに直接関連するとは思わない)。

通常、GoFパラメトリックに(分布の関数パラメーターがわかっている場合)、またはノンパラメトリックに(わからない場合)決定できます。関数のパラメーターは、指数関数またはガンマ/ワイブル(データが連続していると仮定)のように見えるので、把握できる場合があります。それでも、パラメータを知らなかったかのように、先に進みます。この場合、それは2段階のプロセスです。最初に、データセットの分布パラメーター決定する必要があります。次に、定義された分布に対してGoFテスト実行します。繰り返しにならないように、この時点で、以前の答えを紹介しますいくつかの役立つ詳細を含む関連する質問に。明らかに、この回答は、その中で言及されているもの以外のディストリビューションにも簡単に適用できます。

そこで言及されているGoFテストに加えて、別のテスト- カイ二乗GoFテストを検討することができます。連続分布のみに適用されるKSおよびADテストとは異なり、カイ2乗GoFテスト離散および連続テストの両方に 適用できます。カイ二乗GoFテストは、組み込みパッケージ(関数)およびパッケージ(関数-離散データのみ)のいくつかのパッケージのいずれかを使用して、Rで実行できます。詳細については、このドキュメントをご覧ください。statschisq.test()vcdgoodfit()


1
質問がおそらく削除されたため、「私の以前の回答」へのリンクは機能しなくなりました。
Amonet

1
@Amonet教えてくれてありがとう。削除されたQ&Aにアクセスでき、公開Gistとして復元できました。gist.github.com/ablekh/…を参照してください。お役に立てれば。
Aleksandr Blekh

0

まあ、機械学習では、相互検証と呼ばれるものがモデルテストの目的でかなり頻繁に実行されます(自由度の数など、これらのハイパーパラメーターを持つモデルのタイプが問題に適合するかどうかをテストします)。データをトレーニングおよびテストデータセットに数回入力してから、トレーニングセットに対して最適化を実行し、テストデータの品質を計算します。最も機密性の高い方法は、いわゆる「QxTフォールド相互検証」を実行することです。疑似コードは次のようになります。

cv_values = []
for t in range(T):
    split = randomsplit(data, number_of_parst = Q)
    for test_id in range(Q):
        model.fit(split[:test_id] + split[test_id + 1:] # test on everything excepting test_id
        cv_values.append(model.test(split[test_id]))

cv_values.mean() # whatever

ご回答有難うございます。では、model.test(...)関数はどのように見えますか?
マルコ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.