Bagaimana cara mengelompokkan variabel longitudinal?


10

Saya memiliki banyak variabel yang berisi data longitudinal dari hari 0 hingga hari 7. Saya mencari pendekatan pengelompokan yang sesuai yang dapat mengelompokkan variabel-variabel longitudinal ini (bukan kasus) ke dalam kelompok yang berbeda. Saya mencoba menganalisis kumpulan data ini secara terpisah berdasarkan waktu, tetapi hasilnya cukup sulit untuk dijelaskan secara wajar.

Saya menyelidiki ketersediaan prosedur SAS PROC SIMILARITYkarena ada contoh di situs webnya ; Namun, saya pikir itu bukan cara yang benar. Beberapa penelitian sebelumnya menggunakan analisis faktor eksplorasi di setiap titik waktu, tetapi ini bukan pilihan dalam penelitian saya juga karena hasil yang tidak masuk akal.

Semoga beberapa ide dapat diberikan di sini, dan program yang dikompilasi, seperti SAS atau R, dapat tersedia untuk diproses. Setiap saran sangat dihargai !!


Ini adalah contoh singkat (maaf untuk posisi yang tidak konsisten antara data dan nama variabel):

id time   V1  V2   V3   V4   V5   V6   V7   V8   V9   V10
2    0    8    7    3    7    6    6    0    0    5    2
2    1    3    5    2    6    5    5    1    1    4    2
2    2    2    3    2    4    4    2    0    0    2    2
2    3    6    4    2    5    3    2    1    2    3    3
2    4    5    3    4    4    3    3    4    3    3    3   
2    5    6    4    5    5    6    3    3    2    2    2
2    6    7    5    2    4    4    3    3    4    4    5
2    7    7    7    2    6    4    4    0    0    4    3
4    0   10    7    0    2    2    6    7    7    0    9
4    1    8    7    0    0    0    9    3    3    7    8
4    2    8    7    0    0    0    9    3    3    7    8
4    3    8    7    0    0    0    9    3    3    7    8
4    4    5    7    0    0    0    9    3    3    7    8
4    5    5    7    0    0    0    9    3    3    7    8
4    6    5    7    0    0    0    9    3    3    7    8
4    7    5    7    0    0    0    9    3    3    7    8
5    0    9    6    1    3    2    2    2    3    3    5
5    1    7    3    1    3    1    3    2    2    1    3
5    2    6    4    0    4    2    4    2    1    2    4
5    3    6    3    2    3    2    3    3    1    3    4
5    4    8    6    0    5    3    3    2    2    3    4
5    5    9    6    0    4    3    3    2    3    2    5
5    6    8    6    0    4    3    3    2    3    2    5
5    7    8    6    0    4    3    3    2    3    2    5

Bisakah Anda menjelaskan lebih banyak data atau mungkin memberikan sampel singkat? Ketika Anda mengatakan "variabel berisi data longitudinal" maksud Anda semua pengukuran berulang pada orang atau hal yang sama selama 7 hari (dan dengan demikian cenderung berkorelasi).
rosser

Untuk rosser: Saya telah menambahkan bagian dari data. Seperti yang Anda sebutkan, ini adalah pengukuran berulang: setiap pasien (ID) memiliki 10 pengukuran (V1 ~ V10) yang berlangsung beberapa hari (day0 ~ day7).
cchien

Jawaban:


5

Dalam Hmiscpaket R, lihat file bantuan untuk curveRepfungsi, yang merupakan singkatan dari "kurva representatif." curveRepklaster pada bentuk kurva, lokasi, dan pola titik waktu yang hilang.


Terima kasih atas saranmu. Kedengarannya bisa dilakukan. Saya akan segera membaca manualnya.
cchien

Jujur. Contoh dalam manual sepertinya tidak berfungsi. Apakah ada kesalahan ketik? Saya ingin menjalankan contoh untuk merasakannya. Berikut adalah kode: set.seed (1) N <- 200 nc <- sampel (1:10, N, TRUE) id <- rep (1: N, nc) x <- y <- id untuk (i in 1: N) {x [id == i] <- if (iy [id == i] <- i + 10 * (x [id == i] - .5) + runif (nc [i], - 10, 10)}
B_Miner

1
Aduh. Saya lupa bahwa tanda persen dalam file bantuan R harus diloloskan. Ini menyebabkan garis dalam contoh terpotong. Ganti baris yang tidak lengkap dengan: x[id==i] <- if(i %% 2) runif(nc[i]) else runif(nc[i], c(.25, .75))
Frank Harrell

Saya tidak yakin apa "p: jumlah titik di mana untuk mengevaluasi setiap kurva untuk pengelompokan" adalah singkatan dari curveRep (x, y, id, kxdist = 2, p = 10)
greg121

1
p>3p=10p

5

Saya tidak yakin itu yang Anda cari, tetapi paket kmldi R menggunakan k-means untuk mengelompokkan urutan tindakan berulang. Berikut adalah tautan ke halaman paket dan ke kertas (sayangnya, itu terjaga keamanannya). Ini hanya berfungsi dengan baik jika Anda memiliki dataset yang cukup kecil (beberapa ratus urutan).

di sini adalah versi non-gated dari makalah (tanpa masalah referensi): http://christophe.genolini.free.fr/recherche/aTelecharger/genolini2011.pdf


Saya sebenarnya mengulas metode ini sebelum memposting pertanyaan ini. Saya berasumsi pendekatan kml adalah cara cluster untuk mengelompokkan individu dari beberapa contoh makalah aslinya. Saya akan melihatnya lagi. Terima kasih!!
cchien

@ccchien ya, mereka menggunakannya untuk mengelompokkan lintasan individual bersama-sama, tetapi Anda dapat mengasumsikan bahwa Anda memiliki sepuluh lintasan per individu (satu untuk setiap variabel Anda). Anda mungkin perlu menormalkan variabel Anda agar prosedur kml berfungsi dengan baik. Masalahnya adalah, sejauh yang saya tahu, tidak ada cara untuk mengatakan kml bahwa lintasan Anda bersarang pada individu. Jadi itu mungkin tidak sesuai dengan apa yang Anda coba capai.
Antoine Vernet

@ greg121, terima kasih atas tautannya ke versi makalah yang tersedia secara bebas. Tampaknya referensi dalam teks telah dihapus, mungkin file Lateks harus dikompilasi ulang sekali lagi (daftar referensi ada di sana).
Antoine Vernet

@AntoineVernet ya, Anda benar. Tetapi saya tidak dapat menemukan versi lain
greg121

4

Jadi, Anda memiliki hal variabel diukur setiap t kali pada n individu yang sama . Salah satu cara untuk melanjutkan adalah menghitung t pXp (dis) matriks kesamaan dan menerapkan Multidimentional Scaling model INDSCAL. Ini akan memberi Anda dua peta dimensi rendah (katakanlah, 2 dimensi). Peta pertama menunjukkan koordinat dari p variabel dalam ruang dimensi dan mencerminkan pengelompokan di antara mereka, jika ada. Peta kedua menunjukkan bobot (yaitu kepentingan, atau arti-penting) dari dimensi dalam setiap matriks t .

masukkan deskripsi gambar di sini


Saya juga punya ide untuk mengubah n-dimensi menjadi 2-dimensi, tetapi tidak punya ide tentang metode tertentu yang dapat mencapai ini. Sekarang saya menemukan SAS mungkin memiliki prosedur yang dapat mengimplementasikannya. Saya akan mempelajarinya untuk melihat ketersediaannya ketika menggunakan data saya.
cchien

Apa cara terbaik untuk menafsirkan bobot?
Ming K.

Bobot menunjukkan seberapa besar dimensi relevan, atau diskriminatif, untuk sumber khusus ini (sumber adalah individu atau, seperti dalam contoh ini, kali). Pada gambar untuk time1, misalnya, dimensi II kuat atau relevan dan dimensi I lemah.
ttnphns
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.