Merapikan data 2D

8

Data terdiri dari spektra optik (intensitas cahaya terhadap frekuensi) yang direkam pada waktu yang bervariasi. Poin diperoleh pada grid reguler dalam x (waktu), y (frekuensi). Untuk menganalisis evolusi waktu pada frekuensi tertentu (kenaikan cepat, diikuti oleh peluruhan eksponensial), saya ingin menghapus beberapa derau yang ada dalam data. Kebisingan ini, untuk frekuensi tetap, mungkin dapat dimodelkan secara acak dengan distribusi gaussian. Namun, pada waktu yang tetap, data menunjukkan jenis kebisingan yang berbeda, dengan lonjakan palsu besar dan osilasi cepat (+ derau gaussian acak). Sejauh yang saya bisa bayangkan kebisingan di sepanjang dua sumbu harus tidak berkorelasi karena memiliki asal fisik yang berbeda.

Apa prosedur yang wajar untuk memperlancar data? Tujuannya bukan untuk mendistorsi data, tetapi menghapus artefak berisik yang "jelas". (dan dapatkah over-smoothing disetel / dikuantifikasi?) Saya tidak tahu apakah merapikan satu arah secara terpisah dari yang lain masuk akal, atau apakah lebih baik halus dalam 2D.

Saya sudah membaca hal-hal tentang estimasi kepadatan kernel 2D, interpolasi polinomial / spline 2D, dll. Tapi saya tidak akrab dengan jargon atau teori statistik yang mendasarinya.

Saya menggunakan R, yang saya lihat banyak paket yang tampaknya terkait (MASS (kde2), bidang (smooth.2d), dll.) Tetapi saya tidak dapat menemukan banyak saran tentang teknik mana yang berlaku di sini.

Saya senang belajar lebih banyak, jika Anda memiliki referensi khusus untuk menunjukkan saya (saya mendengar MASS akan menjadi buku yang bagus, tapi mungkin terlalu teknis untuk non-ahli statistik).

Sunting: Berikut adalah perwakilan spektrogram boneka dari data, dengan irisan sepanjang dimensi waktu dan panjang gelombang.

image2d

Tujuan praktis di sini adalah untuk mengevaluasi tingkat peluruhan eksponensial dalam waktu untuk setiap panjang gelombang (atau nampan, jika terlalu berisik).

baptiste
sumber
Berapa frekuensi pengukuran dilakukan? Jika ini bukan jumlah yang besar, mungkinkah untuk melihatnya sebagai serangkaian rangkaian waktu individu (tetapi terkait), satu untuk setiap frekuensi tertentu?
Peter Ellis
@PeterElladalah jumlah yang besar (katakanlah 500, tetapi untuk kepentingan umum itu bisa lebih besar)
baptiste
Firasat saya adalah memperlakukan mereka sebagai 500+ deret waktu berkorelasi dan menggunakan teknik deret waktu seperti rata-rata bergerak atau perataan eksponensial; dan hanya menggunakan smoothing 2d sesudahnya dan hanya jika perlu untuk representasi grafis bergaya. Namun saya tidak memiliki cukup dukungan untuk mengubahnya menjadi "jawaban" yang tepat.
Peter Ellis
1
Saya akan melihat metode 'kuat'. Metode-metode ini mencoba mengurangi pencilan. Misalnya ada algoritma spline yang kuat di R.
user12719
Adakah sesuatu yang spesifik untuk variabel waktu yang menjadikan deret waktu jenis tertentu dari analisis statistik?
baptiste

Jawaban:

4

Anda perlu menentukan model yang memisahkan sinyal dari noise.

Ada komponen kebisingan pada tingkat pengukuran yang Anda asumsikan gaussian. Komponen lainnya, tergantung pada pengukuran:

  • "Kebisingan ini, untuk frekuensi tetap, mungkin dapat dimodelkan secara acak dengan distribusi gaussian". Perlu klarifikasi - apakah komponen kebisingan umum untuk semua titik waktu, mengingat frekuensinya? Apakah standar deviasi sama untuk semua frekuensi? Dll

  • "Namun, pada waktu yang tetap, data menunjukkan jenis kebisingan yang berbeda, dengan lonjakan palsu besar dan osilasi cepat" Bagaimana Anda memisahkannya dari sinyal, karena Anda mungkin tertarik pada variasi intensitas di seluruh frekuensi. Apakah variasi yang menarik entah bagaimana berbeda dari variasi yang tidak menarik, dan jika demikian, bagaimana?

Oscillatioins palsu atau non-gaussian noise pada umumnya bukan masalah besar, jika Anda memiliki gagasan realistis tentang karakteristiknya. Ini dapat dimodelkan dengan mengubah data (dan kemudian menggunakan model gaussian) atau dengan secara eksplisit menggunakan distribusi kesalahan non-gaussian. Memodelkan kebisingan yang berhubungan dengan pengukuran lebih menantang.

Bergantung pada bagaimana noise dan model data Anda, Anda mungkin dapat memodelkan data dengan alat tujuan umum seperti GAM dalam paket mgcv, atau Anda mungkin memerlukan alat yang lebih fleksibel, yang dengan mudah mengarah ke pengaturan bayesian yang cukup disesuaikan . Ada alat untuk model seperti itu, tetapi jika Anda bukan ahli statistik, belajar untuk menggunakannya akan membutuhkan waktu.

Saya kira solusi spesifik untuk analisis spektral atau paket mgcv adalah taruhan terbaik Anda.

scellus
sumber
Saran suara, terima kasih, saya perlu melihat opsi ini dan berpikir lebih hati-hati tentang deskripsi kebisingan.
baptiste
1
Kebisingan dalam spektrum optik biasanya tergantung pada intensitas cahaya yang diukur ("menghitung" Foton adalah proses Poisson) dan sering juga pada panjang gelombang / frekuensi (karena karakteristik detektor). Ada sejumlah besar proses yang menyumbang kebisingan instrumental, lihat misalnya Skoog & Leary: Principles of Instrumental Analysis. Jenis kebisingan utama akan tergantung pada jenis instrumen (dan eksperimen). Plot d dari waktu ke waktu menunjukkan ketergantungan yang jelas pada besarnya, menunjukkan bahwa Baptiste memiliki pengukuran intensitas (sebagai lawan dari, misalnya spektrum absorbansi).
cbeleites tidak senang dengan SX
2

Serangkaian spektrum waktu menunjukkan kepada saya sebuah eksperimen kinetika , dan ada sejumlah literatur chemometrik yang mapan tentang hal ini.

Apa yang kamu ketahui tentang spektrum? Apa jenis spektrumnya? Dapatkah Anda secara wajar berharap bahwa Anda hanya memiliki dua spesies, produk dan produk?

Bisakah Anda menganggap wajar bilinearitas, yaitu spektrum yang diukur X pada waktu tertentu merupakan kombinasi linear dari konsentrasi komponen C kali spektrum komponen murni S:

X(nspc×nwl)=C(nspc×ncomp)S(ncomp×nwl)

Anda mengatakan bahwa Anda ingin memperkirakan peluruhan eksponensial (dalam konsentrasi). Ini bersama dengan bilinearitas menunjukkan kepada saya resolusi kurva multivariat (MCR). Ini adalah teknik yang memungkinkan Anda untuk menggunakan informasi yang Anda miliki (misalnya spektra komponen murni dari beberapa zat, atau asumsi pada perilaku konsentrasi seperti peluruhan eksponensial) selama pemasangan model.

Sejauh yang saya tahu, sangat umum untuk menghaluskan konsentrasi menurut beberapa, misalnya model kinetik, tetapi jauh lebih jarang untuk menghaluskan spektrum. Namun, algoritma memungkinkan untuk melakukannya. Saya bertanya pada Anna di musim panas apakah mereka memberlakukan kendala kelancaran, tetapi dia mengatakan kepada saya bahwa mereka tidak melakukannya (dan spektroskopi yang baik membenci perataan alih-alih mengukur spektrum yang baik ;-)). Seringkali, tidak diperlukan juga, karena mengumpulkan informasi dari semua spektrum sudah akan menghasilkan perkiraan yang baik dari spektrum komponen murni.

Saya melakukan "komponen spektrum" halus (pada kenyataannya, komponen utama) dua kali belakangan ini ( Dochow et al .: Perangkat Raman-on-chip dan serat deteksi dengan serat Bragg kisi untuk analisis solusi dan partikel, LabChip, 2013 dan Dochow el al. : Kuarsa mikrofluida chip untuk identifikasi sel tumor oleh spektroskopi Raman dalam kombinasi dengan perangkap optik, AnalBioanalChem, diterima) tetapi dalam kasus ini pengetahuan spektroskopi saya mengatakan kepada saya bahwa saya diizinkan untuk melakukan ini. Saya cukup teratur menerapkan interpolasi downsampling dan smoothing untuk spektrum Raman saya ( hyperSpec::spc.loess).

Bagaimana cara mengetahui apa yang terlalu banyak dihaluskan? Saya pikir satu-satunya jawaban yang mungkin adalah "pengetahuan ahli tentang jenis spektroskopi dan eksperimen".


sunting: Saya membaca ulang pertanyaannya, dan Anda berkata Anda ingin memperkirakan peluruhan pada setiap panjang gelombang. Namun, apakah itu benar atau Anda ingin memperkirakan pembusukan spesies yang berbeda dengan spektrum yang tumpang tindih?

cbeleites tidak senang dengan SX
sumber
Terima kasih untuk referensi. Meskipun sampel tidak benar-benar memiliki dua spesies, itu agak mirip (dua proses fisik berbeda untuk dibedakan). Saya akan melihat lebih dekat ketika saya kembali dari konferensi.
baptiste
@baptiste: Selamat konferensi. Apakah Anda keberatan menceritakan proses seperti apa yang Anda miliki? Ie dapatkah Anda berasumsi bahwa "dalam" setiap proses karakteristik spektralnya sama, atau dapatkah osilasi "bergerak" di atas spektrum (frekuensinya ambigu jika Anda memiliki pola osilasi dalam suatu spektrum )?
cbeleites tidak senang dengan SX
1

Data terdiri dari spektra optik (intensitas cahaya terhadap frekuensi) yang direkam pada> waktu yang bervariasi. Poin diperoleh pada grid reguler dalam x (waktu), y (frekuensi).

Bagi saya, ini kedengarannya sangat mirip dengan kasus analisis data fungsional (FDA), meskipun saya tidak tahu fisika di balik masalah Anda, dan saya mungkin benar-benar salah. Jika Anda dapat menganggap proses di balik data Anda secara inheren halus dan kontinu, Anda mungkin ingin menggunakan perluasan fungsi dasar bivariat untuk menangkap pengukuran Anda dalam bentukintensity=f(time,frequency), dengan fmenjadi jumlah fungsi basis (misalnya b-splines) dan koefisien. Serangkaian fungsi basis terbatas secara langsung mengurangi kekasaran dan karenanya membatalkan sebagian white noise.

Saya sudah membaca hal-hal tentang estimasi kepadatan kernel 2D, interpolasi polinomial / spline 2D, dll.

...

Saya menggunakan R, yang saya lihat banyak paket yang tampaknya terkait (MASS (kde2), bidang (smooth.2d), dll.) Tetapi saya tidak dapat menemukan banyak saran tentang teknik mana yang berlaku di sini.

Anda menyebutkan interpolasi spline, tetapi tidak menyebutkan paket fda yang mengimplementasikan dengan cukup baik dan mudah diakses perluasan fungsi dasar yang saya sebutkan di atas. Himpunan pengukuran simultan untuk waktu, frekuensi dan intensitas (dipesan sebagai array tiga dimensi) dapat ditangkap sebagai satu objek data fungsional bivariat, lihat. misal fungsi 'Data2fd'. Selain itu, beberapa prosedur penghalusan tersedia dalam paket yang semuanya dirancang untuk membatalkan white noise atau "kekasaran" dalam pengukuran proses yang pada dasarnya halus.

The Wikipedia Artikel frase masalah kebisingan putih di FDA sebagai berikut:

Data mungkin sangat akurat sehingga kesalahan dapat diabaikan, mungkin mengalami kesalahan pengukuran substansial, atau bahkan memiliki hubungan tidak langsung yang kompleks dengan kurva yang mereka tetapkan. ... catatan harian curah hujan di stasiun cuaca sangat bervariasi sehingga memerlukan analisis yang cermat dan canggih untuk mengekstraksi sesuatu seperti kurva curah hujan rata-rata.

FDA menyediakan alat untuk kasus-kasus ini. Apakah ini tidak diterjemahkan ke dalam kasus Anda?

... tapi saya tidak terbiasa dengan jargon atau teori statistik yang mendasarinya ...

... tapi saya tidak dapat menemukan banyak saran tentang teknik mana yang diterapkan di sini ...

Mengenai FDA: Saya bukan tidak lain tetapi buku Ramsay dan Silverman tentang FDA (2005) membuat dasar-dasarnya sangat mudah diakses dan Ramsay Hooker and Graves (2009) langsung menerjemahkan wawasan dari buku ke dalam kode R. Kedua volume harus tersedia sebagai e-book di perpustakaan universitas untuk statistik, biosains, klimatologi atau psikologi. Google juga akan memunculkan beberapa tautan lagi yang tidak dapat saya kirim semuanya di sini.

Maaf saya tidak bisa memberikan solusi yang lebih langsung untuk masalah Anda. Namun, FDA memang banyak membantu saya begitu saya tahu untuk apa itu.

pengguna1966337
sumber
itu membantu, terima kasih. Saya berharap untuk mendengar perspektif yang lebih global daripada hanya satu teknik tertentu, tetapi jika itu yang harus saya gunakan itu semua baik.
baptiste
Terima kasih atas kreditnya. Akhirnya, tidak seorang pun kecuali Anda atau kolega langsung Anda yang dapat memutuskan metodologi apa yang tepat. Tetapi mengingat apa yang Anda jelaskan saya akan melihat pada FDA secara umum. Mungkin memberi Anda lebih banyak ide bagaimana menganalisis data Anda.
user1966337
@ user1966337: FYI, dalam spektroskopi optik, intensitas pada panjang gelombang yang berbeda sering memiliki makna yang berbeda, sehingga Anda dapat memperlakukannya sebagai variasi untuk model bilinear (bermakna secara fisik) dengan beberapa komponen, yang mengarah ke model data yang lebih terbatas. Kadang-kadang Anda memiliki efek yang tidak memungkinkan ini dan di mana FDA akan lebih sesuai.
cbeleites tidak senang dengan SX
1

Sebagai seorang ahli fisika sederhana, bukan ahli statistik, saya akan mengambil pendekatan sederhana. Dua dimensi memiliki sifat yang berbeda. Masuk akal untuk memuluskan waktu dengan satu algoritma, dan memuluskan sepanjang gelombang dengan yang lain.

Algoritma aktual yang saya gunakan: untuk panjang gelombang, Savitzky-Golay dengan urutan lebih tinggi, 6 mungkin 8.

Seiring waktu, jika contoh itu tipikal, lompatan tiba-tiba dan penurunan eksponensial yang kurang lebih membuatnya rumit. Saya sudah memiliki data eksperimental, dan gambar berisik, begitu saja. Jika metode sederhana sederhana tidak cukup membantu, coba Gaussian lebih halus tetapi tekan efeknya di dekat lompatan, seperti yang terdeteksi oleh detektor tepi. Menghaluskan dan memperluas keluaran detektor tepi, menormalkannya untuk pergi dari 0,0 ke 1,0, dan menggunakannya untuk memilih antara gambar asli dan yang halus Gaussian, pixel demi pixel.

DarW
sumber
0

@aptapte: Saya senang Anda menambahkan plot seperti yang saya sarankan. Itu sangat membantu:

Jadi, jika saya mengerti dengan benar, tujuan praktis Anda adalah untuk mengevaluasi tingkat peluruhan eksponensial untuk setiap panjang gelombang; maka mari kita lakukan! Tentukan fungsi yang Anda ingin meminimalkan untuk setiap panjang gelombang secara terpisah, dan menguranginya.

Mari kita lihat satu panjang gelombang yang diberikan, seperti di plot kanan bawah Anda.

Pertama, untuk kesederhanaan, mari kita buang semua nilai sebelum 0,2 detik, karena mereka mengandung diskontinuitas besar-besaran (pendekatan kami dapat ditambah untuk menghadapinya nanti). Kemudian, tentukan kriteria optimasi berikut, yang bertujuan untuk menemukan konstanta peluruhanτ:

τ^=argminτti||eti/τdi||2

Anda dapat menyelesaikan masalah optimasi ini secara analitis dengan membedakan wrt τ, menyamakan dengan nol, dan pemecahan untuk τ; atau Anda bisa menggunakan solver.

Kemudian, jika Anda percaya bahwa panjang gelombang yang berdekatan harus memiliki konstanta peluruhan yang serupa, Anda dapat memasukkan ini ke dalam kriteria optimasi yang lebih rumit.

Jika ada, saya sarankan Anda membaca buku yang harus dibaca optimasi: optimasi cembung Boyd .

Semoga ini membantu!

zorbar
sumber
maaf tapi sepertinya ada kesalahpahaman: Saya kenal dengan optimasi nonlinear; di sini saya ingin tahu teknik penghalusan apa yang dapat saya gunakan pada data seperti itu ketika pemasangan pada setiap panjang gelombang tidak dapat diandalkan karena kebisingan di kedua dimensi. Memang, contoh boneka saya sepertinya cukup bisa diterapkan, tetapi jika saya menambahkan lebih banyak suara akan lebih sulit untuk divisualisasikan. Saya suka pendekatan FDA yang disarankan sebelumnya, karena mencakup bagian pemasangan dan penghalusan dalam satu metodologi.
baptiste