Buat tes CDF untuk Anderson Darling untuk fungsi paket Statistik Octave forge

Saya menggunakan Octave dan saya ingin menggunakan anderson_darling_test dari paket Octave forge Statistics untuk menguji apakah dua vektor data diambil dari distribusi statistik yang sama. Selain itu, distribusi referensi kemungkinan besar tidak "normal". Distribusi referensi ini akan menjadi distribusi yang diketahui dan diambil dari bantuan fungsi di atas " 'Jika Anda memilih dari distribusi yang diketahui, ubah nilai Anda menjadi nilai CDF untuk distribusi tersebut dan gunakan "seragam'. "

Oleh karena itu pertanyaan saya adalah: bagaimana cara mengubah nilai data saya menjadi nilai CDF untuk distribusi referensi?

Beberapa informasi latar belakang untuk masalah ini: Saya memiliki vektor nilai data mentah tempat saya mengekstrak komponen siklik (ini akan menjadi distribusi referensi); Saya kemudian ingin membandingkan komponen siklik ini dengan data mentah itu sendiri untuk melihat apakah data mentah pada dasarnya bersifat siklik. Jika hipotesis nol yang menyatakan keduanya sama dapat ditolak, maka saya akan mengetahui bahwa sebagian besar pergerakan data mentah bukan disebabkan oleh pengaruh siklik, namun disebabkan oleh tren atau sekadar noise.


person Andrew    schedule 31.01.2010    source sumber


Jawaban (2)


Jika data Anda memiliki distribusi tertentu, misalnya beta(3,3) maka

p = betacdf(x, 3, 3)

akan seragam menurut definisi CDF. Jika Anda ingin mengubahnya menjadi normal, Anda cukup memanggil fungsi invers CDF

x=norminv(p,0,1)

pada seragam p. Setelah diubah, gunakan tes favorit Anda. Saya tidak yakin saya memahami data Anda, namun Anda mungkin mempertimbangkan untuk menggunakan Kolmogorov- Uji Smirnov sebagai gantinya, yang merupakan uji nonparametrik kesetaraan distribusi.

person Tristan    schedule 01.02.2010

Pendekatan Anda salah arah dalam berbagai cara. Beberapa poin:

  • Pengujian Anderson-Darling yang diterapkan di Octave forge adalah pengujian satu sampel: pengujian ini memerlukan satu vektor data dan distribusi referensi. Distribusinya harus diketahui - bukan berasal dari data. Saat Anda mengutip file bantuan dengan benar tentang penggunaan CDF dan opsi "seragam" untuk distribusi yang tidak ada di dalamnya, Anda mengabaikan kalimat berikutnya dari file bantuan yang sama:

Jangan gunakan "seragam" jika parameter distribusi diperkirakan dari data itu sendiri, karena hal ini akan membuat statistik A^2 condong ke nilai yang lebih kecil.

Jadi, jangan lakukan itu.

  • Bahkan jika Anda menemukan atau menulis fungsi yang mengimplementasikan pengujian dua sampel Anderson-Darling atau Kolmogorov-Smirnov, Anda masih akan menghadapi beberapa masalah:

    1. Sampel Anda (data dan bagian siklus yang diperkirakan dari data) tidak independen, dan pengujian ini mengasumsikan independensi.

    2. Berdasarkan uraian Anda, saya berasumsi ada semacam prediktor waktu yang terlibat. Jadi meskipun distribusinya bertepatan, bukan berarti distribusinya bertepatan pada titik waktu yang sama, karena perbandingan distribusi akan berkurang seiring berjalannya waktu.

    3. Distribusi tren siklik + kesalahan diperkirakan tidak akan sama dengan distribusi tren siklik saja. Misalkan trennya adalah sin(t). Maka tidak akan pernah melebihi 1. Sekarang tambahkan suku kesalahan acak yang terdistribusi normal dengan standar deviasi 0,1 (kecil, sehingga trennya dominan). Jelas Anda bisa mendapatkan nilai jauh di atas 1.

Kami tidak memiliki cukup informasi untuk mengetahui hal yang tepat untuk dilakukan, dan ini sebenarnya bukan pertanyaan pemrograman. Cari tahu teori deret waktu - memisahkan komponen siklik adalah topik utama di sana. Namun banyak analisis yang masuk akal mungkin akan didasarkan pada residu: (nilai yang diamati - diprediksi dari komponen siklik). Anda tetap harus berhati-hati terhadap korelasi otomatis dan kerumitan lainnya, namun setidaknya ini akan menjadi langkah ke arah yang benar.

person Aniko    schedule 01.02.2010