Tìm kiếm mô hình của các sự kiện trong một chuỗi thời gian


8

Tôi có một thí nghiệm về thời gian theo dõi 8 nhóm điều trị của 12 con cá trong 24 giờ với các quan sát được thực hiện trong khoảng thời gian 5 giây. Trong số các phép đo được thực hiện là khoảng cách mỗi con cá di chuyển (tính bằng mm) giữa các lần quan sát. 24 giờ được chia thành 1 khoảng thời gian tối và 1 khoảng thời gian sáng.

Dưới đây là sơ đồ chuyển động của 12 con cá trong nhóm điều trị H trong giờ đầu tiên của thời kỳ đen tối:

nhóm kiểm soát trong giờ đầu tiên của bóng tối

Bạn có thể thấy rằng một số loài cá có thời gian không hoạt động dài, một số thời gian ngắn và một số không có trong cửa sổ cụ thể này . Tôi cần kết hợp dữ liệu từ tất cả 12 con cá trong nhóm điều trị theo cách để xác định độ dài và tần suất của các khoảng thời gian còn lại trong toàn bộ thời kỳ tối và toàn bộ thời kỳ sáng. Tôi cần phải làm điều này cho mỗi nhóm điều trị. Sau đó, tôi cần so sánh sự khác biệt giữa độ dài và tần số thời gian nghỉ của chúng.

Tôi không phải là một chỉ số gal, và tôi hoàn toàn trên biển. Vấn đề tương tự như căn chỉnh trình tự đối với tôi (nền tảng sinh học của tôi), vì vậy tôi đang nghĩ các mô hình Hidden Markov, nhưng điều này có thể không phù hợp. Bất cứ ai có thể đề xuất một cách tiếp cận tốt cho vấn đề này và có lẽ là một ví dụ nhỏ trong R?

Cảm ơn!


1
Điều này dường như có một số bài toán con. Đầu tiên, bạn cần tìm và trích xuất các khoảng thời gian không hoạt động cho mỗi con cá. Một người có thể làm điều đó bằng cách chỉ nhìn, nhưng nếu bạn có nhiều dữ liệu, có thể bạn muốn làm điều đó tự động. Thứ hai, bạn cần kết hợp chúng cho tất cả các con cá trong một nhóm. Thứ ba, bạn cần so sánh chúng giữa các nhóm. Bạn cần giúp đỡ về vấn đề nào trong số này? Vì bạn đã đề cập đến HMM, tôi đoán đầu tiên. Nếu vậy, một phương pháp tầm thường sẽ chỉ là tìm bất kỳ khoảng thời gian nào khi chuyển động = 0. Tại sao nó không hoạt động? Nếu có một lần tăng đột biến trong thời gian nghỉ ngơi, bạn có tính đó là một khoảng thời gian dài không
SheldonCooper

hoặc hai giai đoạn ngắn? Nếu chuyển động không phải là 0, nhưng rất gần với 0, bạn có muốn coi đó là phần còn lại không?
SheldonCooper

@SheldonCooper: đó là vấn đề đầu tiên tôi gặp rắc rối. Hoạt động tối thiểu không nên được tính là một sự gián đoạn của phần còn lại. Vì vậy, mẫu c93 có 1 (hoặc có thể 2) khoảng thời gian không hoạt động, nhưng mẫu c87 có 4. Tôi đã nghĩ đến việc bình thường hóa thang đo hoạt động thành 1 dựa trên các mức tối đa riêng lẻ để thay đổi hoạt động tỷ lệ thay vì tuyệt đối. Tôi cũng có suy nghĩ rằng vì những quan sát này xuất hiện theo chu kỳ, có lẽ phân tích Fourier có thể là phương pháp thích hợp.
dnagirl

1
Tôi nghĩ rằng chúng ta sẽ cần một định nghĩa chính thức về "không hoạt động" hoặc "nghỉ ngơi". Sẽ ổn nếu bạn nói điều đó về những gì con cá làm hơn là về những gì các ô trông như thế nào (chúng ta có thể dịch sau), nhưng nó phải chính thức. Nếu một định nghĩa chính thức là chính xác những gì bạn cần trợ giúp, thì đây là một số điều cần xem xét: 1. Tôi không nghĩ có bất kỳ định nghĩa chuẩn nào về "không hoạt động trong chuỗi thời gian" mà bạn có thể sử dụng và sử dụng; 2. có thể hữu ích khi biết thêm bối cảnh về các thử nghiệm của bạn để đưa ra định nghĩa;
SheldonCooper

3. trong sinh học, mọi người thường rất chấp nhận các định nghĩa đơn giản và đơn giản như "không hoạt động là bất kỳ khoảng thời gian liên tục nào khi chuyển động nhỏ hơn 0,1, có thể bị gián đoạn bởi các gai có chiều cao không quá 2 và thời gian không quá 20 giây, cách nhau ít nhất Cách nhau 5 phút ". Chắc chắn, định nghĩa này là dễ vỡ và các ngưỡng có vẻ tùy ý (điều gì sẽ xảy ra nếu chúng cách nhau 4 phút 55 giây?), Nhưng mục đích chính là để loại bỏ sự thiên vị mà một người có thể có trong việc phân loại thời gian nghỉ ngơi theo cách thông thường.
SheldonCooper

Câu trả lời:


1

Tôi nghĩ rằng một phân tích dựa trên HMM có thể hữu ích cho bạn. Vì bạn biết rằng bạn đang tìm kiếm sự khác biệt giữa nghỉ ngơi và chuyển động, bạn chỉ có thể định nghĩa một mô hình 2 trạng thái. Đối với HMM, bạn cần chỉ định xác suất phát xạ cho từng trạng thái. Thử nghiệm đầu tiên của tôi sẽ là sử dụng hàm mũ (hoặc gamma?) Cho pha nghỉ (vì nó bị giới hạn bởi 0 từ bên dưới và phân phối bình thường cho trạng thái khác (bạn nên đặt các tham số ban đầu thành một giá trị hợp lý). Sau đó có thể tính toán phân bố trạng thái sau cùng với ước tính khả năng tối đa cho các tham số của bạn. Trình tự trạng thái sau có thể cung cấp cho bạn độ dài ước tính của thời gian nghỉ ngơi và hoạt động (chỉ cần đếm số lượng trạng thái liên tiếp). khoảng thời gian tối / sáng như đồng biến vào mô hình.

Đây http://cran.r-project.org/web/packages/depmixS4/index.html là một gói phần mềm tuyệt vời cho HMMs. Đây http://cran.r-project.org/web/packages/depmixS4/vignettes/depmixS4.pdf họa tiết có thông tin rất hữu ích về ứng dụng của nó và việc sử dụng hạn chế và đồng biến với HMMs là tốt.

Một vấn đề tôi đang thấy là bạn có nhiều cá. Bạn nên bắt đầu bằng cách lắp HMM riêng cho từng con cá. Có lẽ bạn có thể kết hợp cá nếu bạn bằng cách nào đó có thể "bình thường hóa" hoạt động sao cho chúng có thể mang lại các thông số xác suất phát thải tương tự. Hoặc bạn có thể sử dụng số cá như một số đồng biến.

Một số mã ví dụ:

require(depmixS4)
set.seed(1)
mod <- depmix( activity~1, data=yourdata, nstates=2,
               family=gaussian() );
fitted <- fit(mod)

nhưng có rất nhiều, rất nhiều khả năng, hãy kiểm tra các liên kết trên!

Chúc may mắn với dự án của bạn!

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.