是爲了p = 2
和數據樣本N
的單變量自迴歸AR模型由u
激發時是高斯零平均噪聲和方差sigma_u^2
。
我知道函數cov(x)
,但是如何使用它得到AR模型係數的pxp協方差矩陣C(n)及其逆矩陣S(n)= C(n)。爲逆協方差矩陣的數學公式,S(n)被表示爲
其中A_1和A_2是下三角Toeplitz矩陣。
我可以直接做pinv(Cov(coefficients))
?我也不確定如何將參數作爲AR係數傳遞給函數。
如何實現這個公式?謝謝你的幫助
是爲了p = 2
和數據樣本N
的單變量自迴歸AR模型由u
激發時是高斯零平均噪聲和方差sigma_u^2
。
我知道函數cov(x)
,但是如何使用它得到AR模型係數的pxp協方差矩陣C(n)及其逆矩陣S(n)= C(n)。爲逆協方差矩陣的數學公式,S(n)被表示爲
其中A_1和A_2是下三角Toeplitz矩陣。
我可以直接做pinv(Cov(coefficients))
?我也不確定如何將參數作爲AR係數傳遞給函數。
如何實現這個公式?謝謝你的幫助
你的問題完全是病態的,正如其他人所指出的,所以我會鼓勵你做一些閱讀並思考你真正想要做什麼首先。儘管如此,我可以提供一些指導,與編程相比,這更多的是理清概念。根據這個問題和評論,你的問題應該被重新表述爲:「如何通過最大似然估計來估計參數的AR(n)模型參數的協方差矩陣?」在這種情況下,我們可以回答如下。
>> rng(0);
>> n = 10000;
>> x = rand(n,2);
b
是您的參數估計向量,並且C
是標準錯誤的相應向量。>> X = [x,ones(n,1)];
>> [b,C]=lscov(X,y)
b =
4.9825
9.9501
20.0227
C =
0.0347
0.0345
0.0266
>> err = @(b) y - X*b
err =
@(b)y-X*b
>> std(err(b))
ans =
0.9998
>> b0 = [b; std(err(b))];
>> nll = @(b) (n/2)*log(2*pi*b(end)^2) + (1/(2*b(end)^2))*sum(err(b(1:end-1)).^2);
fminsearch
,fminunc
等)做MLE。>> bmle = fminsearch(nll,b0)
bmle =
4.9825
9.9501
20.0227
0.9997
不出所料,估計是幾乎相同,我們OLS下獲得的,這正是我們所期望的,當誤差是正態分佈的,而這就是爲什麼大多數人選擇只是在做OLS除非有一些令人信服的理由認爲錯誤是非正常的。協方差矩陣可以通過得分的外積來估計,這在正常情況下是一個特別簡單的表達式。
>> inv(X'*X/bmle(end))
ans =
0.0012 0.0000 -0.0006
0.0000 0.0012 -0.0006
-0.0006 -0.0006 0.0007
最後,標準誤差與我們在最小二乘情況下得到的結果相匹配。
>> sqrt(diag(inv(X'*X/bmle(end))))
ans =
0.0347
0.0345
0.0266
編輯:對不起,我剛剛意識到我的測試數據是橫截面而不是時間序列數據。我會盡快解決這個問題。但估算模型的方法不變。
對不起,在這麼晚的時候回覆。我正在將你的技術應用到我的實現中,不幸的是,有很多問題。這可能是由於我不正確的理解。你能看一下嗎? – SKM
因此,我將時間序列模型擬合到AR中,並使用命令aryule()使用OLS估計參數。這給了我2個參數。現在,我嘗試通過改變噪聲的方差來估計零均值高斯白噪聲,這是sigma^2(在我的問題中)。那麼我怎麼能在每個時刻n實現這個協變公式S? :inv(sigma^2)*(A_1 * A_1' - A_2 * A_2')我不關注Toeplitz矩陣,A_1和A_2將在這種情況下以及係數估計的作用。在你的例子中,很容易發現估計值在分母 – SKM
中使用aryule()不是內置函數,我不確定你使用的是什麼函數。但是我可以從名稱中猜出它與Yule-Walker方程有關。這些只是讓你在自迴歸模型暗示的自協方差函數和自協方差函數隱含的自迴歸模型之間進行反演。那麼你是否真的在尋找估計的自協方差函數?這與估計的自迴歸參數對應的協方差矩陣不同。無論如何,我會建議該線程被關閉,因爲這不是編程... –
如您所見,StackOverflow不支持TeX/LaTeX。請刪除它(並且絕對不要將它格式化爲代碼,除非它實際上是代碼)。如果您絕對需要顯示一個公式,請使用已完成的圖像。 – horchler
@horchler:我已經爲AR模型的方程建立了一個圖像,謝謝:) – SKM
我知道'cov'的東西,但不知道AR。你有什麼AR模型的輸出? 'cov()'函數用於數值計算變量的協方差,給定一組觀察/變量本身的樣本(input =觀察值x變量數組)。不知道這是這種情況。如果你想要係數的協方差,你是否有一個公式來產生係數本身的樣本? (這些'a_i'值是那些係數?)AR可能有一個封閉形式的解決方案,但我不知道它是什麼。 –