3

注:元々は2011年7月26日にCross Validated(stats SE)に投稿されましたが、現在のところ正解はありません。

バックグラウンド

モデルfがあります。ここで、Y = f(X

Xm個のパラメーターからのサンプルのnxm 行列であり、 Yはモデル出力のnx1ベクトルです

fは計算量が多いので、X、Y)点を通る多変量3次スプラインを使用してfを近似し、より多くの点でYを評価できるようにします。

質問

XYの間の任意の関係を計算するR関数はありますか?

splinefun具体的には、単変量の場合のスプライン関数を生成する関数の多変量バージョンを探しています。

たとえば、これはsplinefun単変量の場合の仕組みです

x <- 1:100
y <- runif(100)
foo <- splinefun(x,y, method = "monoH.FC")
foo(x) #returns y, as example

関数がポイントを正確に補間するテストは成功します。

all(y == foo(1:100))
## TRUE

私が試したこと

mdaパッケージを確認しましたが、次のように機能するはずです。

library(mda)
x   <- data.frame(a = 1:100, b = 1:100/2, c = 1:100*2)
y   <- runif(100)
foo <- mars(x,y)
predict(foo, x) #all the same value

ただし、関数は設計ポイントを正確に補間しません。

all(y == predict(foo,x))
## FALSE

gamまた、、、、marssまたはearthパッケージのいずれかに3次スプラインを実装する方法を見つけることができませんでした。

4

3 に答える 3

4

実際には、いくつかのパッケージで実行できます。私が使用するのは、「rms」パッケージですrcsが、サバイバル パッケージにもpsplineあり、スプライン パッケージにはns関数 {} があります。「自然なスプライン」(ns で構築) も 3 次スプラインです。「交差した」スプライン項を作成する多変量式で「*」演算子を使用して多変量フィッティング関数を形成する必要があります。あなたが提供した例は十分に豊富ではありませんでした。

私はあなたが正確なフィット感を望んでいることに混乱していると思います。R は統計パッケージです。おおよその見積もりが目標です。一般に、正確な適合は、多重共線性につながるため、より問題になります。

于 2011-08-22T02:14:58.623 に答える
2

このようなタスクを実行するために開発された DiceKriging パッケージを見てください。 http://cran.r-project.org/web/packages/DiceKriging/index.html

https://stats.stackexchange.com/questions/13510/fitting-multivariate-natural-cubic-spline/65012#65012でサンプル アプリケーションを提供しました 。

于 2013-07-23T21:10:36.163 に答える
1

これがまさにあなたが探しているものかどうかはわかりませんが、R パッケージ フィールドで Tps() を試すことができます。これは、空間データに対して薄板スプライン補間 (キュービック スプラインに相当する 2D) を実行することを目的としていますが、ユークリッド x、y、z + 時間であることが期待されますが、最大 4 つの共変量が必要になるため、明確にする必要があります。特定のケースに適したオプションを選択していること。内挿する場合は、平滑化パラメーター ラムダをゼロに設定します。R パッケージ polspline の関数 polymars() を試すこともできます。

于 2011-08-22T01:36:20.193 に答える