Bahasa r wiki. Bahasa pemrograman R dan tempatnya di antara program statistik

Pemrograman pada R. Level 1. Dasar-dasar

Bahasa R adalah alat analisis data statistik paling populer di dunia. Ini berisi berbagai kemampuan untuk menganalisis data, memvisualisasikannya, dan membuat dokumen dan aplikasi web. Ingin menguasai bahasa yang ampuh ini dengan bimbingan mentor berpengalaman? Kami mengundang Anda ke kursus "Pemrograman dalam bahasa R. Level 1. Pengetahuan dasar".

Kursus ini ditujukan untuk berbagai spesialis yang perlu mencari pola dalam data dalam jumlah besar, memvisualisasikannya, dan membangun kesimpulan yang benar secara statistik: sosiolog, manajer uji klinis/farmakolog, peneliti (astronomi, fisika, biologi, genetika, kedokteran, dll.), analis TI, analis bisnis, analis keuangan, pemasar. Kursus ini juga akan menarik bagi para spesialis yang merasa tidak nyaman dengan fungsi (atau biaya) / .

Selama kelas, Anda akan memperoleh keterampilan dasar dalam analisis data dan visualisasi di lingkungan R. Sebagian besar waktunya dikhususkan untuk tugas-tugas praktis dan bekerja dengan kumpulan data nyata. Anda akan mempelajari semua alat baru untuk bekerja dengan data dan mempelajari cara menerapkannya dalam pekerjaan Anda.

Setelah kursus, sertifikat pelatihan lanjutan dari pusat tersebut dikeluarkan.

Banyak contoh dan artikel di situs ini yang aktif menggunakan bahasa pemrograman “R”.

R untuk Linux biasanya dapat diinstal menggunakan repositori distribusi Anda. Saya menggunakan distribusi berbasis Debian, di mana perintah standar untuk menginstal R terlihat seperti ini:

Sudo tepat instal r-base

Anda perlu mengetikkan ini di terminal.

Keindahan R adalah ini:

  1. Program ini gratis (didistribusikan di bawah lisensi GPL),
  2. Banyak paket telah ditulis untuk program ini untuk memecahkan berbagai masalah. Semuanya juga gratis.
  3. Program ini sangat fleksibel: ukuran vektor dan matriks apa pun dapat diubah sesuai permintaan pengguna, data tidak memiliki struktur yang kaku. Properti ini ternyata sangat berguna dalam hal peramalan, ketika peneliti perlu memberikan perkiraan untuk periode tertentu.

Properti terakhir ini sangat relevan karena paket statistik lainnya (seperti SPSS, Eviews, Stata) berasumsi bahwa kita mungkin hanya tertarik untuk menganalisis data yang memiliki struktur tetap (misalnya, semua data dalam file kerja harus memiliki periodisitas yang sama. dengan tanggal mulai dan akhir yang sama).

Namun, R bukanlah program yang paling ramah. Saat bekerja dengannya, lupakan mouse - hampir semua tindakan terpenting di dalamnya dilakukan menggunakan baris perintah. Namun, untuk membuat hidup lebih mudah, dan program itu sendiri lebih ramah, ada program frontend yang disebut RStudio. Anda dapat mengunduhnya dari sini. Itu diinstal setelah R itu sendiri diinstal.RStudio memiliki banyak alat yang mudah digunakan dan antarmuka yang bagus, namun analisis dan perkiraan di dalamnya masih dilakukan menggunakan baris perintah.

Mari kita coba melihat program luar biasa ini.

Mengenal RStudio

Antarmuka RStudio terlihat seperti ini:

Di sudut kanan atas RStudio, nama proyek ditunjukkan (yang saat ini kami memiliki "Tidak Ada" - artinya, tidak ada). Jika kita mengklik tulisan ini dan memilih “Proyek Baru” (proyek baru), kita akan diminta untuk membuat proyek. Untuk tujuan perkiraan dasar, cukup pilih “Direktori Baru” (folder baru untuk proyek), “Proyek Kosong” (proyek kosong), lalu masukkan nama proyek dan pilih direktori untuk menyimpannya. Gunakan imajinasi Anda dan coba buat nama sendiri :).

Saat bekerja dengan satu proyek, Anda selalu dapat mengakses data, perintah, dan skrip yang tersimpan di dalamnya.

Di sisi kiri jendela RStudio adalah konsol. Di sinilah kita akan memasukkan berbagai perintah. Sebagai contoh, mari kita tuliskan yang berikut ini:

Perintah ini akan menghasilkan 100 variabel acak dari distribusi normal dengan ekspektasi nol dan varian satuan, kemudian membuat vektor bernama "x" dan menulis 100 nilai yang dihasilkan ke dalamnya. Simbol "<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->”, meskipun variabel kita dalam hal ini harusnya berada di sebelah kanan. Misalnya, kode berikut akan membuat objek "y" yang benar-benar identik dengan objek "x":

Vektor-vektor ini sekarang muncul di bagian kanan atas layar, di bawah tab, yang saya beri judul “Lingkungan”:

Perubahan di tab "Lingkungan".

Bagian layar ini akan menampilkan semua objek yang kita simpan selama sesi. Misalnya kita membuat matriks seperti ini:

\(A = \mulai(pmatrix) 1 & 1 \\ 0 & 1 \end(pmatrix) \)

dengan perintah ini:

maka akan muncul di tab “Lingkungan”:

Fungsi apa pun yang kita gunakan mengharuskan kita untuk menetapkan beberapa nilai ke parameter tertentu. Fungsi matriks() memiliki parameter berikut:

  • data – vektor dengan data yang harus ditulis ke matriks,
  • sekarang – jumlah baris dalam matriks,
  • ncol – jumlah kolom dalam matriks,
  • byrow - parameter logis. Jika “BENAR” (benar), maka matriks akan terisi baris demi baris (dari kiri ke kanan, baris demi baris). Secara default, parameter ini disetel ke FALSE.
  • dimnames - lembar dengan nama baris dan kolom.

Beberapa parameter ini memiliki nilai default (misalnya, byrow=FALSE ), sementara parameter lainnya dapat dihilangkan (misalnya, dimnames ).

Salah satu trik “R” adalah fungsi apa pun (misalnya, matriks() kita) dapat diakses dengan menentukan nilai secara langsung:

Atau Anda dapat melakukannya seperti yang kita lakukan sebelumnya - mengamati urutan dan menghilangkan nama parameter.

Untuk melihat konten objek apa pun yang terletak di tab “Lingkungan”, cukup cetak namanya di konsol:

Pilihan lainnya adalah mengklik nama objek di tab "Lingkungan".

dimana matriks adalah nama fungsi yang kita minati. Dalam hal ini, RStudio akan membuka panel “Bantuan” khusus untuk Anda dengan penjelasan:

Anda juga dapat menemukan bantuan mengenai suatu fungsi dengan mengetikkan nama fungsi tersebut di jendela “pencarian” (ikon dengan lensa) di tab “Bantuan”.

Jika Anda tidak ingat persis bagaimana menulis nama suatu fungsi atau parameter apa yang digunakan di dalamnya, mulailah menulis namanya di konsol dan tekan tombol “Tab”:

Selain semua ini, Anda dapat menulis skrip di RStudio. Anda mungkin memerlukannya jika Anda perlu menulis program atau memanggil serangkaian fungsi. Skrip dibuat menggunakan tombol dengan tanda plus di sudut kiri atas (Anda harus memilih "R Script" di menu drop-down). Di jendela yang terbuka setelah ini, Anda dapat menulis fungsi dan komentar apa pun. Misalnya, jika kita ingin membuat grafik garis pada deret x, kita dapat melakukannya seperti ini:

Plot(x) garis(x)

Fungsi pertama membuat plot sebar sederhana, dan fungsi kedua menambahkan garis di atas titik-titik yang menghubungkan titik-titik secara seri. Jika Anda memilih kedua perintah ini dan menekan “Ctrl+Enter”, keduanya akan dijalankan, menyebabkan RStudio membuka tab “Plot” di sudut kanan bawah dan menampilkan plot yang diplot di dalamnya.

Jika kedepannya kita masih membutuhkan semua perintah yang diketik, maka script ini dapat disimpan (floppy disk di pojok kiri atas).

Jika Anda perlu merujuk ke perintah yang telah Anda ketikkan di masa lalu, ada tab “Riwayat” di kanan atas layar. Di dalamnya Anda dapat menemukan dan memilih perintah apa pun yang Anda minati dan klik dua kali untuk menempelkannya ke konsol. Di konsol itu sendiri, Anda dapat mengakses perintah sebelumnya menggunakan tombol Atas dan Bawah pada keyboard Anda. Kombinasi tombol “Ctrl+Up” memungkinkan Anda menampilkan daftar semua perintah terbaru di konsol.

Secara umum, RStudio memiliki banyak pintasan keyboard berguna yang membuat bekerja dengan program ini menjadi lebih mudah. Anda dapat membaca lebih lanjut tentang mereka.

Seperti yang saya sebutkan sebelumnya, ada banyak paket untuk R. Semuanya terletak di server CRAN dan untuk menginstalnya Anda perlu mengetahui namanya. Instalasi dan pembaruan paket dilakukan menggunakan tab “Paket”. Dengan masuk ke dalamnya dan mengklik tombol “Instal”, kita akan melihat menu seperti berikut:

Mari kita ketik di jendela yang terbuka: perkiraan adalah paket yang ditulis oleh Rob J. Hyndman, berisi banyak fungsi yang berguna bagi kita. Klik tombol "Instal", setelah itu paket "perkiraan" akan diinstal.

Alternatifnya, kita dapat menginstal paket apa pun, mengetahui namanya, menggunakan perintah di konsol:

Instal.paket("halus")

asalkan, tentu saja, ada di repositori CRAN. smooth adalah paket yang fungsinya saya kembangkan dan pelihara.

Beberapa paket hanya tersedia dalam kode sumber di situs seperti github.com dan mengharuskan paket tersebut dibuat terlebih dahulu. Untuk membangun paket di Windows, Anda mungkin memerlukan program Rtools.

Untuk menggunakan paket apa pun yang terinstal, Anda harus mengaktifkannya. Untuk melakukan ini, Anda perlu menemukannya di daftar dan mencentangnya, atau gunakan perintah di konsol:

Perpustakaan (perkiraan)

Satu masalah yang tidak menyenangkan mungkin muncul di Windows: beberapa paket mudah diunduh dan dirakit, tetapi tidak diinstal dengan cara apa pun. R dalam hal ini menulis sesuatu seperti: "Peringatan: tidak dapat memindahkan instalasi sementara...". Yang perlu Anda lakukan dalam hal ini adalah menambahkan folder dengan R ke pengecualian di antivirus Anda (atau mematikannya saat menginstal paket).

Setelah mengunduh paket, semua fungsi yang disertakan di dalamnya akan tersedia untuk kami. Misalnya fungsi tsdisplay() yang dapat digunakan seperti ini:

Tampilan(x)

Dia akan membuatkan kita tiga grafik, yang akan kita bahas di bab “Perangkat Peramal”.

Selain paket ramalan, saya cukup sering menggunakan paket Mcomp untuk berbagai contoh. Ini berisi seri data dari database M-Competition. Oleh karena itu, saya menyarankan Anda menginstalnya juga.

Seringkali kita tidak hanya membutuhkan kumpulan data, tetapi juga data kelas “ts” (deret waktu). Untuk membuat deret waktu dari variabel apa pun, Anda perlu menjalankan perintah berikut:

Di sini parameter awal memungkinkan kita menentukan tanggal dimulainya rangkaian waktu, dan frekuensi menentukan frekuensi data. Angka 12 pada contoh kita menunjukkan bahwa kita berurusan dengan data bulanan. Sebagai hasil dari menjalankan perintah ini, kami mengubah vektor “x” kami menjadi rangkaian waktu data bulanan yang dimulai dari Januari 1984.

Ini adalah elemen dasar R dan RStudio yang kita perlukan.

PPS Panduan yang cukup bagus untuk R dipublikasikan di situs QSAR4U oleh Pavel Polishchuk.

PPPS Banyak informasi tentang R yang disajikan di situs resminya.

Pekerjaan mandiri

Berikut beberapa tugas yang harus Anda lakukan sendiri di R. Jalankan perintah berikut, lihat apa yang terjadi dan coba pahami mengapa ini terjadi:

(41/3 + 78/4)*2 2^3+4 1/0 0/0 maks(1,min(-2.5),maks(2,pi)) kuadrat(3^2+4^2 ) exp (2)+3i log(1024) log(1024, basis=2) c(1:3) c(1:5)*2 + 4 x

]. "Proletar yang melakukan kerja mental." Fisikawan berdasarkan pendidikan. Saya telah bekerja di bidang pemrosesan informasi medis dan biologis selama lebih dari 30 tahun.
Saya telah bekerja di R selama tepat 10 tahun, bermigrasi ke sana setelah 15 tahun berkolaborasi erat dengan Matlab. Alasan utama untuk bermigrasi ke platform kerja lain adalah migrasi fisik saya ke belahan dunia lain, yaitu Auckland, Selandia Baru. Di sini kehidupan sejak hari-hari pertama mendorong saya ke pelukan R, yang belum saya sesali.

Semakin sering saya melihat wabah minat terhadap R di jaringan profesional. Nah, artikel tentang dia muncul di sumber yang dihormati ini. Lebih jauh di bawah ini adalah upaya pertama saya dalam pengenalan bahasa Rusia ke R - bagian pertama (verbal) dari presentasi yang saya lakukan untuk rekan-rekan dari Fakultas Ilmu Peternakan, Universitas Negeri Iova tiga tahun lalu.
(ke samping: tapi ternyata susah menerjemahkannya sendiri..)


Di postingan ini

  • Apa itu R?
  • Dari mana dia datang
  • Mengapa aku mencintainya
  • Mitos dan kebenaran

Apa yang terjadi R

Pertama R adalah sistem perhitungan statistik dan ilmiah lainnya dengan menggunakan bahasa pemrograman S .

S- bahasa tertulis oleh ahli statistik untuk ahli statistik. seperti yang didefinisikan oleh penulis John Chambers. Bahasa ini telah diterima dengan baik sejak diperkenalkan dan telah diuji oleh generasi pengguna statistik yang sangat teliti. Dapat dianggap cukup dikenal dan diterima secara luas di komunitas statistik global. Di lidah S Sejumlah model epidemiologi, lingkungan, dan keuangan yang penting telah diterapkan dan masih diterapkan di seluruh dunia dan di banyak industri. Bagaimana bahasanya dari sudut pandang saya, sebagai “pengguna tulisan”, S adalah alternatif bahasa yang sangat menyenangkan SAS .

Dari pengalaman saya sendiri - Pendahuluan dan pelajaran pertama S Saya sendiri menerimanya pada awal tahun 90an dari pakar statistik WHO yang bersinggungan dengan saya dalam penelitian ilmiah saat itu.

Menurut banyak perkiraan, R (baik bagi saya dan tidak berlebihan) adalah salah satu proyek open source paling sukses, didistribusikan secara gratis dari lusinan mirror di seluruh dunia sesuai dengan standar lisensi GNU.
Penulis dengan tegas menolak semua proposal untuk mengkomersialkan proyek tersebut, meskipun saat ini ada alasan untuk berasumsi bahwa jumlah salinan R yang terinstal di dunia melebihi jumlah total salinan. setiap orang sistem analisis statistik lainnya.

Sejak awal hingga hari ini, proyek ini membangkitkan rasa hormat saya yang terdalam (di ambang kekaguman) terhadap stabilitas, dukungan pengguna, kompatibilitas kode, dll., yang akan saya gabungkan dalam konsep ini. budaya.
Namun, kalimat terakhir lebih ditujukan untuk subbagian selanjutnya.

Dari mana asalnya? S dan apa hubungannya dengan R

Tidak diragukan lagi, Wikipedia akan memberi Anda lebih banyak surat.
Saya hanya akan mencatat apa yang saya anggap penting untuk memahami tempat S dan R dalam kehidupan di dunia ini.

Bell Laboratories (alias Bell Labs, AT&T Bell Labatories) cukup terkenal dalam sejarah ilmu pengetahuan dan teknologi, dan IT pada khususnya. Penelitian statistik di sana selalu dilakukan dengan sangat serius dan juga didukung secara serius oleh semua perangkat komputer yang tersedia (baca - banyak sekali kode Fortran dan Lisp).

Bahasa yang kemudian menjadi bahasa S berasal dari tahun 1970-an, atas inisiatif dan arahan John Chambers, sebagai seperangkat skrip yang mempermudah “memasukkan” data ke kode Fortran. Itu. Fokus utamanya adalah pada tugas manipulasi data interaktif, kekompakan, kemudahan penulisan dan keterbacaan kode serta memperoleh keluaran yang layak pada berbagai perangkat, tabel, dan grafik.

Sintaks bahasa ini menyediakan konstruksi struktur data kompleks yang hampir sewenang-wenang, alat untuk mendeskripsikan tugas dan objek statistik tertentu - statistik. tes, model, dll.

Sejak tahun 1984, bahasa tersebut telah memperoleh namanya sendiri, “Alkitab” (sebuah buku karya Chambers dan Beckers diterbitkan: S: Lingkungan Interaktif untuk Analisis Data dan Grafik), mulai memuat secara default “kumpulan pria” statistik dan “ilmuwan probabilistik” yang hampir lengkap - distribusi, penghasil bilangan acak, uji statistik, banyak analisis statistik standar, bekerja dengan matriks, dll., belum lagi sistem yang dikembangkan grafik ilmiah. Yang paling penting adalah ini tersedia untuk pengguna di seluruh dunia dengan harga yang sangat wajar.

Pada tahun 1988 (buku lain diterbitkan Bahasa S Baru) - dimodifikasi menggunakan OOP, semuanya menjadi objek dengan nilai default yang sangat masuk akal, aksesibilitas untuk modifikasi, elemen dokumentasi mandiri, dll., dll.

Pada saat yang sama, laboratorium menerbitkan kode sumber dan “Bell Lab” S menjadi gratis untuk siswa dan untuk penggunaan ilmiah. Ini semua ada hubungannya dengan “dekulakisasi” AT&T, tetapi saya tidak lagi tertarik dengan detail ini.

Ada, dan mungkin masih ada, implementasi komersial dari bahasa tersebut S. saya menemukan S-Plus Dan S2000. Mereka didukung oleh perusahaan yang berbeda pada waktu yang berbeda, terutama yang hidup (hidup?) karena dukungan yang dibuat sebelumnya S aplikasi. Dalam versi pasca-Bell ini S versi baru dari mesin OOP muncul, tetapi bagi pengguna murni itu hampir tidak berdarah dalam hal kompatibilitas kode historis.

R- satu-satunya implementasi bahasa non-komersial, sepenuhnya independen (dari Bell asli). S.

Dan dalam kesepakatan yang jarang terjadi saat ini, dalam beberapa hal yang tidak terbayangkan oleh saya, para pengembang versi komersial saat ini S dan nirlaba R mendukung kompatibilitas dan kontinuitasnya yang hampir lengkap.

Dan sekarang R

Di balik setiap fenomena penting dalam kehidupan ini terdapat semacam kepribadian karismatik. Namun, hal ini bisa saja terjadi dan inilah definisi dari signifikansi fenomena tersebut.

Dalam kasus R, ada tiga orang seperti itu.
Saya sudah menyebutkan John Chambers.

Ross Ihaka, seorang mahasiswa dan kemudian peneliti di Departemen Statistika Universitas Auckland, memilih topik disertasinya (yang dilakukan di MIT, AS) untuk mempelajari kemungkinan membangun mesin virtual (VM) untuk statistik bahasa pemrograman. Bahasa perantara yang dipilih adalah Pelat (Cadel Umum, CL) dan mengimplementasikan prototipe VM yang “memahami” sebagian kecil dari SAS Dan S.
Ross kembali ke Oakland untuk menyelesaikan disertasinya, di mana dia segera bertemu Robert Gentleman dan menjadi tertarik dengan proyek R.
Ross tidak pernah mempertahankan disertasinya, namun sudah memiliki gelar akademis dari beberapa universitas “berdasarkan prestasi gabungan.” Tahun lalu ia dianugerahi gelar tersebut dan menerima posisi Associate Professor (Asisten Profesor) di universitas asalnya.

Robert Gentleman, ahli statistik lain yang memiliki minat terhadap pemrograman, berasal dari Kanada, saat magang di Universitas Auckland (saat itu ia bekerja di Australia), menyarankan agar Ross “menulis beberapa bahasa.”
Menurut legenda yang saya sendiri dengar dari para “founding fathers” ini, hanya dalam waktu hampir sebulan mereka, dengan semangat yang gila-gilaan, menulis ulang C.L. hampir semua tim S, termasuk perpustakaan pemodelan linier yang kuat.

Mesin komputasi R, mengikuti tradisi prototipe, perpustakaan BLAS yang terkenal, diterima secara umum dan gratis dipilih (dengan kemampuan untuk menggunakan ATLAS, dll. dengan antarmuka yang sama).
Paul Murrel, salah satu teman terdekat Ross dan juga karyawan Universitas Oakland, berusaha keras dan menulis (tampaknya dalam C) sebuah mesin grafis dari awal yang sepenuhnya mereproduksi fungsi itu di S.

Hasilnya adalah paket gratis dan berfungsi penuh yang langsung mendapat tempat dalam proses pendidikan di Universitas Oakland, sepenuhnya konsisten dengan deskripsi dalam buku Chambers yang sangat rinci dan berkualitas tinggi, yang biasanya diterbitkan dalam sampul tipis dan kualitas cetak rata-rata, tetapi murah dan mudah diakses.
Beberapa kelompok aktivis gerakan GNU (misalnya GIS) telah mengadopsi R sebagai platform untuk komputasi ilmiah.

Tapi benar-benar ketenaran yang terluas R diperoleh dalam bioinformatika ketika salah satu "bapak" Robert Gentleman, yang pada waktu itu terlibat dalam pekerjaan perusahaan Affimmetrix, menduplikasi semua fungsi perangkat lunak komersial perusahaan dan meluncurkan (tentu saja lebih dari satu) perangkat lunak terbuka proyek sumber Biokonduktor. Saat ini Biokonduktor adalah pemimpin yang tak terbantahkan dalam bioinformatika open source untuk semua “omics” (genomik, proteomik, metabolomik, dll.).

Tentu saja, bahasa antarmuka tunggal untuk kerusuhan fantasi bioinformatika ini telah menjadi R.

Lingkaran itu menjadi lingkaran penuh ketika Chambers pensiun, pencipta bahasa tersebut S, menjadi anggota penuh grup pengembang aktif R.

Mengapa aku mencintainya (daftar)

  1. Interaktivitas, “Pemrograman dengan data” - gaya kerja favorit saya
  2. Bahasa yang elegan (untuk amatir) - Saya suka daftar, bingkai data, pemrograman fungsional, dan fungsi lambda (a-la) Kebebasan berekspresi: masalah yang sama dapat diselesaikan dengan sepuluh cara (mengurangi perasaan rutin)
  3. “Melihat dunia ini dengan bijaksana” - jarang “macet” atau “menangguhkan” siapa pun, operasi logis dengan data yang hilang, penanganan kesalahan saat runtime (coba-salah), pertukaran mudah dengan sistem pada tingkat I/O standar, dll.
  4. Satu set lengkap prosedur statistik siap pakai
  5. Didokumentasikan dengan baik dan dipelihara dengan baik - kompatibilitas, kontinuitas, dll.
  6. Berkumpul di sekitar saya komunitas profesional yang menyenangkan secara manusiawi (forum, konferensi pengguna, dll.)
  7. Antarmuka yang terdokumentasi dengan baik untuk perpustakaan eksternal dan fungsi apa pun - Fortran, C, Java. Oleh karena itu terdapat lautan perpustakaan yang terdokumentasi dengan baik tentang semua aspek statistik dan ilmu data di hampir setiap bidang ilmu pengetahuan, tetapi dengan fokus utama pada bioinformatika/biostatistik; semuanya diupdate secara berkala dan benar, jika ada kemauan penulisnya
  8. Kurangnya GUI wajib dalam "konfigurasi dasar" - Ya, saya bukan orang "tikus"!
Keluar dari daftar: Saya senang alat kerja utama saya memiliki... jiwa.
Itulah yang sebenarnya ingin saya tunjukkan dalam artikel saya.

Mengapa dan bagaimana saya menggunakannya (contoh)

Saya mulai menulis di bagian ini, tetapi berhenti.
Kalau tidak, saya tidak akan pernah selesai.
Oh, mungkin suatu saat nanti.

Mitos dan kebenaran

R lambat
R itu "tipis", menggunakan perpustakaan blas/lapack/atlas untuk perhitungan, cobalah menulis sesuatu lebih cepat daripada Fortran lama yang baik ini (seringkali) "pekerja keras". Semua fungsi penting, sebagai suatu peraturan, menggunakan operasi vektor dan diimplementasikan dalam DENGAN.
R menggunakan sumber daya komputasi secara tidak rasional, khususnya memori
Ya, para pengembang mengakui dosa ini. Namun waktu kerja seorang spesialis kini jauh lebih mahal dibandingkan perangkat keras. Keluarkan mainan dari komputer kerja modern dan Anda tidak akan mengalami masalah dengan R dengan sebagian besar kumpulan data nyata.
Perangkat lunak bebas mungkin tidak dapat diandalkan
Mungkin: Fortran, Linux, C, Lisp, Java dll.
Alih-alih Epilog
Seperti yang sudah disampaikan di atas, postingan di bawah ini sebenarnya merupakan terjemahan dari presentasi saya untuk target audiens yang cukup spesifik, dan saya akan menjelaskan secara singkat audiens tersebut.

Banyak perusahaan IT yang “bersih” harus bertemu dengan orang-orang seperti itu, karena produksi pangan telah lama bersaing dengan minyak dan sumber daya energi lainnya untuk menarik modal dan menghasilkan keuntungan. Dan kapasitas pasar bioinformatika di bidang kedokteran dan farmakologi terbatas, tidak peduli bagaimana Anda melihatnya.

Jadi, audiens saya adalah orang-orang dengan pendidikan dasar di bidang genetika dan pemuliaan, kedokteran hewan, dan, lebih jarang, biologi (terutama molekuler). Teman-teman dan bibi (lebih tepatnya yang terakhir), 20-30 tahun... pemrograman (!) aktif FORTRANe atau VB, yang terkenal mengelola tabel Excel dengan 100 ribu baris/kolom dan secara berkala “menghilangkan” tugasnya (dan pemrogramannya) pada komputasi Linux 500+ cluster inti dengan memori bersama 12TB dan dari waktu ke waktu memerlukan perluasan memori disk oleh yang lain sepuluh terabyte.

Basis metodologisnya adalah campuran analisis varians yang sangat eksplosif dengan model campuran yang diselesaikan hanya dengan metode kemungkinan maksimum, jaringan Bayesian yang “mencairkan otak”, dll.

Data - tabel data dari satuan hingga puluhan ribu baris, terkadang menyertakan 1-5 kolom dengan fenotipe, tetapi lebih sering - puluhan atau ratusan kolom "Ka" dari variabel yang berkorelasi lemah satu sama lain dan dengan fenotipe.

Ya, mereka juga memiliki “tradisi yang baik” dalam memandang segala sesuatu dari segi ikatan keluarga (bagaimanapun juga, genetika). Ikatan kekerabatan secara tradisional disajikan dalam bentuk matriks “ikatan kekerabatan” (silsilah) yang berdimensi misalnya 40.000 x 40.000 (jika ada 40.000 ekor hewan). Ya, atau (untuk saat ini, untungnya, hanya dalam proyek ini) 20.000.000 x 20.000.000 - ini untuk "mencakup" dengan satu model seluruh 20 juta hewan bersejarah yang tersedia di database ( DB2, kalau ada yang berminat, bahkan Cobol pun belum “dipotong” dari mana-mana…)

Di atas meja yang dipenuhi literatur tentang (pada saat yang sama) Fortran, Java, C#, Scala, Octavia, Linux untuk Dummies Anda dapat mengenali lulusan bioinformatika baru-baru ini. Namun entah kenapa dengan cepat banyak dari mereka meninggalkan sains untuk menjadi “pembuat kode”.

Namun, saya juga mengetahui kasus gerakan terbalik. Jadi R akan bermanfaat bagi banyak orang lagi.

Saya ingin berbicara tentang penggunaan lingkungan analisis statistik gratis R. Saya menganggapnya sebagai alternatif dari paket statistik seperti Statistik SPSS. Saya sangat menyesal, hal itu sama sekali tidak diketahui di luasnya Tanah Air kita, tetapi sia-sia. Saya percaya bahwa kemampuan untuk menulis prosedur analisis statistik tambahan di S menjadikan R alat analisis data yang berguna.

Pada semester musim semi tahun 2010, saya mendapat kesempatan untuk memberi kuliah dan mengadakan kelas praktik pada mata kuliah “Analisis Data Statistik” untuk mahasiswa Departemen Sistem Cerdas Universitas Negeri Rusia untuk Kemanusiaan.

Siswa saya sebelumnya mengambil kursus satu semester dalam teori probabilitas yang mencakup dasar-dasar ruang probabilitas diskrit, probabilitas bersyarat, teorema Bayes, hukum bilangan besar, beberapa latar belakang hukum normal, dan Teorema Batas Pusat.

Sekitar lima tahun yang lalu, saya sudah mengajar kelas dalam kursus satu semester (yang kemudian digabungkan) “Dasar-Dasar Teori Probabilitas dan Statistik Matematika,” jadi saya memperluas catatan saya (diberikan kepada siswa sebelum setiap kelas) tentang statistik. Sekarang Universitas Negeri Rusia untuk Kemanusiaan memiliki server mahasiswa isdwiki.rsuh.ru dari departemen tersebut, saya secara bersamaan mengunggahnya ke FTP.

Timbul pertanyaan: program apa yang harus saya gunakan untuk melakukan kelas praktik di kelas komputer? Microsoft Excel yang sering digunakan ditolak karena merupakan hak milik dan karena menerapkan beberapa prosedur statistik secara tidak benar. Anda dapat membaca tentang ini, misalnya, dalam buku karya A.A. Makarov dan Yu.N. Tyurin “Analisis Statistik Data di Komputer”. Spreadsheet Calc dari office suite gratis Openoffice.org telah di-Russifikasi sehingga saya hampir tidak dapat menemukan fungsi yang diperlukan (namanya juga telah disingkat dengan menjijikkan).

Paket yang paling umum digunakan adalah Statistik SPSS. SPSS kini telah diakuisisi oleh IBM. Di antara kelebihan Statistik IBM SPSS yang ingin saya soroti:

  • Pemuatan data yang nyaman dalam berbagai format (Excel, SAS, melalui OLE DB, melalui ODBC Direct Driver);
  • Ketersediaan bahasa perintah dan sistem menu yang luas untuk akses langsung ke berbagai prosedur analisis statistik;
  • Sarana grafis untuk menampilkan hasil;
  • Modul Pelatih Statistik bawaan yang secara interaktif menyarankan metode analisis yang memadai.
Kekurangan IBM SPSS Statistics menurut saya adalah:
  • Pembayaran bahkan untuk pelajar;
  • Kebutuhan untuk memperoleh modul (tambahan berbayar) yang berisi prosedur khusus;
  • Hanya mendukung sistem operasi Linux 32-bit, meskipun Windows mendukung 32-bit dan 64-bit.
Sebagai alternatif, saya memilih . Sistem ini mulai dikembangkan melalui upaya Robert Gentleman dan Ross Ihak di Departemen Statistika Universitas Melbourne pada tahun 1995. Huruf pertama nama penulis menentukan judulnya. Selanjutnya, ahli statistik terkemuka terlibat dalam pengembangan dan perluasan sistem ini.

Saya mempertimbangkan keuntungan dari sistem yang sedang dibahas:

  • Distribusi program di bawah Lisensi Publik GNU;
  • Ketersediaan kode sumber dan modul biner di jaringan repositori CRAN (The Comprehensive R Archive Network) yang luas. Untuk Rusia, ini adalah server cran.gis-lab.info;
  • Ketersediaan paket instalasi untuk Windows (berfungsi pada Vista 32 dan 64-bit). Ternyata instalasi tidak memerlukan hak administrator di Windows XP;
  • Kemampuan untuk menginstal dari repositori di Linux (berfungsi untuk saya di Ubuntu 9.10 versi 64-bit);
  • Tersedianya bahasa pemrograman sendiri untuk prosedur statistik R yang sebenarnya sudah menjadi standar. Misalnya, hal ini didukung penuh oleh Pengembang Statistik SPSS IBM yang baru;
  • Bahasa ini merupakan perpanjangan dari bahasa S yang dikembangkan di Bell Labs, yang saat ini menjadi dasar sistem S-PLUS komersial. Kebanyakan program yang ditulis untuk S-PLUS dapat dengan mudah dijalankan di lingkungan R;
  • Kemampuan untuk bertukar data dengan spreadsheet;
  • Kemungkinan untuk menyimpan seluruh riwayat perhitungan untuk tujuan dokumentasi.
Untuk pelajaran pertama, CD disiapkan yang berisi file instalasi, dokumentasi dan manual. Saya akan memberi tahu Anda lebih banyak tentang yang terakhir. CRAN memberikan panduan pengguna terperinci tentang instalasi, bahasa R (dan subset S-nya), menulis prosedur statistik tambahan, serta mengekspor dan mengimpor data. Bagian Dokumentasi Kontribusi berisi sejumlah besar publikasi oleh guru statistik yang menggunakan paket ini dalam proses pendidikan. Sayangnya, tidak ada apa pun dalam bahasa Rusia, meskipun, misalnya, ada satu dalam bahasa Polandia. Di antara buku-buku berbahasa Inggris, saya ingin menyebutkan “Menggunakan R untuk Pengantar Statistik” oleh Profesor John Verzani dari City University of New York dan “Pengantar Proyek R untuk Komputasi Statistik” oleh Profesor Rossiter (Holland) dari Internasional Institut Geoinformatika dan Pengamatan Bumi.

Pelajaran pertama dikhususkan untuk instalasi dan pembelajaran menggunakan paket, pengenalan sintaks bahasa R. Perhitungan integral menggunakan metode Monte Carlo digunakan sebagai tugas tes. Berikut adalah contoh penghitungan probabilitas r.v. dengan distribusi eksponensial dengan parameter 3, ambil nilai kurang dari 0,5 (10.000 adalah jumlah percobaan).
> x=runif(10000,0,0.5)
> y=runif(10000,0,3)
>t=y<3*exp(-3*x)
> kamu=x[t]
>v=kamu[t]
> alur(u,v)
> i=0,5*3*panjang(u)/10000

Dua garis pertama menentukan distribusi seragam titik-titik dalam persegi panjang x, kemudian titik-titik yang berada di bawah grafik kepadatan eksponensial 3*exp(-3*x) dipilih, fungsi plot menampilkan titik-titik tersebut di jendela keluaran grafis, dan akhirnya integral yang diperlukan dihitung.
Pelajaran kedua dikhususkan untuk menghitung statistik deskriptif (kuantil, median, mean, varians, korelasi dan kovarians) dan membuat grafik (histogram, box-and-whisker).
Di kelas berikutnya, perpustakaan Rcmdr digunakan. Ini adalah antarmuka pengguna grafis (GUI) untuk lingkungan R. Perpustakaan ini dibuat atas upaya Profesor John Fox dari Universitas McMaster di Kanada.

Instalasi perpustakaan ini dilakukan dengan menjalankan perintah install.packages("Rcmdr", dependencies=TRUE) di dalam lingkungan R. Jika lingkungan itu sendiri adalah penerjemah bahasa R, maka add-on "Rcmdr" adalah jendela tambahan dilengkapi dengan sistem menu yang berisi sejumlah besar perintah sesuai prosedur statistik standar. Hal ini sangat berguna untuk kursus yang hal utamanya adalah mengajari siswanya untuk menekan tombol (saya menyesal, hal ini sekarang menjadi semakin umum).

Catatan seminar dari kursus saya sebelumnya diperluas. Mereka juga tersedia melalui FTP dari situs isdwiki.rsuh.ru. Catatan ini berisi tabel nilai kritis yang digunakan untuk perhitungan di papan tulis. Tahun ini, siswa didorong untuk memecahkan masalah ini di komputer dan juga memeriksa tabel menggunakan perkiraan (normal) yang juga disediakan dalam catatan.

Ada juga beberapa kesalahan saya. Misalnya, saya terlambat menyadari bahwa Rcmdr memungkinkan Anda mengimpor data dari paket yang diunduh, sehingga sampel yang relatif besar hanya diproses di kelas analisis regresi. Saat menyajikan tes nonparametrik, siswa memasukkan data dengan tangan menggunakan catatan saya. Kelemahan lainnya, seperti yang saya pahami sekarang, adalah kurangnya jumlah pekerjaan rumah untuk menulis program yang cukup kompleks dalam bahasa R.

Perlu dicatat bahwa beberapa mahasiswa senior menghadiri kelas saya, dan beberapa mengunduh materi dari ceramah dan seminar. Mahasiswa Departemen Sistem Cerdas Universitas Negeri Rusia untuk Kemanusiaan menerima pelatihan dasar dalam matematika dan pemrograman, sehingga penggunaan lingkungan R (bukan spreadsheet dan paket statistik dengan prosedur statistik tetap) menurut saya sangat berguna.

Jika Anda dihadapkan pada tugas mempelajari statistika, dan khususnya menulis prosedur nonstandar dalam pengolahan data statistik, maka saya sarankan Anda mengalihkan perhatian Anda ke paket R.

Saya baru-baru ini menemukan fenomena seperti itu - banyak orang telah mendengar tentang bahasa pemrograman R. Namun hanya sedikit orang yang mengetahui apa itu.

Karena saya adalah penutur asli bahasa ini dan tertarik dengan mempopulerkannya, saya akan mencoba membahas sedikit topik tersebut di postingan ini. Ini akan menarik!

Rencananya sederhana:

1) Apa bahasa R

2) Popularitas di Rusia

Apa itu bahasa R

R (wiki) adalah bahasa pemrograman untuk pemrosesan data statistik dan grafik, serta lingkungan komputasi sumber terbuka gratis di bawah Proyek GNU.

Menurut pendapat kami: Bahasa ini ideal untuk mencari pola pasar. Gratis, cepat dan gratis.

Ini memungkinkan Anda melakukan studi statistik tentang segala hal yang bisa Anda dapatkan. Selama bertahun-tahun keberadaannya, puluhan dan ratusan ekstensi telah muncul untuk menyelesaikan hampir semua masalah aplikasi.

Ini adalah bahasa pemrograman PALING populer untuk pedagang algoritmik di Barat. Hal ini merupakan yang terdepan dari apa yang saat ini tersedia dalam pembelajaran mesin dan statistik.

Untuk menulis program dalam R, cukup unduh R-Studio dan selesai



Beberapa waktu lalu, sebagai bagian dari mempopulerkan bahasa tersebut, saya merekam kursus mini “R untuk semua orang”. Bebas. Lihat betapa mudahnya semuanya bekerja dan seberapa cepat Anda dapat menulis skrip di dalamnya. Ini sungguh luar biasa!

Popularitas di Rusia

Meninggalkan banyak hal yang diinginkan.

Jika di Barat 90% dari semua penelitian dilakukan menggunakan bahasa ini, maka di Rusia jarang ada minggu yang dihabiskan di SmartLab, di mana Anda dapat menemukan setidaknya satu kali penyebutan bahasa tersebut. Itu. jumlah orang yang mengetahui R sangatlah kecil.

Alasan yang menyebabkan situasi ini antara lain: kurangnya manual dalam bahasa Rusia hingga saat ini, kurangnya kursus pelatihan, rendahnya tingkat literasi para pedagang, dan banyak lagi. Mari kita tidak membicarakan hal ini.

Satu-satunya hal yang penting adalah popularitas bahasa ini di Rusia dan CIS terus meningkat.

Pengguna Rusia bosan dengan API yang rusak dan sistem perdagangan yang mahal. Bahasa R gratis, dalam konteks perdagangan, akan segera mengambil tempat yang selayaknya dalam perangkat mereka. Bergabunglah dengan kami!

Itu saja untuk hari ini. Saya harap itu menarik.

Tonton kursus gratis saya untuk melihat betapa mudahnya menulis kode. Tulis robot!

Materi terbaru di bagian:

Polimer kristal cair
Polimer kristal cair

Kementerian Pendidikan dan Ilmu Pengetahuan Federasi Rusia Institut Kimia Universitas Federal Kazan (Wilayah Volga). A.M.Butlerov...

Periode awal Perang Dingin dimana
Periode awal Perang Dingin dimana

Peristiwa utama politik internasional pada paruh kedua abad ke-20 ditentukan oleh Perang Dingin antara dua negara adidaya - Uni Soviet dan Amerika Serikat. Dia...

Rumus dan satuan pengukuran Sistem pengukuran tradisional
Rumus dan satuan pengukuran Sistem pengukuran tradisional

Saat mengetik teks di editor Word, disarankan untuk menulis rumus menggunakan editor rumus bawaan, menyimpan di dalamnya pengaturan yang ditentukan oleh...