Analisis Item untuk pemula R

12

Saya mencoba untuk menilai tes pilihan multi-item 20-item. Saya ingin melakukan analisis item seperti dapat ditemukan dalam contoh ini . Jadi untuk setiap pertanyaan saya ingin nilai-P dan korelasi dengan total, dan distribusi opsi yang dipilih.

Saya tidak tahu apa-apa tentang berbagai paket perangkat lunak statistik di luar sana, tetapi saya ingin menggunakan R karena saya nyaman dengan pemrograman dan R adalah open source. Pseudo-workflow yang saya bayangkan adalah:

  1. menyiapkan data dalam excel dan ekspor ke CSV

  2. memuat data dalam R

  3. memuat paket yang melakukan apa yang saya butuhkan

  4. jalankan perintah paket itu

  5. ekspor dan laporkan.

Saya yakin dengan 1 dan 2 tetapi mengalami masalah dengan 3, mungkin karena saya tidak memiliki kosa kata statistik untuk membandingkan paket yang saya telusuri di CRAN. ltmSepertinya itu bisa menjadi paket yang tepat tetapi saya tidak tahu. Paket apa pun yang digunakan, apa perintahnya?

Pertanyaan sampingan: pada contoh terkait, menurut Anda apa singkatan MC dan MI?

Matthew Leingang
sumber

Jawaban:

11

Saya dapat menyarankan Anda setidaknya dua paket yang memungkinkan untuk melakukan tugas-tugas ini: psych ( score.items) dan ltm ( descript). The CTT paket sepertinya juga untuk proses MCQ tapi saya tidak punya pengalaman dengan itu. Informasi lebih lanjut dapat ditemukan di situs web W Revelle, The Personality Project , esp. halaman yang didedikasikan untuk psikometrik dengan R yang menyediakan petunjuk langkah demi langkah untuk mengimpor, menganalisis, dan melaporkan data. Juga, Tampilan Tugas CRAN tentang Psikometri mencakup banyak sumber daya tambahan.

Seperti dijelaskan dalam tautan Anda, MC adalah singkatan dari "Rata-rata total skor mentah dari orang-orang yang menjawab item dengan respons yang benar", dan MI untuk "Rata-rata total skor orang-orang yang tidak menjawab item dengan respons yang benar.". Korelasi titik-biserial (R (IT)) juga tersedia dalam ltmpaket ( biserial.cor). Ini pada dasarnya merupakan indikator kekuatan diskriminasi item (karena itu adalah korelasi item dan skor total), dan terkait dengan parameter diskriminasi model 2-PL IRT atau pemuatan faktor dalam Analisis Faktor.

Jika Anda benar-benar ingin mereproduksi tabel yang Anda tampilkan, saya kira Anda harus membungkus beberapa kode ini dengan kode khusus, setidaknya untuk menghasilkan jenis tabel yang sama. Saya telah membuat contoh cepat dan kotor yang mereproduksi meja Anda:

dat <- replicate(10, sample(LETTERS[1:4], 100, rep=TRUE))
dat[3,2] <- dat[67,5] <- NA
itan(dat)

         P      R    MC    MI NC OMIT  A  B  C  D
 [1,] 0.23 -0.222 2.870 2.169 23    0 23 22 32 23
 [2,] 0.32 -0.378 3.062 1.985 32    1 32 20 14 33
 [3,] 0.18 -0.197 2.889 2.207 18    0 18 33 22 27
 [4,] 0.33 -0.467 3.212 1.896 33    0 33 18 29 20
 [5,] 0.27 -0.355 3.111 2.056 27    1 27 23 23 26
 [6,] 0.17 -0.269 3.118 2.169 17    0 17 25 25 33
 [7,] 0.21 -0.260 3.000 2.152 21    0 21 24 25 30
 [8,] 0.24 -0.337 3.125 2.079 24    0 24 32 22 22
 [9,] 0.13 -0.218 3.077 2.218 13    0 13 29 33 25
[10,] 0.25 -0.379 3.200 2.040 25    0 25 25 31 19

Karena ini adalah respons acak, korelasi biserial dan kesulitan item tidak terlalu berarti (kecuali untuk memeriksa bahwa data benar-benar acak :). Juga, perlu memeriksa kemungkinan kesalahan, karena saya membuat konsep fungsi R dalam 10 '...

chl
sumber
1
Terima kasih untuk ini! Saya membaca kode Anda dan itu membantu saya mengetahui sintaks R banyak. Satu hal yang membuat saya kesulitan adalah garis freq.resp <- raw.resp/apply(raw.resp, 1, sum, na.rm=T). Kesalahannya adalah "redup (X) harus memiliki panjang positif" sedangkan redup (raw.resp) adalah NULL. Mungkinkah karena data saya tidak memiliki semua opsi dengan frekuensi positif, tabel saya tidak semua sama panjang? Bagaimana saya bisa mengisi nol dalam tabledoa saya ?
Matthew Leingang
@ Matius Ya, sangat mungkin bahwa ini memang sumber masalahnya (well, Anda belajar R dengan cepat, saya hargai). Jadi, jika satu kategori respons tidak diamati untuk satu atau lebih item, maka panjang tabel akan <4, dan freq.respakan menimbulkan kesalahan. Saya akan memperbaiki kode (besok), ini juga akan menunjukkan kepada Anda bagaimana menggabungkan tabel tidak teratur dengan sedikit kode.
chl
@ Matius, saya telah menambahkan perbaikan. Harus bekerja dengan barang dikotomis juga. Beri tahu saya jika ini sekarang ok. gist.github.com/642219
chl
Terima kasih banyak telah memegang tangan saya. Fungsi Anda memberi saya kesalahan: "Kesalahan pada raw.resp [i, names (tmp)] <- tmp: subskrip di luar batas", tetapi anehnya, saya dapat menjalankan setiap baris fungsi tanpa masalah. Jadi saya punya laporan kerja.
Matthew Leingang
Saya telah menerapkan kode ini, dan saya pikir semua tanda pada baris R (korelasi titik biserial) dapat dibalik.
user1205901
8

Fungsi paket psik alpha menghasilkan apa yang Anda cari.

Untuk mengekspor ini, simpan objek dan gunakan fungsi xtable untuk menghasilkan markup LaTeX, yang kemudian dapat diformat oleh editor LaTeX.

richiemorrisroe
sumber
1
(+1) psych::alphamelakukan pekerjaan yang lebih baik daripada score.items, terima kasih telah menambahkan itu. Saya tidak pernah ingat yang harus saya gunakan!
chl