効率的な畳み込み(R)


9

畳み込みを計算/評価したい

g(x)=Df(xt)ϕ(t)dt,

ここで、密度であり、φは、コンパクトサポート滑らかな関数であるD。畳み込みは閉じた形式では利用できません。数値的に統合する必要があります。私の質問は、これを行う効率的な方法はありますか?Rで実装したいので、コマンドを使用するよりも良い方法があるかどうかを確認したいと思います。fϕD integrate()


2
状況に応じて、私は通常2ビンの大きな累乗に離散化し、高速フーリエ変換(?fft)またはを使用しますconvolve。fftのアプローチは、設定に少し手間がかかりますが、何かと何度もたたみ込む必要がある場合に適しています。たたみ込みで正しい引数の設定を見つけるのに時間がかかることがあります。
Glen_b-モニカを復活させる14

@Glen_bありがとう。一変量関数場合、直接積分の方が高速かもしれません。f
2014年

2
あなたは効率的な方法を求めました-fftは本当に速いです。少しの設定が必要です(ビニング、ゼロによるパディング)。
Glen_b-モニカを復活させる14

@Glen_bええ、私はFFTが本当に速いことに同意しますが、前のステップはプロセスを遅くするかもしれません。とにかく、両方の方法を比較します。ありがとうございました。
2014年

convolveこの目的のために何度か使用したことを思い出します。簡単な作業例は、stats.stackexchange.com / a/ 41263stats.stackexchange.com/ a / 41255、およびstats.stackexchange.com/a/49444にあります。
whuber

回答:


9

そのための専用Rパッケージをご覧になりましたか?のようにconvolvehttps://stat.ethz.ch/R-manual/R-devel/library/stats/html/convolve.html


ありがとう。私が正しく理解していれば、このパッケージは2つの関数ではなく、数値シーケンスを畳み込むためのものです。何か不足していますか?
調理する

2
まあ、私はそのパッケージを使用していませんが、Rでたたみ込みを実行しようとしている場合は、基本的に、関数からの値となる2つの数値シーケンスがありますね。Rで関数定義を操作できるとは思わない。
jmnavarro 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.