• 追加された行はこの色です。
  • 削除された行はこの色です。
このページは自分用のメモで,まだ書きかけです.


*はじめに [#yf5bb29f]

ここでは,Rを使って非線形回帰分析をします.

目的関数が線形の場合,最小二乗法を用いて残差 (RSS) が最小となるパラメーターを解析的に求めることができます.
これから回帰分析をはじめる場合は,先に線形回帰分析をやってみましょう.
-[[Rで回帰分析する>バイオ・データ・マイニング/Rで回帰分析する]] - とうごろうぃき

目的関数が非線形の場合,最小二乗法で解析的に解くことができません.
そこで,ニュートン法や最急降下法のような方法を使って,残差 (RSS) が最小となるパラメーターを探索します.
ここでは,''Levenberg-Marquardt法''を用います.

Levenberg-Marquardt法は,''minpack.lmパッケージ''に含まれています.



*非線形回帰 [#i30be182]

ここでは,次のようなデータに対して非線形回帰を行います.
#geshi(rsplus){{
> data <- read.csv("data.csv")
> head(data)
  x  y
1 1 97
2 2 97
3 3 97
4 4 97
5 5 97
6 6 96
> plot(x, y, ylim=c(80,100))
}}
#ref(./data.png,50%)


ここでは,モデルが次のような式で表される曲線を考えます.
\[ y = a e^{bx} + c  \]





#geshi(rsplus){{
> getPred <- function(parS, xx) parS$a * exp(xx * parS$b) + parS$c
> residFun <- function(p, observed, xx) observed - getPred(p,xx)
> parStart <- list(a=10,b=-.001, c=90)
}}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS