Làm cách nào tôi có thể kiểm tra ?


8

Tôi có vài trăm ước tính của một tham số được tính toán từ hai mô hình khác nhau và tôi muốn biết liệu các tham số này có phương sai khác nhau hay không.

Một thử nghiệm đơn giản để so sánh phương sai của các tham số này là gì? (ý nghĩa đơn giản, giả định ít nhất).


Bạn đang so sánh phương sai (như được khẳng định trong dòng đầu tiên) hoặc phương tiện (như được chỉ ra trong dòng thứ ba)?
whuber

@whuber Mình đã nhầm lẫn rồi; Tôi đã làm rõ câu hỏi của tôi.
Abe

@Abe Có vẻ như bây giờ bạn đã đảo ngược "nghĩa là" và "phương sai" nhưng vẫn còn một mâu thuẫn! (Trừ khi bạn có thể muốn so sánh phương sai của phương tiện.) Bạn có ý nghĩa gì bởi "biến": phương tiện hoặc các giá trị cơ bản mà chúng dựa trên?
whuber

@ xin lỗi, có tốt hơn không?
Abe

@Abe Tiêu đề mới giúp rất nhiều. Nhưng chỉ cần rõ ràng: là sigma bình phương phương sai của phương tiện hoặc của các biến cơ bản mà phương tiện dựa trên?
whuber

Câu trả lời:


7

Để so sánh phương sai , Wilcox gợi ý phương pháp bootstrap phần trăm. Xem chương 5.5.1 của 'Giới thiệu về ước tính mạnh mẽ và kiểm tra giả thuyết' . Điều này có sẵn như comvar2từ gói wrs trong R.

chỉnh sửa : để tìm số lượng chênh lệch bootstrap cần cắt từ mỗi bên cho các giá trị khác nhau của , người ta sẽ thực hiện một nghiên cứu ở Monte Carlo, theo đề xuất của Wilcox. Tôi có một cái nhanh và bẩn ở đây trong Matlab (vịt từ giày ném):α

randn('state',0);           %to make the results replicable.
alphas = [0.001,0.005,0.01,0.025,0.05,0.10,0.15,0.20,0.25,0.333];
nreps  = 4096;
nsizes = round(2.^ (4:0.5:9));
nboots = 599;
cutls  = nan(numel(nsizes),numel(alphas));

for ii=1:numel(nsizes)
    n = nsizes(ii);
    imbalance = nan(nreps,1);
    for jj=1:nreps
        x1 = randn(n,1);x2 = randn(n,1);
        %make bootstrap samples;
        x1b = x1(ceil(n * rand(n,nboots)));
        x2b = x2(ceil(n * rand(n,nboots)));
        %compute stdevs
        sig1 = std(x1b,1);sig2 = std(x2b,1);
        %compute difference in stdevs
        Dvar = (sig1.^2 - sig2.^2);
        %compute the minimum of {the # < 0} and {the # > 0}
        %in (1-alpha) of the cases you want this minimum to match
        %your l number; then let u = 599 - l + 1
        imbalance(jj,1) = min(sum(Dvar < 0),sum(Dvar > 0));
    end
    imbalance = sort(imbalance);
    cutls(ii,:) = interp1(linspace(0,1,numel(imbalance)),imbalance(:)',alphas,'nearest');
end
%plot them;
lh = loglog(nsizes(:),cutls + 1);
legend(lh,arrayfun(@(x)(sprintf('alpha = %g',x)),alphas,'UniformOutput',false))
ylabel('l + 1');
xlabel('sample size, n_m');

Tôi nhận được âm mưu khá vô ích: nhập mô tả hình ảnh ở đây

Một chút tin tặc chỉ ra rằng một mô hình có dạng phù hợp với mô phỏng Monte Carlo của tôi khá tốt, nhưng chúng không cho kết quả tương tự như Wilcox trích dẫn trong cuốn sách của mình. Bạn có thể được phục vụ tốt hơn khi tự chạy các thử nghiệm này tại ưa thích của mình . αl+0.5=exp5.18α0.94n0.067α

chỉnh sửa Tôi đã chạy thử nghiệm này một lần nữa, sử dụng nhiều lần lặp lại ( ) cho mỗi kích thước mẫu. Đây là bảng các giá trị thực nghiệm của . Hàng đầu tiên là NaN, sau đó là alpha (tỷ lệ loại I). Theo đó, cột đầu tiên là kích thước của các mẫu, , sau đó là các giá trị thực nghiệm của . (Tôi hy vọng rằng từ chúng tôi sẽ có ) l n l n l 599 α / 2218lnlnl599α/2

NaN,0.001,0.005,0.01,0.025,0.05,0.1,0.15,0.2,0.25,0.333
16,0,0,1,4,9,22,35,49,64,88
23,0,0,1,4,10,23,37,51,66,91
32,0,0,1,4,10,24,38,52,67,92
45,0,0,1,5,11,25,39,54,69,94
64,0,0,2,5,12,26,41,55,70,95
91,0,1,2,6,13,27,42,56,71,96
128,0,1,2,6,13,28,42,58,72,97
181,0,1,2,6,13,28,43,58,73,98
256,0,1,2,6,14,28,43,58,73,98
362,0,1,2,7,14,29,44,59,74,99
512,0,1,2,7,14,29,44,59,74,99

@shabbychef cảm ơn đã chỉ cho tôi theo hướng này. Tôi chỉ mất khoảng 5 phút để tải xuống, đọc chương chương và tính toán; rất được đánh giá cao, nhưng tôi sẽ tiếp tục chấp nhận câu trả lời của bạn với hy vọng rằng các phương pháp khác sẽ được đề xuất - vì phương pháp này khá hạn chế (chỉ thử nghiệm ở alpha = 0,05 và có thể có các tùy chọn khác cho các mẫu lớn như trong trường hợp hiện tại)
Abe

@shabbychef Tôi đã +1 nhưng rất không may mắn với gói R - Bản dựng OS X không bao gồm chức năng đã nói ở trên :(
chl 21/03

@chl AFAIK gói chỉ là một bó thuận lợi cho các chức năng có sẵn tại www-rcf.usc.edu/~rwilcox/Rallfun-v13
caracal

@Abe: đối với các giá trị của , Wilcox phác thảo phương pháp xây dựng các giá trị ngưỡng của và , nhưng tôi đồng ý rằng sẽ rất tốt nếu chúng có sẵn dưới dạng các hàm thô của . l u αα0.05luα
shabbychef

@shabbychef Tôi bối rối - trong cuốn sách có ghi 'phương pháp chỉ có thể được áp dụng với , các sửa đổi dựa trên các giá trị khác chưa được dẫn xuất "? truy cập nó.αα=0.05α
Abe
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.