Menentukan struktur kovarians: pro dan kontra

15

Apa manfaat menentukan struktur kovarians dalam GLM (daripada memperlakukan semua entri diagonal dalam matriks kovarians sebagai nol)? Selain mencerminkan apa yang diketahui seseorang dari data, lakukan itu

  1. meningkatkan kebaikan fit?
  2. meningkatkan akurasi prediksi pada data yang disimpan?
  3. izinkan kami untuk memperkirakan tingkat kovarian?

Berapa biaya menerapkan struktur kovarian? Melakukannya

  1. menambahkan komplikasi komputasi untuk algoritma estimasi?
  2. menambah jumlah taksiran parameter, juga meningkatkan AIC, BIC, DIC?

Apakah mungkin untuk menentukan struktur kovarian yang tepat secara empiris, atau apakah ini sesuatu yang tergantung pada pengetahuan Anda tentang proses pembuatan data?

Adakah biaya / manfaat yang tidak saya sebutkan?

Jack Tanner
sumber
5
Pada dasarnya, Anda harus menentukan struktur kovarian di GLM. Jika dengan "mengasumsikan tidak ada kovarians", Anda berarti "semua entri off-diagonal dalam matriks kovarians adalah nol", maka semua yang Anda lakukan hanyalah mengasumsikan satu struktur kovarians yang sangat spesifik. (Anda bisa lebih spesifik, misalnya, dengan mengasumsikan bahwa semua varian sama.) Intinya: Saya tidak yakin apakah pertanyaannya masuk akal dalam bentuknya saat ini. (Lagipula aku memilih, karena aku pikir aku akan belajar banyak ketika guru mulai berbicara.) Atau aku salah paham denganmu?
Stephan Kolassa
Apakah Anda mengacu pada struktur kovarians dalam GLM dengan, katakanlah, distribusi pencampuran normal multivariat, atau analisis struktur kovarians dari matriks kovarians, atau yang lainnya?
Tim
1
@StephanKolassa Anda ingin menyalin komentar Anda menjadi jawaban? Tampaknya untuk menjawab pertanyaan sebaik yang akan didapat.
Corone
@Corone: poin bagus, terima kasih atas pengingatnya. Saya pergi dan memposting sebuah jawaban. Mungkin orang lain akan berpadu dan memberikan yang lebih baik ...
Stephan Kolassa

Jawaban:

13

Pada dasarnya, Anda harus menentukan struktur kovarian di GLM. Jika dengan "mengasumsikan tidak ada kovarians", Anda berarti "semua entri off-diagonal dalam matriks kovarians adalah nol", maka semua yang Anda lakukan hanyalah mengasumsikan satu struktur kovarians yang sangat spesifik. (Anda bisa lebih spesifik, misalnya, dengan mengasumsikan bahwa semua varian sama.)

Ini benar-benar variasi dari "Saya tidak berlangganan filsafat apa pun; saya seorang pragmatis." - "Anda baru saja menggambarkan filosofi tempat Anda berlangganan."

Dengan demikian, saya akan mengatakan bahwa keuntungan dari berpikir tentang struktur kovarian adalah kesempatan menggunakan model yang lebih sesuai dengan data Anda. Sama seperti Anda harus menyertakan hubungan fungsional yang diketahui untuk nilai yang diharapkan (atau rata-rata) dari pengamatan Anda, Anda harus memperhitungkan setiap struktur yang Anda tahu dalam kovarian.

Dan tentu saja, "kerugiannya" adalah Anda harus benar-benar memikirkan semua ini. Jauh lebih mudah untuk hanya menggunakan pengaturan default perangkat lunak Anda. Tapi ini seperti selalu mengemudi di gigi pertama karena mobil Anda di gigi pertama ketika Anda membelinya dan memahami perubahan gigi membutuhkan upaya. Tidak direkomendasikan.

Stephan Kolassa
sumber
2
+1 Saya setuju dengan setiap kata yang Anda tulis, tetapi saya rasa ini tidak sepenuhnya menjawab pertanyaan. Misalnya, apakah menentukan struktur kovarian yang lebih tepat mengurangi residu model?
Jack Tanner
1
@JackTanner: terima kasih! Dan Anda benar karena saya tidak sepenuhnya menjawab pertanyaan Anda, itulah sebabnya saya awalnya hanya memposting ini sebagai komentar. Sejujurnya: misalnya, saya tidak tahu apakah menentukan struktur kovarian yang benar akan mengurangi residu. Saya membayangkan bahwa memaksakan struktur tambahan pada residu (kovarians) bahkan dapat meningkatkannya - tetapi mungkin menghemat parameter. Pikirkan struktur AR (1) alih-alih matriks kovarians yang tidak terstruktur. Mirip dengan pertanyaan lain di pos Anda. Saya pasti akan tertarik pada pandangan orang lain tentang ini.
Stephan Kolassa
1
+1; Ini adalah jawaban yang berguna, apalagi perumpamaannya mengagumkan.
russellpierce
2

Berikut ini jawaban lain yang tidak lengkap yang bahkan tidak secara langsung tentang GLM ... Dalam pengalaman saya yang sangat terbatas dengan pemodelan persamaan struktural (SEM), saya telah mengambil beberapa ide yang saya harap dapat menambahkan sesuatu ke dalam diskusi. Harap diingat bahwa saya berbicara dari pengalaman (terbatas) dengan SEM, bukan GLM per se , dan saya cukup tidak tahu apakah dan di mana perbedaan ini menjadi penting. Saya lebih dari pengguna statistik daripada ahli statistik, jadi saya juga tidak yakin bahwa ide-ide ini akan berlaku untuk semua atau bahkan sebagian besar data; Saya hanya menemukan bahwa mereka telah menerapkan sebagian besar dari saya sendiri.

Pertama, saya akan mengulangi penekanan @ StephanKolassa pada pentingnya memodelkan apa yang sudah Anda ketahui. Anda mengakui hal ini sebagai tambahan, tetapi saya pikir manfaat yang Anda tanyakan adalah manfaat dari memodelkan apa yang Anda ketahui. Dengan demikian, mereka secara bermakna mencerminkan bahwa model yang Anda hasilkan memiliki informasi tentang struktur kovarian yang telah Anda tambahkan.

Di SEM , saya telah menemukan (melalui pengalaman yang terbatas, bukan melalui studi teoritis):

Manfaat

  1. Pemodelan struktur kovarians meningkatkan goodness of fit (GoF) jika kovarians jauh lebih kuat dari kesalahan standar (yaitu, jika jalur simetris signifikan). Ini berarti Anda biasanya tidak akan meningkatkan GoF dengan memodelkan korelasi mendekati nol, dan multikolinieritas dapat menyebabkan masalah bagi GoF karena itu mengembang kesalahan standar.

  2. Belum mencoba menahan data untuk memprediksi, tetapi intuisi saya adalah bahwa memperbaiki kovarian menjadi nol dalam model Anda adalah analog dengan memprediksi DV dengan menggabungkan satu set persamaan regresi linier tunggal, IV tunggal, terpisah. Tidak seperti pendekatan ini, regresi berganda memperhitungkan kovarians pada IV ketika memproduksi model persamaan untuk memprediksi DV. Ini tentu meningkatkan interpretabilitas dengan memisahkan efek langsung dari efek tidak langsung yang terjadi sepenuhnya dalam rangkaian IV yang dimasukkan. Jujur, saya tidak yakin apakah ini perlu meningkatkan prediksi DV. Menjadi pengguna statistik dan bukan ahli statistik, saya mengumpulkan fungsi pengujian simulasi berikut untuk memberikan jawaban yang tidak lengkap (tampaknya, "Ya, akurasi prediksi meningkat ketika model memasukkan kovarians IV") dalam kasus yang semoga analog ini ...

    simtestit=function(Sample.Size=100,Iterations=1000,IV.r=.3,DV.x.r=.4,DV.z.r=.4) {
    require(psych); output=matrix(NA,nrow=Iterations,ncol=6); for(i in 1:Iterations) {
    x=rnorm(Sample.Size); z=rnorm(Sample.Size)+x*IV.r
    y=rnorm(Sample.Size)+x*DV.x.r+z*DV.z.r
    y.predicted=x*lm(y~x+z)$coefficients[2]+z*lm(y~x+z)$coefficients[3]
    bizarro.y.predicted=x*lm(y~x)$coefficients[2]+z*lm(y~z)$coefficients[2]
    output[i,]=c(cor(y.predicted,y)^2,cor(bizarro.y.predicted,y)^2,
    cor(y.predicted,y)^2>cor(bizarro.y.predicted,y)^2,cor(x,z),cor(x,y),cor(y,z))}
    list(output=output,percent.of.predictions.improved=100*sum(output[,3])/Iterations,
    mean.improvement=fisherz2r(mean(fisherz(output[,1])-fisherz(output[,2]))))}
    
    # Wrapping the function in str( ) gives you the gist without filling your whole screen
    str(simtestit())
    

    Fungsi ini menghasilkan sampel acak (N= Iterations, n= Sample.Size) dari tiga variabel yang terdistribusi normal:z = x + kebisingan acak, dan y = x + z +kebisingan acak. Pengguna dapat memengaruhi korelasinya dengan mengesampingkan default untuk tiga argumen terakhir, tetapi noise acak juga memengaruhi korelasi sampel, jadi ini mensimulasikan cara kesalahan pengambilan sampel memengaruhi perkiraan parameter korelasi sebenarnya. Fungsi menghitung prediksi yberdasarkan koefisien regresi untuk xdan zberasal dari:

    (1) regresi berganda ( y.predicted), dan ...

    (2) dua regresi linier bivariat yang terpisah ( bizarro.y.predicted).

    The outputmatriks berisi Iterationsbaris dan enam kolom: yangR2s dari 1 dan 2, ujian benar-salah apakah 1>2, dan bivariat rs untuk tiga kombinasi unik dari x, y, & z. Fungsi ini menghasilkan daftar tiga elemen, yang pertama adalah outputmatriks. Secara default, ini adalah 1.000 baris panjang, jadi saya sarankan pembungkus simtestit()di str( )fungsi atau menghapus elemen ini dari daftar dalam fungsi itu sendiri kecuali Anda tertarik dalam statistik sampel individu untuk beberapa alasan. Persentase iterasi di manaR2 ditingkatkan dengan menggunakan (1) regresi berganda untuk menjelaskan kovarians IV, dan rata-rata peningkatan ini di seluruh iterasi (dalam skala r, menggunakan transformasi Fisher melalui psychpaket).

    Fungsi standar untuk tes sim pendek dari keadaan yang cukup khas untuk regresi berganda dasar maksimal. Ini memungkinkan pengguna untuk mengubah ukuran sampel individu dan korelasi variabel agar sesuai dengan penelitian dan teori sebelumnya tentang kekuatan hubungan. Saya belum menguji semua pengaturan yang mungkin, tetapi setiap kali saya menjalankan fungsinya, 100% iterasi telah menghasilkan lebih tinggiR2dengan regresi berganda. Peningkatan berarti diR2 tampaknya lebih besar ketika kovarians IV (yang dapat dimanipulasi tidak lengkap dengan memasukkan argumen untuk IV.r) lebih besar. Karena Anda mungkin lebih terbiasa dengan fungsi GLM Anda daripada saya (yang tidak sama sekali), Anda mungkin dapat mengubah fungsi ini atau menggunakan ide dasar untuk membandingkan prediksi GLM di betapapun banyaknya IV yang Anda inginkan tanpa terlalu banyak kesulitan. Anggap itu akan (atau memang) berubah dengan cara yang sama, akan tampak bahwa jawaban dasar untuk pertanyaan kedua Anda mungkin ya, tetapi seberapa besar tergantung pada seberapa kuat kovarium IV. Perbedaan dalam kesalahan pengambilan sampel antara data yang tersedia dan data yang digunakan agar sesuai dengan model dapat membanjiri peningkatan dalam akurasi prediktifnya dalam dataset yang terakhir, karena sekali lagi, peningkatan tampaknya kecil kecuali korelasi IV kuat (setidaknya, dalam kasus dasar maksimal dengan hanya dua infus).

  3. Menentukan jalur bebas untuk kovarian antara IV dalam model berarti meminta fungsi pemasangan model untuk memperkirakan koefisien jalur ini, yang mewakili tingkat kovarians antara IV. Jika fungsi GLM Anda memungkinkan Anda untuk menentukan model di mana kovarians antara IVs diperkirakan secara bebas daripada diperbaiki ke nol, maka masalah Anda adalah masalah yang mudah-mudahan sederhana untuk mencari tahu bagaimana melakukan ini dan bagaimana mendapatkan fungsi Anda untuk menghasilkan perkiraan itu. Jika fungsi Anda memperkirakan kovarian IV secara default, masalah Anda lebih menyederhanakan masalah yang terakhir (seperti halnya dengan lm( )).

Biaya

  1. Ya, dengan bebas memperkirakan kovarians antara IVs berarti algoritma pemasangan model harus melakukan beberapa pekerjaan untuk memperkirakan koefisien jalur itu. Tidak menentukan bahwa jalur dalam model biasanya berarti memperbaiki koefisien ke nol, yang berarti algoritma pemasangan model tidak perlu memperkirakan koefisien. Memperkirakan parameter kovarian tambahan berarti model keseluruhan akan membutuhkan lebih banyak waktu untuk menyesuaikan. Dalam model yang sudah lama diperkirakan, waktu tambahan bisa sangat besar, terutama jika Anda memiliki banyak infus.

  2. Ya, struktur kovarians yang diestimasi bebas menyiratkan estimasi parameter. Populasi memiliki parameter kovarian, jadi jika Anda memperkirakan kovarian populasi, Anda memperkirakan parameter. Namun, jika model Anda jauh lebih cocok karena Anda memilih untuk memperkirakan korelasi non-sepele daripada memperbaikinya menjadi nol, Anda mungkin dapat mengharapkan kriteria informasi Akaike dan Bayesian untuk meningkat, sama seperti kriteria lain yang menggabungkan GoF. Saya tidak terbiasa dengan kriteria informasi penyimpangan ( DIC yang Anda maksudkan, kan?), Tetapi jika dilihat dari halaman Wikipedia-nya , tampaknya juga memasukkan GoF dan penalti untuk kompleksitas model.

    Oleh karena itu GoF hanya perlu meningkatkan secara proporsional lebih dari peningkatan kompleksitas model untuk meningkatkan DIC. Jika ini tidak terjadi secara keseluruhan, kriteria seperti ini yang menghukum kompleksitas model akan memburuk saat Anda memperkirakan lebih banyak kovarian IV. Ini bisa menjadi masalah jika, misalnya, infus Anda tidak berkorelasi, tetapi struktur kovarians diperkirakan bebas karena Anda pikir infus mungkin berkorelasi, atau karena itulah pengaturan default fungsi Anda. Jika Anda memiliki alasan teoritis sebelumnya untuk menganggap korelasi adalah nol dan Anda tidak ingin model Anda menguji asumsi ini, ini adalah satu kasus di mana Anda mungkin dibenarkan dalam memperbaiki jalur ke nol. Jika teori Anda sebelumnya kira-kira benar,

Entah fungsi mana yang sedang Anda kerjakan, tapi sekali lagi, saya yakin saya tidak terbiasa dengan itu, jadi saya yakin jawaban ini dapat ditingkatkan, terutama jawaban saya untuk pertanyaan manfaat kedua (untuk satu hal, matematika bukti dari apa yang saya jawab dengan simulasi tentang regresi berganda mungkin tersedia di suatu tempat di luar sana). Saya bahkan tidak terbiasa dengan GLM secara umum (dengan asumsi maksud Anda digeneralisasi , bukan pemodelan linear umum, seperti yang disarankan tag), jadi saya harap seseorang akan mengomentari atau mengedit jawaban ini jika perbedaan dari SEM membatalkan jawaban saya untuk pertanyaan Anda. sama sekali.

Meskipun demikian, sepertinya kita sudah menunggu sepuluh bulan untuk para guru untuk berbicara, jadi jika ini tidak membuat mereka melakukannya, itu hanya harus dilakukan dengan sendirinya, saya kira. Beri tahu saya jika Anda memiliki fungsi GLM tertentu yang ingin Anda mainkan di R. Saya mungkin bisa mencari tahu bagaimana menjawab # 3 lebih langsung untuk aplikasi Anda jika Anda dapat menentukan fungsi GLM yang menarik di R. Saya bukan ahli dengan pengujian simulasi juga, tapi saya pikir empat pertanyaan Anda yang lain bisa diuji sim (lebih langsung) juga.

Nick Stauner
sumber
2
+1 An impressive thoughtful response. Welcome to CV, Nick!
whuber