Tín dụng của câu trả lời này được gửi tới @Joshua , người đã đưa ra một câu trả lời tuyệt vời khi tôi đăng câu hỏi này lên cộng đồng R và Statistics trên Google+. Tôi chỉ đơn giản là dán câu trả lời của mình dưới đây.
Để chạy hồi quy (không có mô hình biến tiềm ẩn), vui lòng đọc ghi chú của tôi được nhập sau văn bản được trích dẫn.
Xử lý dữ liệu bị thiếu với Khả năng tối đa trên tất cả các dữ liệu có sẵn (được gọi là FIML) là một kỹ thuật rất hữu ích. Tuy nhiên, có một số biến chứng khiến cho việc thực hiện một cách chung chung trở nên khó khăn. Xem xét một mô hình hồi quy tuyến tính đơn giản, dự đoán một số kết quả liên tục từ tuổi nói, giới tính và loại nghề nghiệp. Trong OLS, bạn không lo lắng về sự phân bố tuổi tác, giới tính và nghề nghiệp, chỉ có kết quả. Thông thường đối với các dự đoán phân loại, chúng được mã hóa giả (0/1). Để sử dụng ML, các giả định phân phối được yêu cầu cho tất cả các biến bị thiếu. Cho đến nay, cách tiếp cận dễ nhất là đa biến thông thường (MVN). Đây là những gì ví dụ Mplus sẽ làm theo mặc định nếu bạn không đi theo cách của mình để khai báo loại biến (ví dụ: phân loại). Trong ví dụ đơn giản tôi đã đưa ra, bạn có thể muốn giả sử, bình thường theo tuổi, Bernoulli cho tình dục và đa dạng cho loại công việc. Điều thứ hai là khó khăn bởi vì những gì bạn thực sự có là một số biến nhị phân, nhưng bạn không muốn coi chúng là Bernoulli. Điều này có nghĩa là bạn không muốn làm việc với các biến được mã hóa giả, bạn cần làm việc với biến phân loại thực tế để các công cụ ước tính ML có thể sử dụng đúng một đa thức, nhưng điều này có nghĩa là quá trình mã hóa giả cần được xây dựng trong mô hình , không phải dữ liệu. Lại làm phức tạp cuộc sống. Hơn nữa, sự phân phối chung của các biến liên tục và phân loại là không cần thiết để tính toán (khi tôi gặp vấn đề như thế này ở Mplus, nó nhanh chóng bắt đầu bị phá vỡ và đấu tranh). Cuối cùng, bạn thực sự lý tưởng xác định cơ chế dữ liệu còn thiếu. Theo kiểu SEM, FIML, tất cả các biến về cơ bản được quy định trên tất cả các biến khác, nhưng điều này không nhất thiết đúng. Ví dụ, có lẽ tuổi bị thiếu là một chức năng không phải là giới tính và loại nghề nghiệp, mà là sự tương tác của họ. Sự tương tác có thể không quan trọng đối với kết quả đầu mối, nhưng nếu nó quan trọng đối với sự thiếu hụt về tuổi tác, thì nó cũng phải nằm trong mô hình, không nhất thiết phải là mô hình quan tâm thực sự mà là mô hình dữ liệu bị thiếu.
lavaan sẽ sử dụng ML cho MVN, nhưng hiện tại tôi tin rằng các tùy chọn dữ liệu phân loại bị hạn chế (một lần nữa đến từ trường SEM, đây là tiêu chuẩn). Lúc đầu, nhiều lần xử lý có vẻ ít thanh lịch hơn vì nó đưa ra nhiều giả định ẩn đằng sau FIML (như các giả định phân phối cho mọi biến và mô hình dự đoán được giả định là thiếu trên mọi biến). Tuy nhiên, nó cung cấp cho bạn rất nhiều quyền kiểm soát và suy nghĩ rõ ràng về việc phân phối từng biến và cơ chế dữ liệu bị thiếu tối ưu cho mỗi biến là có giá trị.
Tôi ngày càng tin chắc rằng các mô hình Bayes là cách để xử lý dữ liệu bị thiếu. Lý do là vì chúng rất linh hoạt trong việc bao gồm các phân phối cho từng biến, cho phép nhiều loại phân phối khác nhau và có thể dễ dàng kết hợp tính biến đổi được đưa ra bởi dữ liệu bị thiếu trên các dự đoán, vào các ước tính mô hình tổng thể (đó là mẹo với nhiều lần cắt ngang trong đó bạn sau đó phải bằng cách nào đó kết hợp kết quả). Tất nhiên, những phương pháp này không phải là dễ nhất và có thể mất nhiều thời gian đào tạo và sử dụng.
Vì vậy, điều đó không thực sự trả lời câu hỏi của bạn, nhưng giải thích một chút lý do tại sao các khuôn khổ hoàn toàn chung để xử lý sự thiếu sót là khó khăn. Trong gói semutils của tôi cho các ma trận hiệp phương sai, tôi sử dụng lavaan bên dưới để sử dụng ML. Tôi làm điều đó bởi vì tôi giả sử cho một ma trận hiệp phương sai phương sai rằng dù sao bạn cũng đang sử dụng các biến liên tục để tôi cho rằng người dùng của tôi đã giả sử MVN cho dữ liệu của họ.
Điều này có nghĩa là nếu tất cả các biến bị thiếu là liên tục, lavaan , gói mô hình phương trình cấu trúc (SEM) là một gói tốt để sử dụng cho FIML trong R.
Bây giờ trở lại câu hỏi ban đầu của tôi. Ý định của tôi là có một sửa chữa ma thuật cho sự mất tích khi chạy hồi quy tuyến tính. Tất cả các biến của tôi bị thiếu là tốt đẹp và liên tục. Vì vậy, tôi đã tiến hành chạy các phân tích của mình theo hai phong cách:
- Cách thông thường với nhiều lần cắt cụt
- Trong phong cách SEM với dung nham sử dụng FIML.
Tôi đã bỏ lỡ rất nhiều thứ bằng cách thực hiện hồi quy theo kiểu SEM. Cả hai kiểu đều cho các hệ số và bình phương R tương tự nhau, nhưng trong kiểu SEM tôi không nhận được thử nghiệm quan trọng của hồi quy (giá trị F điển hình với df), thay vào đó tôi có các chỉ số phù hợp không hữu ích vì tôi đã sử dụng hết mức độ của mình tự do. Ngoài ra, khi một mô hình có R2 lớn hơn mô hình khác, tôi không thể tìm ra cách so sánh xem sự khác biệt có đáng kể hay không. Ngoài ra, thực hiện hồi quy theo cách thông thường cho phép truy cập vào một loạt các thử nghiệm cho các giả định hồi quy là vô giá. Để có câu trả lời chi tiết hơn về vấn đề này, hãy xem câu hỏi khác của tôi đã được @StasK trả lời độc đáo .
Vì vậy, kết luận dường như là dung nham là một gói hợp lý cho FIML trong R, tuy nhiên việc sử dụng FIML phụ thuộc vào các giả định thống kê và loại phân tích mà người ta đang tiến hành. Theo như hồi quy (không có mô hình biến tiềm ẩn), việc loại bỏ nó khỏi các chương trình SEM và sử dụng nhiều thuật ngữ có lẽ là một bước đi khôn ngoan.