Tôi gặp vấn đề về hiệu năng khi sử dụng MCMCglmm
gói trong R để chạy mô hình hiệu ứng hỗn hợp. Mã trông như thế này:
MC1<-MCMCglmm(bull~1,random=~school,data=dt,family="categorical"
, prior=list(R=list(V=1,fix=1), G=list(G1=list(V=1, nu=0)))
, slice=T, nitt=iter, ,burnin=burn, verbose=F)
Có khoảng 20.000 quan sát trong dữ liệu và chúng được tập hợp trong khoảng 200 trường học. Tôi đã bỏ tất cả các biến không sử dụng khỏi khung dữ liệu và xóa tất cả các đối tượng khác khỏi bộ nhớ, trước khi chạy. Vấn đề tôi gặp phải là phải mất một thời gian rất dài để chạy, trừ khi tôi giảm số lần lặp xuống một số nhỏ không thể chấp nhận được. Với 50.000 lần lặp, phải mất 5 giờ và tôi có nhiều mô hình khác nhau để chạy. Vì vậy, tôi muốn biết liệu có cách nào để tăng tốc độ thực thi mã hay các gói khác mà tôi có thể sử dụng. Tôi đang sử dụng MCMCglmm
vì tôi muốn khoảng tin cậy cho các hiệu ứng ngẫu nhiên.
Mặt khác, tôi đã hy vọng sẽ có được một PC mới vào cuối năm nay nhưng với một chút may mắn tôi có thể mang lại điều đó, vì vậy tôi đã tự hỏi làm thế nào để chi tiêu một lượng tiền hạn chế cho phần cứng mới - nhiều RAM hơn , CPU nhanh hơn, v.v. Từ việc xem trình quản lý tác vụ, tôi không tin RAM là vấn đề (nó không bao giờ được sử dụng trên 50% vật lý), nhưng việc sử dụng CPU cũng không đạt được nhiều hơn 50%, điều này gây cho tôi sự kỳ quặc . Thiết lập hiện tại của tôi là lõi intel i5 2.66GHz, RAM 4GB, ổ cứng 7200rpm. Có hợp lý không khi chỉ cần có CPU nhanh nhất có thể, với chi phí thêm RAM? Tôi cũng tự hỏi về ảnh hưởng của kích thước bộ đệm CPU cấp 3 đối với các vấn đề tính toán thống kê như thế này?
Cập nhật: Đã hỏi về meta SO Tôi đã được khuyên nên viết lại câu hỏi và đăng lên Superuser. Để làm như vậy, tôi cần cung cấp thêm chi tiết về những gì đang diễn ra "dưới mui xe" trong MCMCglmm. Tôi có đúng không khi nghĩ rằng phần lớn thời gian tính toán được dành cho việc tối ưu hóa - ý tôi là tìm tối đa một số hàm phức tạp? Là nghịch đảo ma trận và / hoặc các hoạt động đại số tuyến tính khác cũng là một hoạt động phổ biến có thể gây ra tắc nghẽn? Bất kỳ thông tin nào khác tôi có thể cung cấp cho cộng đồng Superuser sẽ được nhận một cách biết ơn nhất.
lmer()
các mô hình phù hợp với các tập dữ liệu lớn có thể mất nhiều thời gian, đặc biệt nếu bạn cần thực hiện nhiều lần. Một câu trả lời cho câu hỏi của bạn có thể nằm trong tính toán song song mặc dù những người dùng khác (ví dụ @DirkEddelbuettel) sẽ hữu ích hơn nhiều so với tôi với điều này. Cũng có cơ hội bạn có thể nhận được câu trả lời tốt hơn trên stackoverflow.
glmer
(như bạn biết từ các bài đăng khác của tôi) và mất khoảng 20 giây, nhưng vấn đề là nó không đưa ra các khoảng tin cậy hoặc lỗi tiêu chuẩn và từ những gì tôi đọc trên danh sách gửi thư lưu trữ tác giả của lme4
gói nói rằng phân phối lấy mẫu của các hiệu ứng ngẫu nhiên có thể rất sai lệch, vì vậy những thống kê đó không được báo cáo. Trên thực tế tôi đã tìm thấy từ MCMCglmm
trước đến nay trong trường hợp của tôi họ đang tiếp cận bình thường (không phải điều này giúp ích nhiều - tôi chỉ nói). Sẽ tốt hơn nếu tôi yêu cầu chuyển nó sang SO?