Khi tôi đang giảng dạy thống kê trình độ sau đại học, tôi đã nói với các sinh viên của mình: "Tôi không quan tâm bạn sử dụng gói nào và bạn có thể sử dụng bất cứ thứ gì cho bài tập về nhà của mình, vì tôi mong bạn sẽ đưa ra những lời giải thích rõ ràng và sẽ bỏ qua nếu tôi xem tr23y5m
tên biến trong bài nộp của bạn. Tôi có thể hỗ trợ việc học của bạn rất tốt ở Stata, và khá hợp lý, ở R. Với SAS, bạn tự mình làm, vì bạn cho rằng bạn đã tham gia một khóa học về nó. Với SPSS hoặc Minitab, Chúa phù hộ bạn ". Tôi tưởng tượng rằng các nhà tuyển dụng hợp lý cũng sẽ nghĩ như vậy. Vấn đề là năng suất của bạn về kết quả dự án. Nếu bạn có thể đạt được mục tiêu trong R với 40 giờ làm việc, tốt thôi; bạn có thể đạt được nó trong C ++ sau 40 giờ làm việc, tốt thôi, nếu bạn biết cách làm điều này trong R trong 40 giờ, nhưng người giám sát của bạn muốn bạn làm điều này trong SAS, và bạn phải dành 60 giờ chỉ để học một số điều cơ bản và dấu chấm phẩy đi đâu, điều đó chỉ có thể là khôn ngoan trong bối cảnh bức tranh lớn về phần còn lại của mã đang ở SAS ... và sau đó người quản lý đã không khôn ngoan lắm khi thuê một lập trình viên R.
Từ quan điểm này của tổng chi phí, "R" miễn phí là một huyền thoại bị thổi phồng quá mức. Bất kỳ dự án nghiêm túc nào cũng yêu cầu mã tùy chỉnh, nếu chỉ cho đầu vào dữ liệu và định dạng đầu ra, và đó là chi phí không phải là thời gian chuyên nghiệp. Nếu đây đầu vào và định dạng dữ liệu đòi hỏi 10 giờ mã SAS và 20 giờ của mã R, R là một phần mềm đắt hơn ở bên lề , như một nhà kinh tế sẽ nói, tức là, về mặt chi phí bổ sung để tạo ra một mảnh nhất định chức năng . Nếu một dự án lớn đòi hỏi 200 giờ thời gian của lập trình viên R và 100 giờ thời gian của lập trình viên Stata để cung cấp chức năng giống hệt nhau, thì Stata có giá rẻ hơn về tổng thể, thậm chí chiếm giấy phép ~ $ 1K mà bạn cần mua. Sẽ rất thú vị khi xem những so sánh trực tiếp như vậy; Tôi đã tham gia viết lại một mớ hỗn độn khổng lồ gồm 2Mb mã SPSS được cho là đã được tích lũy trong khoảng 10 năm vào ~ 150K mã Stata chạy nhanh như vậy, có thể nhanh hơn một chút; đó là dự án khoảng 1 năm. Tôi không biết liệu tỷ lệ hiệu quả 10: 1 này có phải là điển hình cho so sánh SPSS: Stata hay không, nhưng tôi sẽ không ngạc nhiên nếu có. Đối với tôi, làm việc với R luôn là một chi phí lớn vì chi phí tìm kiếm: Tôi phải xác định gói nào trong số năm gói có cùng tên làm những gì tôi cần làm và đánh giá xem nó có đủ tin cậy để tôi sử dụng không công việc của tôi. Điều đó thường có nghĩa là tôi sẽ rẻ hơn khi viết mã Stata của riêng mình trong thời gian ngắn hơn mà tôi sẽ chi tiêu để tìm ra cách làm cho R hoạt động trong một nhiệm vụ nhất định. Cần hiểu rằng đây là sự bình dị cá nhân của tôi; hầu hết mọi người trên trang này đều sử dụng tốt hơn tôi.
Thật buồn cười là prof của bạn sẽ thích Stata hoặc GAUSS hơn R vì "R không được viết bởi các nhà kinh tế". Cả Stata hay GAUSS đều không; chúng được viết bởi các nhà khoa học máy tính bằng cách sử dụng các công cụ của các nhà khoa học máy tính. Nếu prof của bạn có ý tưởng về lập trình từ CodeAcademy.com, điều đó tốt hơn không có gì, nhưng phát triển phần mềm cấp chuyên nghiệp cũng khác với việc gõ vào hộp văn bản CodeAcademy.com vì lái xe tải chở hàng khác với đi xe đạp. (Stata được bắt đầu bởi một nhà khoa học máy tính chuyển đổi kinh tế học lao động, nhưng anh ta đã không làm điều này về kinh tế lượng kinh tế lao động trong khoảng 25 năm nay.)
Cập nhật : Như AndyW đã nhận xét bên dưới, bạn có thể viết mã khủng khiếp bằng bất kỳ ngôn ngữ nào. Câu hỏi về chi phí sau đó trở thành, ngôn ngữ nào dễ gỡ lỗi hơn. Đối với tôi điều này trông giống như một sự kết hợp giữa đầu ra chính xác và nhiều thông tin, và chính cú pháp dễ dàng và minh bạch như thế nào, và dĩ nhiên tôi không có câu trả lời hay cho điều đó. Ví dụ, Python thực thi thụt mã, đó là một ý tưởng tốt. Mã Stata và R có thể được gấp lại trong ngoặc và điều đó sẽ không hoạt động với SAS. Sử dụng chương trình con là con dao hai lưỡi: việc sử dụng *apply()
với ad-hoc function
s trong R rõ ràng là rất hiệu quả, nhưng khó gỡ lỗi hơn. Với một mã thông báo tương tự, Stata local
có thể che giấu gần như mọi thứ và mặc định là một chuỗi trống, trong khi hữu ích, cũng có thể dẫn đến các lỗi khó bắt.