2013-06-11 56 views
3

我通過使用最大似然法通過函數fminsearch估計參數,但我不知道如何拿出參數的標準誤差(以計算p-值)。如何找到估計參數的標準誤差

這是我的模型代碼:

function f = myRegime1(p,y,o) 

    T = size(y); 
    x = 0; 
    xi1 = 0.8; 
    xi2 = 1-xi1; 
    LL = 0; 

    for t = 2:T 

     k = o(t); 

     p11 = exp(p(1)+p(2)*k)/(1+exp(p(1)+p(2)*k)); 
     p22 = exp(p(3)+p(4)*k)/(1+exp(p(3)+p(4)*k)); 

     s = y(t); 
     f = p(5) + p(6)*o(t); 

     x(t) = s-f; 

     e1 = x(t)-p(7); 
     e2 = x(t)-p(8); 

     L1 = -log(2*pi) - log(sqrt(p(9))) - e1^2/(2*p(9)); 
     L2 = -log(2*pi) - log(sqrt(p(10))) - e2^2/(2*p(10)); 

     L = xi1*p11*L1 + xi1*(1-p11)*L2 + xi2*p22*L2 + xi2*(1-p22)*L1; 

     xi1 = (xi1*p11*L1 + xi2*(1-p22)*L1)/L; 
     xi2 = (xi1*(1-p11)*L2 + xi2*p22*L2)/L; 

     LL = LL+L; 
    end 

    f = LL; 

end 
+0

p值和置信區間是兩個不同的東西。獲取CI也很棘手,我相信它是基於所選模型。您可能想要使模型方程更加明確,並將問題遷移到交叉驗證的問題。 – Rasman

+0

p值應該滿足我的目的。你如何看待我能得到他們。 – Stanchev

回答

1

我想請您看看this discussion on matlabcentral這似乎解決您的問題。基本思想似乎是找到標準偏差和雅可比矩陣的數值估計值,然後從那裏計算出標準誤差。給出的代碼是相當有據可查的。

+0

我認爲你提到的文件很混亂,你能解釋一下嗎? – user1331843