Re: [問題] 如何證明i.i.d.已回收

看板MATLAB作者 (!H45)時間16年前 (2009/11/25 00:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《jack555 (Jason Mraz !!!)》之銘言: : ※ [本文轉錄自 Statistics 看板] : 作者: jack555 (Jason Mraz !!!) 看板: Statistics : 標題: [問題] 如何證明i.i.d. : 時間: Tue Nov 24 14:32:43 2009 : 各位好,小弟在此有個小問題請教,假設一個由randn產生的矩陣如下: : A = randn(2,2,100)+j*randn(2,2,100); : B1 = A(1,1,:); : B2 = A(1,2,:); : B3 = A(2,1,:); : B4 = A(2,2,:); : 那請問如何證明B1~B4互相都是i.i.d.呢? : 是用xcorr 去求corss-correlation嗎? : 假若B1~B4並非為i.i.d.那如何去產生一個都為i.i.d.且mean = 0,var = sigma^2 : 的A矩陣呢? : 以上,麻煩各位解惑 ^^ 恕我簡化您的題目: 假設一個隨機向量 X = (X1, X2), 其樣本向量 A = (A1, A2) 產生法如下: A = randn(2, 1); 請提出一個猜測法 (hypothesis) 來驗證 X ~ N(0, I) 解答: 從 X 取出 10^5 個向量: A 計算其樣本均值: m1, m2 樣本變異量: v1, v2 樣本共變異量: r n = 1e5; A = randn(2, n); m1 = mean(A(1, :)) m2 = mean(A(2, :)) v1 = n / (n - 1) * var(A(1, :)) v2 = n / (n - 1) * var(A(2, :)) r = sum((A(1, :) - m1) .* (A(2, :) - m2)) / (n - 1) 假設 X ~ N(0, I) 根據定理:P[|E[X] - Mn(X)| > c] < Var[X] / (nc^2) 其中 Mn(X) 是 X 的 n 個樣本均值 設 c = 0.01,計算樣本和期望值的差異大於 0.01 的機率 P[|E[X1] - m1| > 0.01] < 1 / (n * 0.01^2) = 10000/n P[|E[X2] - m2| > 0.01] < 1 / (n * 0.01^2) = 10000/n 由於我們取 10^5 個向量,所以 n = 10^5 P[|E[X1] - m1| > 0.01] < 1 / (10^5 * 0.01^2) = 10% P[|E[X2] - m2| > 0.01] < 1 / (10^5 * 0.01^2) = 10% 最後得到 m1, m2 與真正的 E[X1], E[X2] 差異超過 0.01 的機率不會超過 10% 另外三個 v1, v2, r 不是樣本均值我就不會算了。 因此,我們可以提出一個猜測法: -0.01 < m1 < 0.01 -0.01 < m2 < 0.01 -0.99 < v1 < 1.01 % 下面三式未驗證其機率 -0.99 < v2 < 1.01 -0.01 < r < 0.01 以上五式同時成立時,即猜測 X ~ N(0, I) 若任一式不成立時則否。 完整 MATLAB 測試碼如下: n = 1e5; A = randn(2, n); m1 = mean(A(1, :)); m2 = mean(A(2, :)); v1 = n / (n - 1) * var(A(1, :)); v2 = n / (n - 1) * var(A(2, :)); r = sum((A(1, :) - m1) .* (A(2, :) - m2)) / (n - 1); if abs(m1) < 0.01 && ... abs(m2) < 0.01 && ... abs(v1 - 1) < 0.01 && ... abs(v2 - 1) < 0.01 && ... abs(r) < 0.01 disp('OK'); else disp('The test was failed'); end 請翻閱 Hypothesis Testing 以取得相關知識。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.235.24
文章代碼(AID): #1B30nO2D (MATLAB)
文章代碼(AID): #1B30nO2D (MATLAB)