Apakah bahasa R dapat diandalkan untuk bidang ekonomi?

64

Saya seorang mahasiswa pascasarjana di bidang ekonomi yang baru-baru ini dikonversi ke R dari paket statistik lain yang sangat terkenal (saya menggunakan SPSS terutama). Masalah kecil saya saat ini adalah bahwa saya adalah satu-satunya pengguna R di kelas saya. Teman-teman sekelas saya menggunakan Stata dan Gauss dan salah satu profesor saya bahkan mengatakan bahwa R sempurna untuk teknik, tetapi tidak untuk ekonomi. Dia mengatakan bahwa banyak paket dibangun oleh orang-orang yang tahu banyak tentang pemrograman, tetapi tidak banyak tentang ekonomi dan karena itu tidak dapat diandalkan. Dia juga menyebutkan fakta bahwa karena tidak ada uang yang benar-benar terlibat dalam membangun paket R, maka dari itu tidak ada insentif untuk melakukannya dengan benar (tidak seperti di Stata misalnya) dan bahwa dia menggunakan R untuk sementara waktu dan mendapat beberapa hasil "konyol" dalam upayanya untuk memperkirakan beberapa hal. Selain itu, ia mengeluh tentang generator bilangan acak di R yang katanya adalah "

Saya telah menggunakan R hanya sedikit lebih dari sebulan dan saya harus mengatakan saya telah jatuh cinta padanya. Semua hal yang saya dengar dari profesor saya hanya membuat saya kecil hati.

Jadi pertanyaan saya adalah: "Apakah R dapat diandalkan untuk bidang ekonomi?".

SavedByJESUS
sumber
30
"Banyak paket dibangun oleh orang yang tahu banyak tentang pemrograman, tetapi tidak banyak tentang ekonomi". Penulis paket praktis selalu merupakan ilmuwan atau akademisi terlebih dahulu dan programmer adalah (sangat) jauh (terakhir) kedua. Sebenarnya, saya pikir itu akan menjadi tantangan untuk menemukan paket yang ditulis oleh "programmer".
Brandon Bertelsen
9
Dapatkah saya mengundang Anda dan statistik kami yang lain, para ekonom, ke economics.stackexchange.com juga - kami akan menyambut pertanyaan dan jawaban Anda tentang ekonomi di sana
EnergyNumber
18
Tampaknya ada juga sedikit chauvinisme profesional dalam komentar profesor Anda. Bagaimana menjadi ekonom jaminan keandalan? Saya lebih suka mempercayai pengembang perangkat lunak (itu sebenarnya sebuah profesi, bukan sesuatu yang bisa dilakukan siapa saja dengan baik tanpa pengalaman atau pelatihan khusus) dan ahli statistik untuk menghasilkan perangkat lunak statistik yang andal.
Gala
23
"Sempurna untuk teknik tetapi tidak untuk ekonomi" karena keandalannya? Dia lebih suka pencakar langit runtuh daripada ekonomi? Pria itu idiot. Keluarlah dari sekolah itu dan temukan sekolah yang tidak dikelola oleh orang idiot.
Spacedman
10
Perangkat lunak komersial bisa baik atau buruk. Perangkat lunak open source bisa baik atau buruk. Yang penting adalah apakah perangkat lunak yang Anda gunakan itu bagus atau tidak. Jangan putuskan itu berdasarkan prasangka dan dogma. Gunakan bukti nyata.
David Heffernan

Jawaban:

83

Biarkan saya berbagi sudut pandang yang kontras. Saya seorang ekonom. Saya dilatih dalam ekonometrika menggunakan SAS. Saya bekerja di layanan keuangan dan baru malam ini saya memperbarui model berbasis R yang akan kita gunakan besok untuk membahayakan jutaan dolar.

Profesor Anda salah besar. Tetapi kesalahan yang dia buat adalah SANGAT biasa dan layak dibahas. Apa yang tampaknya dilakukan oleh profesor Anda adalah mencampurkan gagasan tentang perangkat lunak R (implementasi GNU dari bahasa S) vs. paket (atau kode lain) yang diimplementasikan di R. Saya dapat menulis implementasi omong kosong dari regresi linier menggunakan SAS IML. Sebenarnya, saya sudah melakukan hal itu. Apakah itu berarti SAS omong kosong? Tentu saja tidak. SAS adalah omong kosong karena harga mereka tidak transparan, sangat mahal, dan konsultan in-house mereka lebih dari janji, di bawah pengiriman, dan mengenakan biaya premium untuk kesenangan. Tapi saya ngelantur ...

Keterbukaan R adalah pedang bermata dua: Keterbukaan memungkinkan setiap Tom, Dick, atau Harry untuk menulis implementasi omong kosong dari algoritma apa pun yang mereka pikirkan saat merokok di ruang bawah tanah gedung ekonomi. Keterbukaan yang sama memungkinkan para ahli ekonomi untuk berbagi kode secara terbuka dan meningkatkan kode masing-masing. Aturan lisensi dengan R berarti bahwa saya dapat menulis kode paralelisasi untuk menjalankan R secara paralel di cloud Amazon dan tidak perlu khawatir tentang biaya lisensi untuk 30 node cluster. Ini adalah kemenangan BESAR untuk analisis berbasis simulasi yang merupakan bagian besar dari apa yang saya lakukan.

Komentar profesor Anda bahwa "banyak paket dibuat oleh orang-orang yang tahu banyak tentang pemrograman, tetapi tidak banyak tentang ekonomi", tidak diragukan lagi, benar. Tetapi ada 3716 paket di CRAN. Anda dapat yakin banyak dari mereka tidak ditulis oleh para ekonom. Dengan cara yang sama Anda dapat memastikan bahwa banyak dari 105.089 modul di CPAN tidak ditulis oleh para ekonom.

Pilih perangkat lunak Anda dengan hati-hati. Pastikan Anda mengerti dan telah menguji alat yang Anda gunakan. Pastikan juga Anda memahami ekonomi sebenarnya di balik implementasi yang Anda pilih. Terkunci dalam solusi perangkat lunak tertutup lebih mahal daripada hanya biaya lisensi.

JD Long
sumber
Terima kasih atas tanggapan Anda. Jadi, apakah Anda menyarankan agar saya mencoba belajar sesuatu yang lain? Lalu apa yang akan Anda sarankan agar saya pelajari?
SavedByJESUS
5
Tidak, saya menggunakan R hampir sepenuhnya. Apakah ada beberapa paket yang banyak digunakan profesor atau ekonom Anda? Saya tidak menggunakan paket spesifik ekon apa pun. Saya menggunakan plyr, matriks, dan banyak paket lainnya, tetapi tidak ada yang dirancang khusus untuk para ekonom.
JD Long
Jadi, apakah Anda mengacu pada "paket" dan Anda mengatakan bahwa saya tidak boleh dikunci ke dalam solusi perangkat lunak tertutup?
SavedByJESUS
3
"Keterbukaan memungkinkan Tom, Dick, atau Harry mana pun untuk menulis implementasi omong kosong dari algoritma apa pun" - ini tidak ada hubungannya dengan keterbukaan, itu murni hasil dari memiliki API publik, yang dimiliki oleh banyak produk sumber tertutup (yaitu setiap kepemilikan produk. perangkat lunak yang memiliki antarmuka plugin). Jawaban yang bagus.
naught101
3
"Tidak ada sekarang, tidak pernah ada, tidak akan pernah ada, bahasa pemrograman di mana itu adalah sedikit sulit untuk menulis kode yang buruk."
ardave
33

Ini tidak lebih atau kurang dapat diandalkan daripada perangkat lunak lain. Basis dan R yang disarankan mungkin kurang rentan terhadap kesalahan daripada paket yang disumbangkan, tetapi tergantung pada penulis.

Tetapi keuntungan terbesar R adalah Anda dapat memeriksa sendiri apakah itu! Ini adalah perangkat lunak gratis, tidak seperti Stata atau SPSS atau sejenisnya. Karena itu bahkan jika itu tidak dapat diandalkan, itu akan terdeteksi pada akhirnya. Itu mungkin tidak berlaku untuk perangkat lunak berpemilik. Dan Anda bahkan dapat membantu membuatnya lebih andal.

Selama sisa komentar profesor Anda, ia jelas salah dan seseorang menyebarkan FUD. Tetapi izinkan saya untuk mengatakan bahwa perangkat lunak yang tidak dapat diandalkan harus menjadi perhatian paling ekonomis dari penilaian model dan asumsi yang digunakan serta prediksi yang dibuat dalam bidang ini.

Tetap dengan R jika Anda suka dan mungkin Anda dan profesor bahkan dapat berkontribusi untuk mengembangkan perangkat lunak yang baik untuk ekonomi. Berikut ini adalah titik awal yang mungkin menarik http://cran.r-project.org/web/views/Econometrics.html dan http://cran.r-project.org/web/views/TimeSeries.html

Momo
sumber
1
Terima kasih banyak! Saya benar-benar ingin tetap dengan R. Saya pikir ini adalah perangkat lunak yang hebat. Juga, saya selalu menjadi penggemar berat open source.
SavedByJESUS
17
+1 untuk menyatakan kebenaran yang tidak menguntungkan dari zaman kita. "Perangkat lunak yang tidak dapat diandalkan harus menjadi perhatian ekonom paling tidak dilihat dari model dan asumsi yang digunakan dan prediksi yang dibuat dalam bidang ini."
digitalmaps
2
Saya menghargai nada masam di sini, tetapi beberapa ketidaksepakatan mungkin terjadi. Kesalahan dalam perangkat lunak berpemilik dapat ditunjukkan dalam berbagai cara, misalnya jika ada ketidaksepakatan yang jelas dengan hasil dalam R yang tampak sepenuhnya benar. Ada beberapa FUD di sini tentang perangkat lunak berpemilik yang sama tidak pantasnya dengan FUD konyol tentang R. Checkabilitas dalam R adalah prinsip checkability pada prinsipnya untuk hampir semua pengguna R; itu adalah fitur yang ada, tetapi mengatakan bahwa Anda dapat memeriksa kode sendiri sedikit retoris juga. Perhatikan bahwa untuk Stata banyak kode terlihat oleh pengguna; hanya executable yang bukan.
Nick Cox
23

Profesor Anda membuat beberapa pernyataan berani. Saya menduga bahwa masalahnya adalah tidak terbiasa dengan bahasa R, bukan hasil aktual yang dihasilkan. Saya bekerja di sebuah perusahaan yang melakukan banyak pemodelan ekonometrik dan kami melakukan semuanya dalam R. Saya juga mengubah rekan ekonom saya menjadi menggunakan R.

Berkenaan dengan bidang ekonomi dalam pengalaman pribadi saya, masalah reliabilitas mungkin akan terjadi sebaliknya. Misalnya EVIEWS versi 5 memiliki beberapa bug aneh ketika bekerja dengan data panel. Dan itu melaporkan statistik Durbin-Watson biasa untuk OLS dikumpulkan, yang dalam pengaturan panel-data jelas salah. Paket R untuk bekerja dengan data panel juga memiliki masalah, tetapi argumen uang di sini sangat mendukung R.

Baru-baru ini saya mengikuti metode deret waktu panel non-stasioner. Dosen menggunakan perangkat lunak RATS. Ketika mendemonstrasikan beberapa kode, dia menyarankan untuk mengklik ikon yang membersihkan ruang kerja beberapa kali, untuk berjaga-jaga. Bicara tentang keandalan.

mpiktas
sumber
20

Saya seorang ekonom dan saya telah bekerja dalam penelitian selama 4 tahun sekarang, kebanyakan melakukan ekonometrik terapan. Ada banyak paket ekonometrik di luar sana, dan ada ruang untuk semuanya. Dalam pandangan saya, dalam bidang ekonomi, Stata digunakan untuk hampir semua hal kecuali deret waktu, Tikus, Eviews, dan Lembu digunakan untuk deret waktu, Matlab dan Gauss digunakan untuk pemrograman tingkat lebih rendah.

Keuntungan dari R adalah mampu melakukan hampir semua hal yang dilakukan oleh program lain, dan itu gratis dan terbuka. Dibutuhkan lebih banyak pemrograman dan memiliki lebih sedikit prosedur kalengan, tetapi pada akhirnya hal tersebut dapat diselesaikan. Saya menggunakan Stata sebagian besar waktu, tetapi jika saya harus memilih satu perangkat lunak untuk melakukan semuanya, saya akan memilih R.

R cukup dapat diandalkan pada sebagian besar masalah ekonometrik, tetapi saya dapat memberikan contoh beberapa rutinitas yang ditulis untuk R yang tidak andal. Saya memiliki masalah dengan 3SLS dan menuntut rutinitas estimasi sistem. Rutin optimasi numerik tidak sekuat di Stata atau Gauss. Di sisi lain, R jauh lebih baik dalam masalah seperti regresi kuantil. Namun, dengan pengetahuan R yang baik, Anda bisa mencari tahu apa masalahnya dalam rutinitas tertulis pengguna R, memperbaikinya, dan terus bekerja. Jadi saya tidak berpikir kurangnya keandalan dalam beberapa rutinitas khusus adalah alasan kuat untuk tidak menggunakan R sama sekali.

Saran saya adalah untuk terus menggunakan R tetapi untuk memiliki pengalaman pada program lain yang banyak digunakan di bidang Anda, misalnya Stata untuk mikroekonometrik atau Tikus untuk rangkaian waktu.

jorpppp
sumber
13

Ketika saya mengajar statistik tingkat pascasarjana, saya memberi tahu murid-murid saya: "Saya tidak peduli paket apa yang Anda gunakan, dan Anda dapat menggunakan apa pun untuk pekerjaan rumah Anda, karena saya berharap Anda memberikan penjelasan substantif, dan akan mengambil poin jika saya Lihat tr23y5mnama variabel dalam kiriman Anda. Saya dapat mendukung pembelajaran Anda dengan sangat baik di Stata, dan cukup baik, di R. Dengan SAS, Anda sendirian, karena Anda mengklaim telah mengikuti kursus di dalamnya. Dengan SPSS atau Minitab, Tuhan memberkati Anda ". Saya membayangkan bahwa majikan yang masuk akal akan berpikiran sama. Yang penting adalah produktivitas Anda dalam hal hasil proyek. Jika Anda dapat mencapai tujuan dalam R dengan 40 jam kerja, baiklah; jika Anda dapat mencapainya dalam C ++ dalam 40 jam kerja, baik, jika Anda tahu bagaimana melakukan ini dalam R dalam 40 jam, tetapi penyelia Anda ingin Anda melakukan ini di SAS, dan Anda harus menghabiskan 60 jam hanya untuk mempelajari beberapa dasar-dasar dan di mana titik koma pergi, itu hanya bisa menjadi bijaksana dalam konteks gambaran besar sisa kode berada di SAS ... dan kemudian manajer itu tidak sangat bijaksana dalam mempekerjakan seorang programmer R.

Dari perspektif biaya total ini, "gratis" R adalah mitos yang sangat berlebihan. Setiap proyek serius memerlukan kode khusus, jika hanya untuk input data dan memformat output, dan itu bukan biaya nol waktu profesional. Jika ini input data dan format membutuhkan 10 jam kode SAS dan 20 jam kode R, R adalah perangkat lunak lebih mahal di margin , sebagai ekonom akan mengatakan, yaitu, dalam hal biaya tambahan untuk menghasilkan bagian tertentu dari fungsi . Jika sebuah proyek besar membutuhkan 200 jam waktu programmer R dan waktu programmer Stata 100 jam untuk menyediakan fungsionalitas yang identik, Stata secara keseluruhan lebih murah, bahkan memperhitungkan lisensi ~ $ 1K yang perlu Anda beli. Akan menarik untuk melihat perbandingan langsung seperti itu; Saya terlibat dalam penulisan ulang kekacauan besar 2Mb kode SPSS yang dikatakan telah terakumulasi selama sekitar 10 orang-tahun menjadi ~ 150K kode Stata yang berjalan secepat, mungkin sedikit lebih cepat; itu proyek sekitar 1 orang-tahun. Saya tidak tahu apakah rasio efisiensi 10: 1 ini tipikal untuk perbandingan SPSS: Stata, tetapi saya tidak akan terkejut jika itu benar. Bagi saya, bekerja dengan R selalu merupakan biaya besar karena biaya pencarian: Saya harus menentukan yang mana dari lima paket dengan nama yang sama yang melakukan apa yang perlu saya lakukan, dan mengukur apakah itu cukup andal bagi saya untuk menggunakannya dalam pekerjaan saya. Ini sering berarti bahwa lebih murah bagi saya untuk menulis kode Stata saya sendiri dalam waktu yang lebih sedikit daripada yang akan saya habiskan untuk mencari tahu bagaimana membuat R bekerja dalam tugas yang diberikan. Harus dipahami bahwa ini adalah keistimewaan pribadi saya; kebanyakan orang di situs ini adalah pengguna yang lebih baik daripada saya.

Lucu bahwa prof Anda lebih suka Stata atau GAUSS daripada R karena "R tidak ditulis oleh para ekonom". Baik itu Stata atau GAUSS; mereka ditulis oleh para ilmuwan komputer menggunakan alat ilmuwan komputer. Jika prof Anda mendapat ide tentang pemrograman dari CodeAcademy.com, itu lebih baik daripada tidak sama sekali, tetapi pengembangan perangkat lunak kelas profesional berbeda dari mengetik di kotak teks CodeAcademy.com seperti mengendarai truk barang berbeda dari bersepeda. (Stata dimulai oleh seorang ilmuwan komputer yang dikonversi oleh ahli ekonometrika tenaga kerja, tetapi ia belum melakukan pekerjaan ini dalam bidang ekonometrik selama sekitar 25 tahun sekarang.)

Pembaruan : Seperti yang dikomentari AndyW di bawah ini, Anda dapat menulis kode mengerikan dalam bahasa apa pun. Pertanyaan tentang biaya kemudian menjadi, bahasa mana yang lebih mudah di-debug. Bagi saya ini terlihat seperti kombinasi dari seberapa akurat dan informatif outputnya, dan betapa mudah dan transparannya sintaks itu sendiri, dan saya tidak punya jawaban yang bagus untuk itu, tentu saja. Sebagai contoh, Python memberlakukan indentasi kode, yang merupakan ide bagus. Stata dan kode R dapat dilipat di atas kurung, dan itu tidak akan bekerja dengan SAS. Penggunaan subrutin adalah pedang bermata dua: penggunaan *apply()dengan ad-hoc functiondi R jelas sangat efisien, tetapi lebih sulit untuk di-debug. Dengan token yang serupa, Stata locals dapat menutupi hampir semua hal, dan default ke string kosong, sementara berguna, juga dapat menyebabkan kesalahan yang sulit ditangkap.

Tugas
sumber
1
Ini adalah jawaban yang bagus, tetapi generalisasi berlebihan IMO tidak terlalu membantu (Anda dapat menulis kode yang buruk atau bagus dalam hampir semua bahasa, Stata tidak magis dalam menegakkan standar pengkodean yang baik). Saya mengalami kesulitan melihat bagaimana 2mb kode SPSS adalah kode SPSS yang efisien untuk memulai (dengan versi yang lebih baru dengan penyorotan sintaksis akan sangat tidak disarankan untuk membuka file seperti itu di editor). Tampaknya ada peluang bagus sudah waktunya dihabiskan untuk menulis ulang dalam bahasa apa pun.
Andy W
1
Saya tidak menulis kode SPSS sama sekali, dan pemahaman saya bahwa kode saya bekerja dengan tidak ditulis sebagai kode, juga, tetapi lebih disimpan dari antarmuka titik dan klik, dan kemudian dapat dihapus sedikit. Saya akan membayangkan bahwa SPSS akan meletakkan semua default dan seperti itu dengan konversi antar-kode, jadi itu bukan kode yang sangat efisien untuk memulai.
Tugas
12

Saya akan sangat berhati-hati terhadap siapa pun yang mengklaim fakta tetapi tidak pernah mendukungnya dengan sesuatu yang substansial.

Anda dapat dengan mudah membalikkan argumennya.

Misalnya, orang yang dibayar untuk menulis kode dapat memiliki insentif KURANG untuk melakukannya dengan benar karena ada harapan bahwa kode mereka akan benar, sedangkan penghuni ruang bawah tanah biasanya ingin membuat komitmen yang akan mengesankan para pemimpin proyek. Mungkin dia tidak peduli tentang berapa banyak waktu tambahan yang dia habiskan untuk melakukannya secara gratis jika itu berarti pekerjaan yang berkualitas dilakukan.

Jika generator angka acak 'berantakan' (yang merupakan istilah yang tidak jelas; dengan mudah mengganti fakta nyata untuk mendukung argumennya), maka ia harus dapat membuktikannya atau menunjukkan kepada Anda seseorang yang bisa.

Jika ia mendapatkan hasil yang tidak jelas dari suatu paket, ia harus bisa menunjukkan langkah-langkah yang diambilnya untuk mendapatkan hasil itu. Jika itu benar-benar bug dan Anda memiliki keterampilan pemrograman yang baik, Anda bahkan dapat mencoba dan memperbaikinya untuknya!

Saya menyadari jawaban saya tidak menjawab pertanyaan Anda secara langsung (maaf). Hanya dari cara dia mengatakan poinnya, Anda dapat melihat tidak ada daging di baliknya. Jika ada, silakan edit di pertanyaan Anda untuk orang-orang di sini untuk membahasnya lebih lanjut!

gparent
sumber
5

Dalam ReplicationWiki (yang saya kerjakan) Anda dapat melihat bahwa R adalah salah satu paket perangkat lunak yang paling sering digunakan untuk sekitar 2000 studi empiris yang diterbitkan di beberapa jurnal yang sudah mapan di tahun 2000-2013. Tampaknya lebih banyak digunakan dalam beberapa tahun terakhir. Stata paling sering digunakan (> 900 kali), diikuti oleh MATLAB (280), SAS (60), GAUSS (60), Excel (50), R (30), FORTRAN (30), Mathematica (19), EViews (18), z-Tree (16), dynare (15), RATS (12), C (8), C ++ (6), python (5, penelitian terbaru), SPSS (5) dan beberapa lainnya. Sering kali lebih dari satu paket digunakan.

Jan Höffler
sumber
Ini adalah bukti menarik tentang penggunaan perangkat lunak. Tapi itu tidak langsung pada pertanyaan selain dengan memberikan indikasi yang jelas bahwa R digunakan secara luas (kesimpulan bahwa ia dipercaya secara luas juga erat).
Nick Cox
2

Saya telah menggunakan R selama setengah dekade dan juga menggunakan SAS, SPSS, Calc, WEKA dan beberapa alat lainnya. Saya tidak pernah menikmati dengan alat apa pun sebanyak itu melalui R. Pada dasarnya R adalah untuk mereka yang berpikir secara mandiri dan mencoba sesuatu pada pembelajaran mereka sendiri. Ketika datang ke statistik itu semua tentang metode. Pengguna mungkin tidak mengetahui bagaimana metode didefinisikan dan dimodelkan dalam perangkat lunak komersial dan mereka mungkin benar atau salah. R adalah untuk mereka yang ingin mendefinisikan metode dan menggunakan metode yang sesuai untuk kebutuhan mereka. Ini semua tentang kebebasan. Kebebasan ini tidak ada di sana dengan perangkat lunak komersial meskipun menghabiskan uang dan membelinya. Pengetahuan adalah milik komunitas (masyarakat) tidak ada yang bisa mengklaim kepengarangan pada hal yang sama. Penelitian adalah tentang menemukan solusi untuk masalah. Sejauh menyangkut R, kita tidak perlu khawatir tentang metode untuk pengguna bebas menentukan dan mengubah. Misalnya, jika ada masalah model khusus atau metode yang tidak menentu yang dapat diperbaiki dengan memperbaiki atau mengembangkan kode baru. Dengan melakukan itu seorang peneliti tidak hanya mengembangkan pengetahuan tetapi juga berkembang.

Keuntungan dari R adalah bahwa seseorang tidak perlu menjadi pemrogram komputer. Metode statistik adalah semua tentang fungsi menulis hanya dengan pernyataan kontrol dan loop (untuk memulai, Hal-hal tingkat yang lebih tinggi datang kemudian). R memiliki lingkungan pemrograman yang sangat mudah bagi pemula.

M Kamakshaiah
sumber