
Terjemahan disiapkan untuk siswa dari kursus "Analisis Terapan pada R" .
Kami, sebagai ilmuwan data, sering diberikan satu set data dan diminta untuk menggunakannya untuk mendapatkan informasi. Kami menggunakan R untuk memproses, visualisasi, pemodelan, menyiapkan tabel dan grafik untuk membagikan hasil atau menerbitkannya. Jika kita melihat data dengan cara ini, maka tidak masalah dari mana data itu berasal. Ukuran sampel, serangkaian fitur, dan skalanya diperbaiki. Namun, prosedur yang digunakan untuk mengumpulkan atau menghasilkan data sangat penting untuk analisis di masa mendatang, serta untuk kualitas informasi yang akhirnya dapat kita peroleh. Proses pengumpulan data mempengaruhi bagaimana data harus dianalisis. Untuk studi yang mengukur sebab akibat, penting data mana yang harus diperhitungkan dan mana yang tidak.
Karena proses ini sangat penting, kami ingin membuat alat yang akan membantu para ilmuwan dan peneliti lain menyajikan (meniru) data mereka sebelum dikumpulkan, sehingga setiap perubahan dalam fase pengumpulan data dapat dilakukan sebelum terlambat.
Jika data sudah dikumpulkan, maka alat ini memungkinkan Anda untuk membayangkan data Anda sebelum menganalisisnya. Ketika kita membuat keputusan tentang pemrosesan data dan pemodelan berdasarkan hasil yang kita peroleh dari setiap operasi, atau menggunakan model statistik, kita secara tidak sadar rentan terhadap bias seperti "taman jalur yang berbeda" atau p-hacking , yang dapat mengarahkan kita untuk memilih prosedur analisis yang akan memberikan hasil terbaik. Kami menggunakan data aktual karena kami tidak memiliki alternatif yang baik: tidak ada data dengan struktur dan karakteristik yang sama yang telah kami kumpulkan.
Artikel ini memperkenalkan paket fabricatr (dari paket paket DeclareDesign ), yang berperan memodelkan struktur dan fitur data. Lihat ulasan DeclareDesign tentang RViews yang menjelaskan filosofinya. Fabricatr membantu Anda memikirkan data sebelum memulai analisis atau bahkan pengumpulan. Jenis data apa? Bagaimana mereka terstruktur? Pengukuran apa yang akan Anda ambil? Apa rentang mereka dan bagaimana mereka berkorelasi? fabricatr dapat membantu Anda mensimulasikan data dummy sebelum mengumpulkan data nyata dan menguji berbagai strategi penilaian tanpa perlu khawatir mengubah asumsi Anda.
Bayangkan struktur data Anda
Dalam kasus yang paling sederhana, fabricatr akan membuat struktur data tingkat tunggal dengan jumlah yang diberikan.
library(fabricatr) fabricate(N = 100, temp_fahrenheit = rnorm(N, mean = 80, sd = 20)) ## Warning: `is_lang()` is deprecated as of rlang 0.2.0. ## Please use `is_call()` instead. ## This warning is displayed once per session. ## Warning: `lang_name()` is deprecated as of rlang 0.2.0. ## Please use `call_name()` instead. ## This warning is displayed once per session.
Data sosiologis seringkali hierarkis . Misalnya, di sekolah ada kelas, di kelas ada siswa. Menggunakan perintah add_level, fabricatr akan menyelesaikan masalah ini juga. Secara default, level baru bersarang di level yang lebih tinggi.
library(fabricatr) fabricate( # five schools school = add_level(N = 5, n_classrooms = sample(10:15, N, replace = TRUE)), # 10 to 15 classrooms per school classroom = add_level(N = n_classrooms), # 15 students per classroom student = add_level(N = 15) ) ## Warning: `lang_modify()` is deprecated as of rlang 0.2.0. ## Please use `call_modify()` instead. ## This warning is displayed once per session.
Di dunia nyata, hierarki yang tidak menentu dan tumpang tindih sering muncul. Misalnya, data siswa dapat diperoleh dari sekolah menengah maupun dari sekolah menengah. Dalam hal ini, para siswa akan berada di dua sekolah yang berbeda dan sekolah-sekolah ini tidak akan terhubung satu sama lain. Di bawah ini adalah contoh bagaimana membuat data "silang" tersebut. Parameter rho menentukan berapa banyak primary_rank dan second_rank harus berkorelasi.
dat <- fabricate( primary_schools = add_level(N = 5, primary_rank = 1:N), secondary_schools = add_level(N = 6, secondary_rank = 1:N, nest = FALSE), students = link_levels(N = 15, by = join(primary_rank, secondary_rank, rho = 0.9)) ) ## `link_levels()` calls are faster if the `mvnfast` package is installed. ggplot(dat, aes(primary_rank, secondary_rank)) + geom_point(position = position_jitter(width = 0.1, height = 0.1), alpha = 0.5) + theme_bw()

Demikian pula, Anda dapat menghasilkan data longitudinal melalui cross_levels :
fabricate( students = add_level(N = 2), years = add_level(N = 20, year = 1981:2000, nest = FALSE), student_year = cross_levels(by = join(students, years)) )
Bayangkan tanda-tanda Anda
R memiliki banyak alat pemodelan fitur yang hebat. Namun, dalam beberapa kasus, tipe variabel yang biasa sangat sulit untuk dimodelkan. Fabricatr memiliki sejumlah kecil fungsi dengan sintaksis sederhana untuk membuat atribut dengan tipe yang umum digunakan. Di sini kita menggambarkan dua contoh, sisanya ada di artikel .
Atribut dengan Korelasi Intraclass
Dengan menggunakan alat yang dijelaskan di atas, Anda dapat membuat data yang memiliki variasi intra-blok dan antar-blok, misalnya, variasi ruang kelas dan variasi di antara ruang kelas. Dalam banyak kasus, perlu untuk lebih akurat menetapkan tingkat korelasi intra-kelas (ICC). Di sini draw_normal_icc dan draw_binary_icc akan membantu.
dat <- fabricate( N = 1000, clusters = sample(LETTERS, N, replace = TRUE), Y1 = draw_normal_icc(clusters = clusters, ICC = .2), Y2 = draw_binary_icc(clusters = clusters, ICC = .2) ) ICC::ICCbare(clusters, Y1, dat) ## [1] 0.09726701 ICC::ICCbare(clusters, Y2, dat) ## [1] 0.176036
Hasil Pemesanan
Kami juga memiliki alat untuk variabel acak diskrit (termasuk hasil yang dipesan). Kami mengambil variabel laten (mis. Test_ability ) dan mengonversinya menjadi atribut yang diurutkan ( test_score ).
dat <- fabricate( N = 100, test_ability = rnorm(N), test_score = draw_ordered(test_ability, breaks = c(-.5, 0, .5)) ) ggplot(dat, aes(test_ability, test_score)) + geom_point() + theme_bw()

fabricatr kompatibel dengan hampir semua fungsi pembuatan variabel R. Pada artikel ini, kami telah menjelaskan beberapa paket R yang mengagumkan yang membantu meniru atribut terkait sosiologi.
Ke mana harus pergi selanjutnya
Artikel ini adalah ikhtisar tingkat tinggi dari fungsionalitas fabricatr . Untuk melihat lebih dalam, lihat artikel Memulai dengan fabricatr .
Anda dapat menginstal fabricatr melalui CRAN:
install.packages("fabricatr") library(fabricatr)
Punya pertanyaan? Tulis di komentar!