2017-11-25 29 views
0

R文書linkの次のコードから、データの元々の点ごとに単一の値(「密度」)を抽出する方法を理解したいと思いますフレーム これは、3D空間の「ポイント」密度を念頭に置いている新しいアプリケーションに新しい列を使用できるようにするためです。3Dカーネル密度からのポイント値の推定と抽出R

私はこのSOの問題:linkを見ましたが、そのコードは51のレイヤの行列を与えます。そして、代わりに150ポイントの値を取得する方法が固まっています。私の場合は

私が使用しています変量例が心配です:これは素敵なプロットを与えるコード、ある

fhat <- kde(x=iris[,1:3]) 

が、私はそれぞれのための単一の値を取得するために失敗していますアイリスデータで150行/ポイントは、私はあなたがksパッケージからkde()を参照していると仮定しています

library(ks) 
library(MASS) 
data(iris) 

## univariate example 
fhat <- kde(x=iris[,2]) 
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length") 

## bivariate example 
fhat <- kde(x=iris[,2:3]) 
plot(fhat, display="filled.contour2", cont=seq(10,90,by=10)) 
plot(fhat, display="persp", thin=3, border=1, col="white") 

## trivariate example 
fhat <- kde(x=iris[,2:4]) 
plot(fhat, drawpoints=TRUE) 
+0

ありがとう、エラーを修正しました! – Mark

+0

'ks'パッケージには、プロットを生成するいくつかのプライベートメソッドがあります。したがって、それらのコードはプロット値に到達する方法を示しています。これらの関数は、Rコンソールに 'ks ::: plotkde.1d'(と' .2d'と '3d'の変形)を入力することで見ることができます。結果の計算データを見るには 'str(fhat)'を使うこともできます。いずれかが回答経路につながるかどうかを確認してください。彼らが混乱していない、または混乱している場合は、目標のコードビットの混乱/不足を質問に追加すると、実りある道が特定される可能性があります。 – hrbrmstr

+0

私がしようとしているのは、点群の雲が例えば赤色〜赤色の色になるように、点ごとの密度値をプロットscatter3dの点の色を設定することです。 denistyに基づいて非常に暗い赤。 Plotlyはこれらのプロットでそれを行う方法はありませんので、私はバイパスを念頭に置いていますが、最初に密度値を持つ列を持つ必要があります。 あなたがすでに言及したコードを見ましたが、それを理解できませんでした – Mark

答えて

2

を設定しますか?

もしそうであれば、推定値を用いて、点のベクトル/行列の濃度を計算する引数eval.pointsを使用:

## univariate example 

library(ks) 

fhat <- kde(x = iris[,2]) 
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length") 

estimate <- kde(iris[,2], eval.points = iris[,2])$estimate 
points(iris[,2], estimate) 

enter image description here

ワークス同様高い入力寸法について。

+0

私は3D版のためにそれを必要としましたが、テストしました。私はそれがとても簡単にできることを理解していませんでした。 kde(iris [、1:3]、eval.points = iris [、1:3])$ estimate ありがとうございましたM.A. – Mark

+0

kdeはかなり遅いです。 40.000ポイントは1112.87秒かかるこれを読んでいる誰かが、より速いパッケージを知っている場合は、コメントを残して自由に感じてください – Mark

関連する問題