Tại sao điều này nhiều chất lượng thấp?


9

Hãy xem xét mã R sau đây:

> data <- data.frame(
            a=c(NA,2,3,4,5,6),b=c(2.2,NA,6.1,8.3,10.2,12.13),c=c(4.2,7.9,NA,16.1,19.9,23))
> data
   a     b    c
1 NA  2.20  4.2
2  2    NA  7.9
3  3  6.10   NA
4  4  8.30 16.1
5  5 10.20 19.9
6  6 12.13 23.0

Như bạn có thể thấy tôi đã thiết kế dữ liệu một cách thô bạo c = 2*b = 4*a. Như vậy, tôi sẽ mong đợi các giá trị còn thiếu sẽ ở xung quanh a=1, b=2, c=12. Vì vậy, tôi đã thực hiện phân tích:

> imp <- mi(data)
Beginning Multiple Imputation ( Sat Oct 18 03:02:41 2014 ):
Iteration 1 
 Chain 1 : a*  b*  c*  
 Chain 2 : a*  b*  c*  
 Chain 3 : a*  b*  c*  
Iteration 2 
 Chain 1 : a*  b   c   
 Chain 2 : a*  b*  c*  
 Chain 3 : a   b*  c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a*  b*  c*  
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a*  b   c   
Iteration 5 
 Chain 1 : a   b   c*  
 Chain 2 : a   b*  c   
 Chain 3 : a   b*  c   
Iteration 6 
 Chain 1 : a*  b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a   b   c*  
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c*  
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b*  c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a*  b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c*  
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 20 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 21 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 22 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 23 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 24 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 25 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 26 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 27 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 28 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 29 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
mi converged ( Sat Oct 18 03:02:45 2014 )
Run 20 more iterations to mitigate the influence of the noise...
Beginning Multiple Imputation ( Sat Oct 18 03:02:45 2014 ):
Iteration 1 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 2 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 5 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 6 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 20 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Reached the maximum iteration, mi did not converge ( Sat Oct 18 03:02:48 2014 )

Và cuối cùng đã quan sát bộ dữ liệu hoàn thành:

> mi.completed(imp)
[[1]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10 16.1
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[2]]
  a     b    c
1 2  2.20  4.2
2 2  6.10  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[3]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

Như bạn có thể thấy các giá trị được liệt kê không phải là những gì tôi mong đợi. Trên thực tế, chúng trông giống như kết quả của việc cắt bỏ đơn lẻ vì các giá trị còn thiếu dường như được lấy từ các bản ghi liền kề.

Tôi đang thiếu gì?

Tôi nên lưu ý rằng "kiến thức" về thống kê của tôi chủ yếu giới hạn ở những gì tôi mơ hồ nhớ được từ một khóa học giới thiệu mà tôi đã học ~ 14 năm trước. Tôi chỉ tìm kiếm một cách đơn giản để áp đặt các giá trị bị thiếu, nó không phải là cách tối ưu nhất nhưng nó cần phải có ý nghĩa nào đó (mà tôi không thể tạo ra các kết quả này). Đây có thể là trường hợp mikhông phải là cách tiếp cận chính xác để đạt được những gì tôi muốn (có lẽ nên sử dụng dự đoán thay thế), vì vậy tôi sẵn sàng đề xuất.

Tôi cũng đã thử một cách tiếp cận tương tự với mice, dẫn đến kết quả tương tự.

CẬP NHẬT Amelia hoạt động tuyệt vời ra khỏi hộp. Sẽ vẫn rất thú vị khi biết những gì tôi thiếu với mi / chuột.


1
Bạn đang cố gắng làm gì với nhiều lần cắt cụt? Thật khó cho tôi để trả lời câu hỏi này mà không có thêm một chút bối cảnh. [Tôi cũng không thấy ngạc nhiên khi chất lượng của việc từ chối của bạn thấp do bạn chỉ làm việc với ba biến và sáu bản ghi]
Patrick S. Forscher

@ PatrickS.Forscher bạn đã đúng. Tôi vừa thử một bài kiểm tra tương tự với 100 hồ sơ và kết quả như tôi mong đợi. Vui lòng đưa ra câu trả lời để tôi có thể chấp nhận câu hỏi đó và nếu bạn có thể chỉ định một số mức tối thiểu cho sân bóng để tranh luận thành công thì sẽ rất tuyệt.
t0x1n

Bạn sẽ nói gì về kết quả sau đây? > mi.completed(imp) [[1]] a b c 1 0.289 2.20 4.2 2 2.000 2.57 7.9 3 3.000 6.10 12.7 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[2]] a b c 1 0.603 2.20 4.2 2 2.000 5.82 7.9 3 3.000 6.10 13.4 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[3]] a b c 1 1.05 2.20 4.2 2 2.00 4.18 7.9 3 3.00 6.10 12.0 4 4.00 8.30 16.1 5 5.00 10.20 19.9 6 6.00 12.13 23.0Xin lỗi về định dạng, nhưng tôi đoán đó là điều tốt nhất tôi có thể làm trong một bình luận.
Alexanderr Blekh

Amelia II rõ ràng là cho nhiều lần cắt ngang của chuỗi thời gian cắt ngang (hay còn gọi là nghiên cứu bảng). MICE dành cho dữ liệu chuỗi thời gian không cắt ngang (hoặc ít nhất, MICE tạo ra các mức độ kém cho chuỗi thời gian đó, xem Honaker, J. và King, G. (2010). dữ liệu lựa chọn. Tạp chí Khoa học Chính trị Hoa Kỳ , 54 (2): 561 Từ581.)
Alexis

@AleksandrBlekh Tôi cũng không thích họ, tôi mong đợi một cái gì đó gần hơn với x/ 2x/4x
t0x1n

Câu trả lời:


13

Cho rằng bạn đang sử dụng sáu trường hợp [bản ghi] và ba biến, chất lượng của việc cắt bỏ của bạn sẽ khá thấp.

m

qmqmU¯qmB

BU¯

U¯Bγ

γ=r+2df+3r+1

rBU¯

r=(1+1m)BU¯

Brγγ

dfγBU¯df

df=(m1)(1+mU¯(m+1)B)2

Bdfγ

B

  1. B
  2. B

B

B

qmqmmq

Do đó, nói chung, việc tăng số lượng các trường hợp (hoặc chính xác hơn là giảm tỷ lệ các giá trị bị thiếu) sẽ làm tăng chất lượng từ chối.

B

B

qm

Do đó, nói chung, việc tăng số lượng biến có sẵn trong bộ dữ liệu sẽ tăng chất lượng từ chối, miễn là các biến phụ đó có nhiều thông tin về các giá trị bị thiếu.

Người giới thiệu

Rubin, DB (1996). Nhiều lần cắt cụt sau hơn 18 năm. Tạp chí của Hiệp hội Thống kê Hoa Kỳ , 91, 473-361.

Schafer, JL (1999). Đa cấp: Một mồi. Phương pháp thống kê trong nghiên cứu y học , 8, 3-15.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.