2012-02-24 32 views
1

複数のブレークポイントを持つ非線形関数を使用して区分的に回帰を行うことを検討しています。私は区分的線形回帰をしましたが、どのような種類の非線形関数を指定する場合でも、Rでどのようにセットアップすればよいですか?非線形関数を使用した区分的非線形回帰R

具体的には、2つのブレークポイントを使用して線形、指数関数、指数関数の3つの関数に関心があります。あなたの問題に取り組む

+0

区分線形回帰 をどのようにしましたか?また、同じ方法が非線形関数に一般化しないのはなぜですか? 'segmented'パッケージは区分的線形回帰を実行することができます モデルが' y〜x + exp(x)+ log(x) 'ならば、実際には線形 (3つのプレディクタ、' x'、 'exp (x) 'と' log(x) ')を返します。 –

答えて

3

nls()(非線形最小二乗法)を使用してカルティク

教えてください?

reg = nls(y ~ (Z < 0.33) * a + (Z < 0.33) * Z * b + 
     (Z >= 0.33 & Z < 0.67) * Z^a2 + 
     (Z >= 0.67) * a3 + (Z >= 0.67) * Z * a4, 
     start = list(a = 0, b = 50, a2 = 100, a3 = 150, a4 = 80), 
     data = yourdata) 

上記の様式化された例では、ブレークポイントはZ = 0.33、およびZ = 0.67である:私は、各「ピース」の真/偽書類に追加することによって、これと同様の配合物を使用しました。より具体的にすることができ、あるいは3つの回帰のコードを別々に提供することができれば、より具体的な回答をすることができます。

0

「スプライン」パッケージを読み込み、help(bs)の例を実行することをお勧めします。線形回帰装置を使用して、区分的に立方体(しかし結び目で連続)のフィットを得ることができます。 Harrellはこの戦略を彼の「rms」パッケージに優れた効果をもたらしました。 「rms」をロードし、help(rcs)を見てください。このページの例では、ロジスティック回帰の実装を使用していますが、rcs()という用語はols()cph()で動作します。