6

多くの単純なモデルを使用して曲線に自動的に適合するパッケージはありますか?
単純なモデルとは、次のことを意味します。

  • ax + b
  • ax ^ 2 + bx + c
  • a * log(x)+ b
  • a * x ^ n + b
  • ax /(1 + bx)
  • ax ^ n /(1 + bx ^ n)
  • ..。

最良の方法は、2つのベクトルパラメーターXとYを取り、SSEを使用して近似された単純なモデルのリストを返す関数を用意することです。

4

3 に答える 3

10

これを試して。 rhsは右辺の文字ベクトルで、xyはデータです。それぞれの式foを作成し、パラメータを抽出して、開始値としてそれぞれを 1 に設定します。最後に実行nlsされ、ソートされた SSE が返されるため、結果は右辺で指定された SSE のベクトルになります。If verbose=TRUE(デフォルト) の場合、各近似からの出力も表示されます。

sse <- function(rhs, x, y) sort(sapply(rhs, function(rhs, x, y, verbose = TRUE) {
    fo <- as.formula(paste("y", rhs, sep = "~"))
    nms <- setdiff(all.vars(fo), c("x", "y"))
    start <- as.list(setNames(rep(1, length(nms)), nms))
    fm <- nls(fo, data.frame(x, y), start = start)
    if (verbose) { print(fm); cat("---\n") }
    deviance(fm)
}, x = x, y = y))

## test

set.seed(123)
x <- 1:10
y <- rnorm(10, x)

# modify to suit
rhs <- c("a*x+b", "a*x*x+b*x+c")

sse(rhs, x, y)
于 2012-07-05T19:26:09.570 に答える
3

分数多項式を評価する関数を提供するパッケージを調べることもできます。mboostこれまでのところ、これらは (関数でFP) とmfp(関数で) のように見えますmfp。パッケージを試したことはありませんが、その背後にある理論はあなたが求めているものに合っています。

このmfpパッケージは、2005 年にR-Newsで説明されました。

興味深いかもしれない2つの参考文献は

Royston P、Altman D (1994) 連続共変量の分数多項式を使用した回帰。アプリケーション統計 3: 429–467.

Sauerbrei W、Royston P (1999) 多変数予後および診断モデルの構築: 分数多項式を使用した予測変数の変換。王立統計学会誌 (シリーズ A) 162: 71–94。

于 2012-07-05T19:56:21.400 に答える