2011-04-23 65 views
3

我是新來的R和協整,所以請耐心等待,因爲我試圖解釋我在做什麼。我試圖在加拿大/美國西部電力系統中找到1500-2000個電壓變量之間的協整變量。頻率是每小時(常見於功率),並且協整組合可以少至N個變量和最多M個變量。R,協整,多變量,co.ja(),johansen

我試圖用ca.jo但這裏是我碰到的問題:

1)ca.jo(約翰森)有限制的變量的數目可與

2工作) ca.jo似乎強制y(t)向量中的第一個變量是因變量(見下文)。

特徵向量,歸一化到第一列:(這些是協整關係)

  V1.l2  V2.l2  V3.l2 
V1.l2 1.0000000 1.0000000 1.0000000 
V2.l2 -0.2597057 -2.3888060 -0.4181294 
V3.l2 -0.6443270 -0.6901678 0.5429844 

正如你可以看到ca.jo嘗試查找3個變量的線性組合,但通過迫使在第一可變係數(在這種情況下V1)爲1(即因變量)。我的理解是,ca.jo會嘗試找到所有組合,以便將每個變量選作一個因變量。您可以在ca.jo的文檔中給出的示例中看到相同的處理方法。 3)ca.jo似乎找不到y(t)向量中少於變量數量的線性組合。因此,如果有5個變量,其中3個是協整的(即V1〜V2 + V3),那麼ca.jo就無法找到這個組合。也許我沒有正確使用ca.jo,但我的預期是V1〜V2 + V3與V1〜V2 + V3 + 0 x V4 + 0 x V5相同的協整集合。換句話說,不協整的變量的係數應該爲零,ca.jo應該找到這種類型的組合。

我會非常感謝一些進一步的見解,因爲我對R和協調方面相當陌生,並且在過去的2個月裏教了我自己。

謝謝。

我也張貼在nabble:

http://r.789695.n4.nabble.com/ca-jo-cointegration-multivariate-case-tc3469210.html

+0

@user,你可以考慮在http://stats.stackexchange.com上提問這個問題 – 2011-04-23 21:47:02

+0

@Brandon不幸的是,這是在發佈前3小時完成的,但是stats.stackexchange.com的有用性,到期由於缺乏反應能力,OP受到了他本人的不友好的質疑(因此我對這個問題表示歉意,我的投票結束了關於統計數據的問題)。 – chl 2011-04-24 07:35:48

+0

@chl,我可以理解爲什麼這可能會被統計數據忽略。它對於特定的軟件包非常具體。也許聯繫軟件包作者會是一個更好的建議? – 2011-04-24 08:14:45

回答

4

我不是專家,但因爲沒有人響應,我要去嘗試採取刺在這一個..編輯:我注意到我剛剛回答了一個4歲的問題。希望未來可能對其他人有用。

您的一般理解是正確的。我不會詳細介紹整個過程,但會嘗試提供一些一般的見解。 Johansen過程所做的第一件事就是創建一個與VAR數據最爲一致的VAR模型(​​這就是爲什麼您需要VAR的滯後時間作爲過程輸入的原因)。然後,程序將通過查看其等級來研究VECM的非滯後成分矩陣:如果變量不是協整的,那麼矩陣的秩與0不會顯着不同。更直觀的方式來理解johansen VECM方程應注意與模型的每個不同行的ADF過程的可比性。

此外,矩陣的秩與它的特徵值(特徵根)的數目不等於零。每個特徵值與不同的協整向量相關聯,其等於其相應的特徵向量。因此,從零開始的顯着不同的特徵值表示顯着的協整向量。向量的意義可以用兩個不同的統計數據來測試:最大統計量或跟蹤統計量。跟蹤測試測試了r個協整向量與r個以上協整向量的替代值相比是否小於或等於r協整向量的零假設。相反,最大特徵值檢驗檢驗r協整向量的零假設與r + 1協整向量的替代方法。

現在對於一個例子,

# We fit data to a VAR to obtain the optimal VAR length. Use SC information criterion to find optimal model. 
varest <- VAR(yourData,p=1,type="const",lag.max=24, ic="SC") 
# obtain lag length of VAR that best fits the data 
lagLength <- max(2,varest$p) 

# Perform Johansen procedure for cointegration 
# Allow intercepts in the cointegrating vector: data without zero mean 
# Use trace statistic (null hypothesis: number of cointegrating vectors <= r) 
res <- ca.jo(yourData,type="trace",ecdet="const",K=lagLength,spec="longrun") 

testStatistics <- [email protected] 
criticalValues <- [email protected] 

# chi^2. If testStatic for r<= 0 is greater than the corresponding criticalValue, then r<=0 is rejected and we have at least one cointegrating vector 
# We use 90% confidence level to make our decision 
if(testStatistics[length(testStatistics)] >= criticalValues[dim(criticalValues)[1],1]) 
{ 
    # Return eigenvector that has maximum eigenvalue. Note: we throw away the constant!! 
    return([email protected][1:ncol(yourData),which.max([email protected])]) 
} 

這段代碼檢查是否存在至少一個協整向量(R < = 0),然後返回具有最高協整性或者換句話說載體,具有最高特徵值(lamda)的矢量。

關於你的問題:程序不「強制」任何東西。它檢查所有組合,這就是爲什麼你有3個不同的載體。我的理解是,該方法只是將矢量縮放/歸一化爲第一個變量。

關於您的其他問題:程序將計算的量,殘留的具有最強均值回覆/平穩屬性的向量。如果一個或多個的變量的不這些性質進一步有助於然後在矢量這個變量分量的確會0。然而,如果該組件值不爲0,則意味着「更強」協整是通過包括髮現模型中額外的變量。

此外,你可以測試你的組件的測試意義。約翰森允許研究者通過查看假設如 上在VECM非滯後分量矩陣的限制來測試有關在協整關係的一個或多個係數 假說。如果存在r個協整向量,則只有它們的這些線性組合或線性變換或協整向量的組合將是平穩的。但是,我不知道如何在R.

可能執行這些額外的檢查,爲你,最好的方法是先測試包含的變量數比較少的組合。如果您不想要,您可以選擇不向這些協整子集添加額外的變量。但如前所述,增加其他變量可能會增加殘差的協整性/平穩性。這將取決於您的要求,不管這是否是您想要的行爲。