Data longitudinal: deret waktu, tindakan berulang, atau yang lainnya?

10

Dalam bahasa Inggris biasa: Saya memiliki regresi berganda atau model ANOVA tetapi variabel respons untuk setiap individu adalah fungsi waktu yang melengkung.

  • Bagaimana saya bisa tahu mana dari variabel sisi kanan bertanggung jawab atas perbedaan signifikan dalam bentuk atau offset vertikal dari kurva?
  • Apakah ini masalah rangkaian waktu, masalah tindakan berulang, atau sesuatu yang lain sama sekali?
  • Apa praktik terbaik untuk menganalisis data tersebut (lebih disukai dalam R, tetapi saya terbuka untuk menggunakan perangkat lunak lain)?

Dalam istilah yang lebih tepat: Katakanlah saya memiliki model tetapi y i j k sebenarnya adalah serangkaian data- poin dikumpulkan dari individu yang sama pada banyak titik waktu , yang dicatat sebagai variabel numerik. Memplot data menunjukkan bahwa untuk setiap individuysayajk=β0+β1xsaya+β2xj+β3xsayaxj+ϵkysayajkt y i j k tktysayajktadalah fungsi kuadratik atau siklikal dari waktu yang offset, bentuk, atau frekuensinya vertikal (dalam kasus siklikal) mungkin sangat tergantung pada kovariat. Para kovariat tidak berubah dari waktu ke waktu - yaitu, seorang individu memiliki berat badan yang konstan atau kelompok perlakuan selama durasi periode pengumpulan data.

Sejauh ini saya telah mencoba Rpendekatan berikut :

  1. Manova

    Anova(lm(YT~A*B,mydata),idata=data.frame(TIME=factor(c(1:10))),idesign=~TIME); 
    

    ... di mana YTadalah matriks yang kolomnya adalah titik waktu, 10 di antaranya dalam contoh ini, tetapi jauh lebih dalam data nyata.

    Masalah: ini memperlakukan waktu sebagai faktor, tetapi titik waktu tidak tepat cocok untuk setiap individu. Selain itu, ada banyak dari mereka yang relatif terhadap ukuran sampel sehingga model menjadi jenuh. Sepertinya bentuk variabel respon dari waktu ke waktu diabaikan.

  2. Model campuran (seperti pada Pinheiro dan Bates, Model Efek Campuran dalam S dan S-Plus )

    lme(fixed=Y~ A*B*TIME + sin(2*pi*TIME) + cos(2*pi*TIME), data=mydata, 
        random=~(TIME + sin(2*pi*TIME) + cos(2*pi*TIME))|ID), method='ML')
    

    ... di mana IDfaktor yang mengelompokkan data berdasarkan individu. Dalam contoh ini, responsnya bersifat siklis dari waktu ke waktu, tetapi bisa saja ada istilah kuadratik atau fungsi waktu lainnya.

    Masalah: Saya tidak yakin apakah setiap istilah waktu diperlukan (terutama untuk istilah kuadratik) dan mana yang dipengaruhi oleh kovariat mana.

    • Apakah stepAIC()metode yang baik untuk memilihnya?
    • Jika tidak menghapus istilah yang tergantung waktu, apakah itu juga akan menghapusnya dari randomargumen?
    • Bagaimana jika saya juga menggunakan fungsi autokorelasi (seperti corEXP()) yang mengambil rumus dalam correlationargumen - haruskah saya membuat rumus corEXP()itu sama dengan yang ada di randomatau hanya ~1|ID?
    • The nlmepaket jarang disebutkan dalam konteks time series luar Pinheiro dan Bates ... itu tidak dianggap baik cocok untuk masalah ini?
  3. Menyesuaikan model kuadratik atau trigonometri untuk setiap individu, dan kemudian menggunakan masing-masing koefisien sebagai variabel respons untuk regresi berganda atau ANOVA.

    Masalah: Diperlukan beberapa koreksi perbandingan. Tidak dapat memikirkan masalah lain yang membuat saya curiga bahwa saya mengabaikan sesuatu.

  4. Seperti yang disarankan sebelumnya di situs ini ( Apa istilah untuk regresi deret waktu yang memiliki lebih dari satu prediktor? ), Ada ARIMAX dan fungsi transfer / model regresi dinamis .

    Masalah: Model berbasis ARMA mengasumsikan waktu diskrit, bukan? Mengenai regresi dinamis, saya mendengarnya untuk pertama kali hari ini, tetapi sebelum saya mempelajari metode baru lain yang mungkin tidak berhasil, saya pikir akan lebih bijaksana untuk meminta orang yang telah melakukan ini sebelumnya untuk meminta nasihat.

f1r3br4nd
sumber
5
@ f1r3br4dan Mungkin membantu jika Anda menambahkan beberapa detail tentang apa sebenarnya data Anda? Yaitu, berapa banyak kasus yang diukur pada berapa titik waktu? Apakah kasus dalam kondisi yang berbeda? atau sesuatu yang berbeda?
Jeromy Anglim
Sudahkah Anda kehilangan akun Anda? Jika demikian, silakan daftarkan yang baru, mungkin dengan alamat Gmail Anda sehingga saya dapat dengan mudah menemukan apa yang harus digabung.
1
@ f-tussel dan @ jeromy-anglim: Data tersebut adalah berbagai pengukuran non-invasif yang dikumpulkan dari hewan lab selama masa hidup alami mereka, sering digabungkan dengan informasi statis seperti genotipe, jenis kelamin, atau jenis makanan yang mereka makan. Maksud saya 'banyak' maksud saya dari 20 hingga beberapa ratus. Bukan hanya satu set data yang saya coba analisis, tetapi untuk mempelajari bagaimana menganalisis tipe data yang menjadi sangat umum di grup saya. Apakah model campuran dengan faktor dalam kelompok hanya disarankan untuk ukuran sampel yang lebih kecil?
f1r3br4nd

Jawaban:

5

Seperti yang dikatakan Jeromy Anglim, akan membantu mengetahui jumlah titik waktu yang Anda miliki untuk setiap individu; seperti yang Anda katakan "banyak" saya berani bahwa analisis fungsional mungkin menjadi alternatif yang layak. Anda mungkin ingin memeriksa paket R fda dan melihat buku oleh Ramsay dan Silverman .

F. Tusell
sumber
Analisis fungsional kedengarannya menjanjikan dalam jangka panjang, tetapi sepertinya akan ada kurva pembelajaran yang cukup sebelum saya yakin bahwa saya tidak mendapatkan hasil yang tidak berarti atau bias. Jadi sementara saya semakin cepat dalam hal ini, apakah nlmependekatan berbasis lebih akrab (item 2 dan 3 di OP) setidaknya valid untuk digunakan pada data untuk saat ini?
f1r3br4nd
2

Sejak awalnya mengajukan pertanyaan ini, saya sampai pada kesimpulan bahwa model efek campuran dengan subjek sebagai faktor pemblokiran acak adalah solusi praktis untuk masalah ini, yaitu opsi # 2 di posting asli saya. Jika randomargumen untuk lmediatur ke ~1|ID(di mana IDmengidentifikasi pengamatan yang berasal dari subjek tes yang sama) maka model intersep acak dipasang. Jika diatur ke ~TIME|IDmaka model kemiringan dan penyadapan acak dipasang. Rumus sisi kanan mana pun yang mengandung variabel yang berbeda-beda di dalam individu yang sama dapat ditempatkan di antara ~dan |ID, tetapi rumus yang terlalu rumit akan menghasilkan model jenuh dan / atau berbagai kesalahan numerik. Oleh karena itu, seseorang dapat menggunakan uji rasio kemungkinan (anova(myModel, update(myModel,random=~TIME|ID))) untuk membandingkan model intersep acak dengan kemiringan acak dan model intersep atau model efek acak kandidat lainnya. Jika perbedaan dalam fit tidak signifikan maka tetap dengan model yang lebih sederhana. Itu berlebihan bagi saya untuk masuk ke fungsi trigonometri acak di posting asli saya.

Masalah lain yang saya angkat adalah salah satu pemilihan model. Sepertinya orang tidak menyukai pemilihan model apa pun, tetapi tidak ada yang memiliki alternatif praktis. Jika Anda secara membabi buta meyakini peneliti yang mengumpulkan data tentang variabel penjelas apa dan tidak relevan, Anda akan sering menerima asumsi yang tidak diuji secara membabi buta. Jika Anda mempertimbangkan setiap bit informasi yang mungkin, Anda akan sering berakhir dengan model jenuh. Jika Anda secara sewenang-wenang memilih model dan variabel tertentu karena mudah, Anda akan lagi menerima asumsi yang belum diuji, kali ini milik Anda sendiri.

Jadi, secara ringkas, untuk tindakan berulang lmemodel itu diikuti dengan pemotongan melalui MASS:::stepAICatau MuMIn:::dredgedan / atau nlme:::anova.lmesampai dan kecuali seseorang memiliki ide yang lebih baik.

Saya akan membiarkan jawaban-diri ini untuk sementara waktu sebelum menerimanya untuk melihat apakah ada yang punya bantahan. Terima kasih atas waktu Anda, dan jika Anda membaca ini karena Anda memiliki pertanyaan yang sama dengan yang saya miliki, semoga sukses dan selamat datang di wilayah yang belum dipetakan.

f1r3br4nd
sumber