Đánh giá các đỉnh trong chuỗi thời gian của dữ liệu tín hiệu tế bào


9

Tôi đang đo lường sự tồn tại của phản ứng trong các phép đo tín hiệu tế bào. Những gì tôi đã làm trước tiên là áp dụng thuật toán làm mịn (Hanning) cho chuỗi thời gian của dữ liệu, sau đó phát hiện các đỉnh. Những gì tôi nhận được là đây: chuỗi thời gian đáp ứng tín hiệu tế bào

Nếu tôi muốn làm cho việc phát hiện phản hồi trở nên khách quan hơn một chút so với "vâng, bạn thấy sự gia tăng liên tục", cách tiếp cận tốt nhất sẽ là gì? Có phải để có được khoảng cách của các đỉnh từ đường cơ sở được xác định bằng hồi quy tuyến tính?

(Tôi là một lập trình viên trăn và hầu như không hiểu gì về thống kê)

Cảm ơn bạn


4
Tôi không nghĩ có tồn tại "cách tiếp cận tốt nhất". Có nhiều cách để phân tích hoặc báo cáo các đỉnh trong chuỗi thời gian. Câu hỏi của bạn không đưa ra manh mối để hiểu những gì bạn có thể sau đó. Có thể bạn tham khảo các bài viết trong lĩnh vực của bạn, cho gợi ý hoặc điểm chuẩn.
ttnphns

Tôi không biết cung cấp thông tin gì để cung cấp cho bạn manh mối. Về cơ bản, bạn có một biểu đồ có xu hướng giảm (bạn nhận được ít phản hồi hơn từ một ô khi thời gian tiếp tục) và ở đâu đó ở giữa bạn có thể thấy sản lượng tăng. Thế là xong. Bạn có nghĩ rằng về cơ bản, tôi chủ quan nói rằng tăng 10% trong phản ứng = những gì tôi đang theo đuổi?
Radek

1
Giả sử rằng đôi khi bạn thấy hành vi như được hiển thị và đôi khi chỉ giảm liên tục (xấp xỉ), bạn sẽ có nhiều cơ hội nhận được câu trả lời hợp lý ở đây nếu bạn thay thế một biểu đồ lớn bằng 6-10 biểu đồ nhỏ, trong đó một nửa có sự gia tăng này và nửa kia thì không.
AVB

Nó có thể có nhiều hơn một tối đa cục bộ (vết sưng) không?
Emre

1
tại sao bạn không đăng dữ liệu của bạn và tôi sẽ giải quyết vấn đề này. Bộ lọc giả định mà bạn và những người khác đã đề xuất có tác dụng phụ. Nếu bạn muốn có một cách xử lý khách quan, tôi có thể cung cấp cho bạn một số gợi ý. Nhưng tất cả bắt đầu với dữ liệu không phải với giả định!
IrishStat

Câu trả lời:


2

Vì vậy, có vẻ như từ nhận xét ngày 25 tháng 10 của bạn rằng bạn quan tâm đến việc tìm kiếm và mô tả thuật toán hai tính năng chính: phân rã phản hồi ban đầu theo sau là một chu kỳ tăng phản ứng và phân rã tiếp theo. Tôi giả định rằng dữ liệu được quan sát tại các khoảng thời gian riêng biệt.

Đây là những gì tôi sẽ thử:

  1. Sử dụng một thói quen như numpy.ma.polyfit để phù hợp, giả sử, đa thức bậc 4 thông qua dữ liệu của bạn. Điều này sẽ giải thích cho sự sụt giảm ban đầu sau đó là sự tăng / giảm, nhưng làm giảm bớt rất nhiều biến động nhỏ. Hy vọng mức độ đa thức này sẽ đủ linh hoạt để phù hợp với các loạt khác, tương tự tốt. Mục tiêu chính tôi nghĩ sẽ là có được một chức năng chiếm mẫu chính mà bạn đang tìm kiếm.
  2. Sử dụng các thường trình Python để tính toán đạo hàm của hàm đa thức phù hợp với dữ liệu. Các thói quen ví dụ là scipy.misc.derivative và numpy.diff. Bạn đang tìm kiếm các giá trị thời gian trong đó đạo hàm bậc 1 bằng 0, biểu thị mức cực tiểu hoặc cực đại có thể của hàm. Một thử nghiệm hàm bậc hai có thể được sử dụng để xác nhận mà chỉ tương ứng với một phút hoặc tối đa. Có lẽ bạn sẽ có ba điểm như vậy nếu biểu đồ bạn hiển thị là đại diện. Lưu ý rằng dự án hiền triết có thể rất có giá trị ở đây.
  3. Tại thời điểm này, bạn sẽ có các giá trị thời gian được liên kết với

    a. sự khởi đầu của sự phân rã ban đầu

    b. sự khởi đầu của sự phát triển

    c. sự khởi đầu của sự phân rã thứ hai

Sau đó, bạn có thể làm những gì bạn muốn phân tích để đánh giá các thay đổi.

Có lẽ tốt nhất là để dữ liệu tự nói lên: qua nhiều chuỗi, khi bạn áp dụng phương pháp này, sự thay đổi kích thước điển hình khi tăng, khi nào nó thường xảy ra trong thời kỳ phân rã và nó kéo dài bao lâu? Và sự phân phối của upswing này trông như thế nào về nơi, lớn và bao lâu? Biết được các số liệu thống kê này, bạn có thể mô tả rõ hơn một tình trạng khó chịu cụ thể là nằm trong khả năng chịu đựng, liên quan đến thời điểm xảy ra cũng như kích thước và thời lượng. Chìa khóa từ sự hiểu biết của tôi sẽ là dễ dàng xác định nơi những thay đổi này đang xảy ra. Phần còn lại của những gì tôi đã mô tả là đơn giản để tính toán.


4
Đa thức sẽ không hoạt động với những dữ liệu này trừ khi bạn làm cho mức độ lớn đến mức chúng đe dọa sẽ đưa ra các đỉnh giả.
whuber

Có lẽ tôi nên làm rõ câu trả lời của mình rằng anh ta vẫn cần áp dụng hàm Hanning và sau đó thực hiện điều chỉnh đa thức. Cửa sổ Hanning có thể phải được thay đổi để có được chức năng trơn tru hơn. Hay bạn đang nói rằng một đa thức mức độ thấp sẽ không hoạt động đối với dữ liệu được làm mịn?
Josh Hemann

5
Một đa thức mức độ thấp chắc chắn sẽ không hoạt động, Josh. Bạn cần một địa phương mượt mà hơn - nghĩ về một hạt nhân mịn hoặc một số loại spline nhất định - và nó không cần phải là một đa thức, có tính chất khủng khiếp. (Đa thức có thể giới thiệu các đỉnh cực lớn, giả giữa các chuỗi dữ liệu có vẻ hoạt động tốt.)
whuber

f(x)=f(x0)+(xx0)f(x0)+(xx0)22!f(x0)+...

3
Cảm ơn bạn đã làm rõ điểm đó, @Sameer. Tôi đồng ý rằng sự phù hợp đa thức mức độ thấp cục bộ có thể có hiệu quả và tôi không có ý ám chỉ điều ngược lại trong nhận xét trước đây của tôi (có nghĩa là "đa thức" được hiểu là phù hợp toàn cầu ). Về việc nó có phải là "tốt nhất" hay không, tôi phải đồng ý với nhận xét của ttnphns cho câu hỏi ban đầu: tất cả đều phụ thuộc. Tôi hy vọng phương pháp bậc hai cục bộ phù hợp với chuỗi dữ liệu dày đặc để làm mịn hạt nhân Gaussian gần đúng, điều này cho chúng ta một cách tiếp cận. Một ý nghĩa khác của "tốt nhất" là BLUP của kuceing, có thể giống như spline.
whuber

1

Dưới đây là một số ý tưởng nhưng tôi không thể làm việc được ...

Đạo hàm: Nếu bạn lấy mảng của mình và trừ các phần tử với nhau để có được một mảng ít hơn một điểm, nhưng đó là đạo hàm đầu tiên. Nếu bây giờ bạn làm mịn điều đó và tìm kiếm sự thay đổi dấu hiệu, điều đó có thể phát hiện vết sưng của bạn.

Đường trung bình di chuyển: Có lẽ sử dụng 2 đường trung bình di chuyển bị trễ (hàm mũ hoặc cửa sổ) có thể tiết lộ vết sưng lớn trong khi bỏ qua đường nhỏ. Về cơ bản, chiều rộng của cửa sổ trung bình nhỏ hơn phải lớn hơn chiều rộng của các va chạm mà bạn muốn bỏ qua. EMA rộng hơn phải rộng hơn nhưng không quá rộng để phát hiện vết sưng.

Bạn tìm kiếm khi chúng giao nhau và trừ độ trễ (cửa sổ / 2) và đó là ước tính nơi vết sưng của bạn. http://www.stockopedia.com/content/trading-the-golden-cross-does-it-really-work-69694/

Mô hình tuyến tính: Thực hiện một loạt các mô hình tuyến tính có chiều rộng đủ rộng vài lần, giả sử 100 điểm. Bây giờ vòng lặp thông qua tập dữ liệu tạo hồi quy tuyến tính trên biến X. Chỉ cần nhìn vào hệ số của X và xem nơi thay đổi dấu hiệu lớn đã xảy ra. Đó là một vết sưng lớn.

Trên đây chỉ là phỏng đoán là về phía tôi và có lẽ có nhiều cách tốt hơn để làm điều đó.

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.