Saya punya beberapa data deret waktu di mana variabel yang diukur adalah bilangan bulat positif (jumlah). Saya ingin menguji apakah ada tren naik dari waktu ke waktu (atau tidak). Variabel independen (x) berada dalam kisaran 0-500 dan variabel dependen (y) berada dalam kisaran 0-8.
Saya pikir saya menjawab ini dengan menyesuaikan regresi formulir y = floor(a*x + b)
menggunakan ordinary least square (OLS).
Bagaimana cara saya melakukan ini menggunakan R (atau Python)? Apakah ada paket yang ada untuknya, atau lebih baik saya menulis algoritma saya sendiri?
PS: Saya tahu ini bukan teknik yang ideal, tetapi saya perlu melakukan analisis yang relatif sederhana yang sebenarnya bisa saya pahami - latar belakang saya adalah biologi, bukan matematika. Saya tahu saya melanggar asumsi tentang kesalahan dalam variabel yang diukur, dan independensi pengukuran dari waktu ke waktu.
sumber
Jawaban:
Anda dapat memasukkan model yang Anda nyatakan menggunakan fungsi
nls
(non-linear least square)R
, tetapi seperti yang Anda katakan akan melanggar banyak asumsi dan masih mungkin tidak masuk akal (Anda mengatakan hasil yang diprediksi adalah acak di sekitar langkah fungsi, bukan nilai integer di sekitar hubungan yang meningkat dengan lancar).Cara yang lebih umum untuk mencocokkan data hitung menggunakan regresi Poisson menggunakan
glm
fungsi dalamR
, contoh pertama pada halaman bantuan adalah regresi Poisson, meskipun jika Anda tidak terbiasa dengan statistik, sebaiknya berkonsultasi dengan ahli statistik untuk memastikan Anda melakukan sesuatu dengan benar.Jika nilai 8 adalah maksimum absolut (tidak mungkin untuk melihat jumlah yang lebih tinggi, bukan hanya itu yang Anda lihat) maka Anda dapat mempertimbangkan regresi logistik odds proporsional, ada beberapa alat untuk melakukan ini dalam paket
R
, tetapi Anda benar-benar harus melibatkan ahli statistik jika Anda ingin melakukan ini.sumber
Namun model yang Anda sarankan dapat terjadi misalnya ketika Anda mengamati data bulat: dengan kesalahan normal iid .ϵ i
Saya pikir ini menarik untuk melihat apa yang bisa dilakukan dengannya. Saya tunjukkan dengan cdf dari variabel normal standar. Jika , maka menggunakan notasi komputer yang dikenal.ϵ ∼ N ( 0 , σ 2 ) P ( ⌊ a x + b + ϵ ⌋ = k )F ϵ∼N(0,σ2)
Anda mengamati titik data . Kemungkinan log diberikan oleh Ini tidak identik dengan kuadrat terkecil. Anda dapat mencoba memaksimalkan ini dengan metode numerik. Berikut ini adalah ilustrasi dalam R:(xi,yi)
Dalam merah dan biru, garis ditemukan oleh maksimalisasi numerik dari kemungkinan ini, dan kuadrat terkecil, masing-masing. Tangga hijau adalah untuk ditemukan dari kemungkinan maksimum ... ini menunjukkan bahwa Anda dapat menggunakan kuadrat terkecil, hingga terjemahan oleh 0,5, dan mendapatkan hasil yang kira-kira sama; atau, bahwa kuadrat terkecil cocok dengan model mana adalah bilangan bulat terdekat. Data bulat begitu sering bertemu sehingga saya yakin ini diketahui dan telah dipelajari secara luas ...⌊ a x + b ⌋ a , b b Y i = [ a x i + b + ϵ i ] , [ x ] = ⌊ x + 0,5 ⌋ax+b ⌊ax+b⌋ a,b b
sumber