Bagaimana saya bisa menguji

8

Saya memiliki beberapa ratus perkiraan parameter yang dihitung dari dua model yang berbeda dan saya ingin tahu apakah parameter ini memiliki varian yang berbeda.

Apa yang dimaksud dengan tes langsung untuk membandingkan varian dari parameter ini? (Arti langsung, paling tidak asumsi).

Abe
sumber
Apakah Anda membandingkan varian (seperti yang ditegaskan di baris pertama) atau berarti (seperti yang ditunjukkan pada baris ketiga)?
whuber
@whuber aku bingung sendiri; Saya sudah mengklarifikasi pertanyaan saya.
Abe
@Abe Sepertinya sekarang Anda telah membalik "berarti" dan "varians" tetapi masih ada kontradiksi! (Kecuali jika mungkin Anda ingin membandingkan varian mean). Apa yang Anda maksud dengan "variabel": sarana atau nilai-nilai yang mendasari di mana mereka didasarkan?
whuber
@whuber maaf, apakah itu lebih baik?
Abe
@Abe Judul baru sangat membantu. Tapi hanya untuk menjadi jelas: adalah sigma-squareds yang varians dari sarana atau yang mendasari variabel yang di atasnya berarti didasarkan?
whuber

Jawaban:

7

Untuk membandingkan varian , Wilcox menyarankan metode bootstrap persentil. Lihat bab 5.5.1 dari 'Pengantar Estimasi Kuat dan Pengujian Hipotesis' . Ini tersedia mulai comvar2dari paket wrs di R.

sunting : untuk menemukan jumlah perbedaan bootstrap yang harus dipotong dari setiap sisi untuk nilai yang berbeda dariα, orang akan melakukan studi Monte Carlo, seperti yang disarankan oleh Wilcox. Saya punya yang cepat dan kotor di sini di Matlab (bebek dari sepatu yang dilempar):

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');

Saya mendapatkan plot yang agak tidak membantu: masukkan deskripsi gambar di sini

Sedikit peretasan menunjukkan bahwa model merupakan bentuk l+0.5=exp5.18α0.94n0.067cocok dengan simulasi Monte Carlo saya dengan cukup baik, tetapi mereka tidak memberikan hasil yang sama seperti yang dikutip Wilcox dalam bukunya. Anda mungkin lebih baik menjalankan sendiri eksperimen ini sesuai keinginan Andaα.

sunting Saya menjalankan eksperimen ini lagi, menggunakan lebih banyak ulangan (218) per ukuran sampel. Berikut adalah tabel nilai-nilai empirisl. Baris pertama adalah NaN, kemudian alpha (tipe I rate). Setelah itu, kolom pertama adalah ukuran sampel,n, maka nilai empiris dari l. (Saya harapkan itu sebagain kami akan memiliki l599α/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
sumber
@shabbychef terima kasih telah menunjukkan saya ke arah ini. Hanya butuh sekitar 5 menit untuk mengunduh, membaca bab bagian, dan menghitung; sangat dihargai, tetapi saya akan bertahan untuk menerima jawaban Anda dengan harapan bahwa metode lain akan disarankan - karena ini agak terbatas (hanya tes pada alpha = 0,05, dan mungkin ada pilihan lain untuk sampel besar seperti pada kasus sekarang)
Abe
@shabbychef Saya sudah memberi +1 tetapi sangat tidak beruntung dengan paket R - OS X build tidak termasuk fungsi yang disebutkan di atas :(
chl
@chl AFAIK paket ini hanya bundel yang nyaman untuk fungsi-fungsi yang tersedia di www-rcf.usc.edu/~rwilcox/Rallfun-v13
caracal
@Abe: untuk nilai α0.05, Wilcox menguraikan metode untuk membangun nilai cutoff dari l dan u, tapi saya setuju akan lebih baik jika mereka tersedia sebagai fungsi kasar α.
shabbychef
@shabbychef Saya bingung - dalam buku ini tertulis 'metode hanya dapat diterapkan dengan α=0.05, modifikasi berdasarkan yang lain αnilai belum diturunkan "? Makalah abstrak 2002-nya mengisyaratkan sebaliknya, tetapi saya tidak dapat mengaksesnya.
Abe