Tích chập hiệu quả (tính bằng R)


9

Tôi muốn tính toán / đánh giá tích chập

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

nơi là một mật độ và φ là một hàm trơn tru với sự hỗ trợ nhỏ gọn D . Phép chập không có sẵn ở dạng đóng và tôi cần tích hợp nó với số lượng. Câu hỏi của tôi là: Có một cách hiệu quả để làm điều này? Tôi muốn thực hiện nó trong R, vì vậy, tôi muốn xem liệu có cách nào tốt hơn là sử dụng lệnh không .fϕD integrate()


2
Tùy thuộc vào hoàn cảnh, tôi thường phân biệt với công suất lớn 2 thùng và sử dụng biến đổi Fourier nhanh ( ?fft) hoặc sử dụng convolve. Cách tiếp cận fft cần thêm một chút công việc để thiết lập nhưng sẽ tốt hơn nếu bạn cần phải kết hợp với một cái gì đó nhiều lần. Đôi khi phải mất một thời gian để tìm ra các cài đặt đối số phù hợp với tích chập.
Glen_b -Reinstate Monica

@Glen_b Cảm ơn. Đối với một hàm univariate , tôi nghĩ rằng sự tích hợp trực tiếp có thể nhanh hơn. f
Nấu

2
Bạn đã yêu cầu một cách hiệu quả - fft thực sự nhanh chóng ; nó chỉ cần một chút thiết lập (tạo thùng, đệm bằng số không).
Glen_b -Reinstate Monica

@Glen_b Vâng, tôi đồng ý rằng fft thực sự nhanh, nhưng bước trước có thể làm chậm quá trình. Tôi sẽ so sánh cả hai phương pháp, dù sao. Cảm ơn bạn.
Nấu

Tôi nhớ lại sử dụng convolvecho mục đích này nhiều lần. Các ví dụ hoạt động đơn giản xuất hiện tại stats.stackexchange.com/a/41263 , stats.stackexchange.com/a/41255stats.stackexchange.com/a/49444 .
whuber

Câu trả lời:


9

Bạn đã xem qua các gói R dành riêng cho điều đó chưa? Giống như convolve, https://stat.ethz.ch/R-manual/R-devel/l Library / stat / html / convolve.html


Cảm ơn. Nếu tôi hiểu đúng, gói này là để tạo chuỗi số, thay vì hai hàm. Tui bỏ lỡ điều gì vậy?
Nấu

2
Chà, tôi đã không sử dụng gói đó, nhưng nếu bạn đang cố thực hiện phép tích chập trong R, thì về cơ bản bạn sẽ có hai chuỗi số sẽ là các giá trị từ các hàm của bạn, phải không? Tôi không nghĩ R cho phép bạn làm việc với định nghĩa hàm.
jmnavarro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.