3

2つの変数がxあり、yこれらは[0,1]でのデカルト座標でありz、これらの座標での(連続)変数の値です。zベクトルにはいくつかの重要な外れ値があります

x<-sample(seq(0,1,0.001), replace=F)
y<-sample(seq(0,1,0.001), replace=F)
z<-runif(1001,min=0,max=1)
z[100]<-8;z[400]<-16;z[800]<-4

これらのデータをfilled.contour

今まで使ってきました

library(akima)
a<-interp(x,y,z)
filled.contour(a$x,a$y,a$z)

しかし、私はこの線形補間に満足していません。たとえば(外れ値は正しく表示されません)。

私が必要としているのは、(x、yの位置に基づいて)zのある種の最も近い隣接する「空間」平滑化であると考えています。誰かが私を助けることができるデータ/例/パッケージ/コードを助けたり特定したりできますか?私はベースRソリューションを好みますが、ggplot2またはlatticeが私の仕事をすることができれば、それは問題ありません。より良い視覚化の他のアイデア/提案も歓迎されます。

4

2 に答える 2

7

@PaulHeimstraの回答をここでチェックしてください。彼らは、 fieldsパッケージからの薄板スプライン補間を提案しています。クリギングが適切な場合は、パッケージの自動マップが役立つ場合があります。

地理的値の内挿に関心がある場合は、地球統計学とオープンソース統計計算に関するDGRossiterのオンライン/無料コースに言及する価値があります。

于 2012-12-02T12:08:12.203 に答える
4

fieldsパッケージの薄板スプラインまたはTps()関数がチケットです。次に、モデルの結果を同じパッケージのpredictSurface()関数に配置して、平滑化された空間データを生成する必要があります。必要なのはほんの数行のコードだけです。

test.spline <- Tps(data.frame(x,y), z)
new.grid <- predictSurface(test.spline, nx = 200, ny = 200)
image(new.grid)

データの性質により、グリッドが適切であるかどうかが決まります。これは、predictSurface()のnx引数とny引数を使用して制御します。この例では、グリッド解像度を上げても影響はありません。実際の空間データを使用すると、高解像度のサーフェスを使用したスムージングが劇的になります。詳細については、関数のヘルプを確認してください。

于 2014-07-24T10:24:34.873 に答える