Makroekonomik göstergelere dayalı piyasa tahmini

 

Dolayısıyla görev, mevcut ekonomik göstergelere dayalı olarak S&P 500 endeksini tahmin etmektir.

Adım 1: Göstergeleri bulun. Göstergeler burada halka açıktır: http://research.stlouisfed.org/fred2/ Bunlardan 240.000 adet vardır. En önemlisi GSYİH büyümesi. Bu gösterge her çeyrekte hesaplanır. Dolayısıyla adımımız - 3 ay. Daha kısa bir süre için tüm göstergeler 3 aylık bir süre için yeniden hesaplanır, geri kalanı (yıllık) atılır. Ayrıca Amerika Birleşik Devletleri dışındaki tüm ülkeler için göstergeleri ve derin bir geçmişi olmayan (en az 15 yıl) göstergeleri de atıyoruz. Böylece, özenli bir çalışma ile bir dizi göstergeyi filtreliyoruz ve yaklaşık 10 bin gösterge elde ediyoruz. S&P 500 endeksini bir veya iki çeyrek ilerisini tahmin etmek için daha spesifik bir görev formüle ediyoruz, üç aylık periyotlarla 10 bin ekonomik gösterge mevcut. R'de mümkün olmasına rağmen her şeyi MatLab'da yapıyorum.

Adım 2: Türev alma ve normalleştirme yoluyla tüm verileri durağan forma dönüştürün. Burada birçok yöntem var. Ana şey, orijinal verilerin dönüştürülen verilerden geri yüklenebilmesidir. Durağanlık olmadan hiçbir model çalışmayacaktır. Dönüşüm öncesi ve sonrası S&P 500 serisi aşağıda gösterilmiştir.

Adım 3: Bir model seçin. Belki bir sinir ağı. Çok değişkenli doğrusal regresyon yapılabilir. Çok değişkenli polinom regresyonu yapabilirsiniz. Doğrusal ve doğrusal olmayan modelleri test ettikten sonra, verilerin çok gürültülü olduğu ve doğrusal olmayan bir modele girmenin anlamsız olduğu sonucuna varıyoruz. y = S&P 500 ve x = 10 bin göstergeden biri olan y(x) grafiği, neredeyse dairesel bir buluttur. Böylece, görevi daha da özel olarak formüle ediyoruz: çok değişkenli doğrusal regresyon kullanarak üç aylık dönemli 10 bin ekonomik göstergeye sahip S&P 500 endeksini bir veya iki çeyrek ileride tahmin edin.

Adım 4: En önemli ekonomik göstergeleri 10 bin arasından seçiyoruz (sorunun boyutunu küçültüyoruz). Bu en önemli ve zor adımdır. Diyelim ki S&P 500'ün tarihini 30 yıl (120 çeyrek) olarak alıyoruz. S&P 500'ü çeşitli türlerdeki ekonomik göstergelerin doğrusal bir bileşimi olarak temsil etmek için, bu 30 yılda S&P 500'ü doğru bir şekilde tanımlamak için 120 göstergeye sahip olmak yeterlidir. Ayrıca, 120 gösterge ve 120 S&P 500 değerinden oluşan bu kadar doğru bir model oluşturmak için göstergeler kesinlikle herhangi biri olabilir.Bu nedenle, giriş sayısını açıklanan fonksiyon değerlerinin sayısının altına düşürmeniz gerekir. Örneğin, en önemli 10-20 girdi göstergesini arıyoruz. Çok sayıda aday tabandan (sözlük) seçilen az sayıda girdiyle verileri tanımlamanın bu tür görevlerine seyrek kodlama denir.

Tahmin girdilerini seçmek için birçok yöntem vardır. hepsini denedim. İşte ana ikisi:

  1. Tüm 10.000 veriyi S&P 500 tahmin gücüne göre sınıflandırıyoruz.Öngörü gücü korelasyon katsayısı veya karşılıklı bilgi ile ölçülebilir.
  2. Alt kısımdaki 10 bin göstergenin tümünü inceliyoruz ve en küçük hatayla S&P 500'ü tanımlayan y_mod = a + b*x1 doğrusal modelini vereni seçiyoruz. Daha sonra kalan 10 bin -1 göstergeyi y - y_mod = c + d*x2'yi en az hatayla açıklayacak şekilde sıralayarak ikinci girişi tekrar seçiyoruz. Vb. Bu yönteme adım adım regresyon veya eşleştirme takibi denir.

İşte S&P 500 ile en yüksek korelasyon katsayısına sahip ilk 10 gösterge:

seri kimliği gecikme doğru Mut bilgisi
'PICRM' 2 0,315 0.102
'CWUR0000SEHE' 2 0.283 0.122
'CES1021000001' 1 0.263 0.095
'B115RC1Q027SBEA' 2 0.262 0.102
'CES1000000034' 1 0.261 0.105
'A371RD3Q086SBEA' 2 0.260 0.085
'B115RC1Q027SBEA' 1 0.256 0.102
'CUUR0000SAF111' 1 0.252 0.117
'CUUR0000SEHE' 2 0.251 0.098
'USMIN' 1 0.250 0.102

İşte S&P 500 ile en çok karşılıklı bilgi içeren ilk 10 gösterge:

seri kimliği gecikme doğru Mut bilgisi
'CPILEGSL' 3 0.061 0.136
'B701RC1Q027SBEA' 3 0.038 0.136
'CUSR0000SAS' 3 0.043 0.134
'GDPOT' 3 0.003 0.134
'NGDPPOT' 5 0.102 0.134
'OTHSEC' 4 0.168 0.133
'LNU01300060' 3 0.046 0.132
'LRAC25TTUSM156N' 3 0.046 0.132
'LRAC25TTUSQ156N' 3 0.046 0.131
'CUSR0000SAS' 1 0.130 0.131

Gecikme, simüle edilmiş S&P 500 serisine göre giriş serisinin gecikmesidir.Bu tablolardan görülebileceği gibi, en önemli girdileri seçmenin farklı yöntemleri, farklı girdi kümeleriyle sonuçlanır. Nihai hedefim model hatasını en aza indirmek olduğundan, ikinci girdi seçim yöntemini seçtim, yani. tüm girdilerin numaralandırılması ve en az hata veren girdinin seçimi.

Adım 5: Modelin hatasını ve katsayılarını hesaplamak için bir yöntem seçin. En basit yöntem COEX yöntemidir, bu nedenle bu yöntemi kullanan doğrusal regresyon çok popülerdir. RMS yöntemiyle ilgili sorun, aykırı değerlere, yani. bu aykırı değerler modelin katsayılarını önemli ölçüde etkiler. Bu duyarlılığı azaltmak için karesel hataların toplamı yerine mutlak hata değerlerinin toplamı kullanılabilir, bu da en küçük modül (LSM) veya sağlam regresyon yöntemine yol açar. Bu yöntem, doğrusal regresyondan farklı olarak model katsayıları için analitik bir çözüme sahip değildir. Genellikle modüller düzgün/türevlenebilir yaklaşım fonksiyonları ile değiştirilir ve çözüm sayısal yöntemlerle yapılır ve uzun zaman alır. Her iki yöntemi de denedim (yalın regresyon ve MHM) ve MHM'nin fazla bir avantajını fark etmedim. MHM yerine yoldan saptım. Durağan verileri farklılaştırarak elde etmenin ikinci adımında lineer olmayan bir normalizasyon işlemi ekledim. Yani orijinal seri x[1], x[2], ... x[i-1], x[i] ... önce x[2]-x[1] fark serisine dönüştürülür. .. x [i]-x[i-1] ... ve ardından her fark, işaret(x[i]-x[i-1])*abs(x[i]-x[ ile değiştirilerek normalleştirilir. i-1] )^u, burada 0 < u < 1. u=1 için, aykırı değerlere duyarlılığı ile klasik COSE yöntemini elde ederiz. u=0'da, giriş serisinin tüm değerleri, neredeyse hiç aykırı değer olmaksızın +/-1 ikili değerlerle değiştirilir. u=0.5 için MNM'ye yakın bir şey elde ederiz. Optimum u değeri 0,5 ile 1 arasında bir yerde bulunur.

Unutulmamalıdır ki, verileri durağan bir forma dönüştürmek için popüler yöntemlerden biri, serinin değerlerini bu değerlerin logaritmalarındaki farkla değiştirmektir, yani. log(x[i]) - log(x[i-1]) veya log(x[i]/x[i-1]). Benim durumumda böyle bir dönüşümün seçimi tehlikelidir, çünkü 10 bin girişten oluşan sözlükte sıfır ve negatif değerlere sahip birçok satır vardır. Logaritma ayrıca, RMS yönteminin aykırı değerlere duyarlılığını azaltma avantajına da sahiptir.Temelde, dönüşüm fonksiyonum sign(x)*|x|^u log(x ile aynı amaca sahiptir, ancak sıfır ve ile ilgili problemler olmadan) negatif değerler.

Adım 6: Yeni girdi verilerini değiştirerek ve önceki geçmiş bölümlerinde lineer regresyonla bulunan aynı model katsayılarını kullanarak model çıktısını hesaplayarak model tahminini hesaplayın. Burada, ekonomik göstergelerin ve S&P 500'ün üç aylık değerlerinin neredeyse aynı anda (3 aylık bir doğrulukla) geldiğini akılda tutmak önemlidir. Bu nedenle, bir sonraki çeyrek için S&P 500'ü tahmin etmek için model, S&P 500'ün mevcut üç aylık değeri ile en az 1 çeyrek gecikmeli girişler (Gecikme>=1) arasında kurulmalıdır. S&P 500'ün bir çeyrek ilerisini tahmin etmek için model, S&P 500'ün mevcut üç aylık değeri ile en az 2 çeyrek gecikmeli girişler (Gecikme>=2) arasında kurulmalıdır. Vb. Tahminlerin doğruluğu, gecikmenin 2'den fazla artmasıyla önemli ölçüde azalır.

7. Adım: Önceki geçmişe ilişkin tahminlerin doğruluğunu kontrol edin. Yukarıda açıklanan orijinal teknik (her girdiyi önceki geçmişe koymak, en küçük MSE'yi veren girdiyi seçmek ve bu girdinin yeni değerinden tahmini hesaplamak), rastgele veya boş tahminlerden bile daha kötü olan bir tahmin MSD'si üretti. Kendime şu soruyu sordum: geçmişe iyi uyan bir giriş neden gelecek için iyi bir öngörülebilir yeteneğe sahip olsun ki? Model girdilerini, bilinen verilerdeki en küçük regresyon hatasına göre değil, önceki tahmin hatalarına göre seçmek mantıklıdır.

Sonunda, modelim şu şekilde adım adım açıklanabilir:

  1. Stlouisfed'den ekonomik veriler yükleniyor (yaklaşık 10 bin gösterge).
  2. Preobrazeum verileri sabit bir forma dönüştürün ve normalleştirin.
  3. S&P 500 endeksinin, RMS yöntemiyle (doğrusal regresyon) analitik olarak çözülen doğrusal bir modelini seçiyoruz.
  4. Geçmişin uzunluğunu (1960 - Q2 2015) seçiyoruz ve bunu bir eğitim segmenti (1960 - Q4 1999) ve bir test segmenti (Q1 2000 - Q2 2015) olarak ayırıyoruz.
  5. Tahminlere 1960 + N + 1'den başlıyoruz; burada N*4, bilinen üç aylık S&P 500 değerlerinin ilk sayısıdır.
  6. İlk N verisinde, her ekonomik gösterge için y_mod = a + b*x şeklinde doğrusal bir model oluşturulur; burada y_mod, S&P 500 modelidir ve x, ekonomik göstergelerden biridir.
  7. Her model için N + 1 bar öngörüyoruz.
  8. Her modele göre N + 1 çubukların tahmin hatalarını hesaplıyoruz. Bu hataları hatırlıyoruz.
  9. Bilinen S&P 500 değerlerinin sayısını 1 artırıyoruz, yani. N + 1 ve eğitim segmentinin sonuna ulaşana kadar 6-9 arasındaki adımları tekrarlayın (Q4 1999). Bu adımda, her bir ekonomik gösterge için 1960 + N +1'den 1999'un 4. çeyreğine kadar tahmin hatalarını kaydettik.
  10. Modeli tarihin ikinci döneminde test etmeye başlıyoruz (Q1 2000 - Q2 2015).
  11. 10 bin girdinin her biri için 1960 - Q4 1999 için tahminlerin standart hatasını hesaplıyoruz.
  12. 10 bin girdiden 1960 - 1999 4. çeyrek için en düşük RMS tahminine sahip olanı seçiyoruz.
  13. 1960 - Q4 1999 için her ekonomik gösterge için y_mod = a + b*x doğrusal bir model oluşturuyoruz.
  14. Her model için Q1 2000'i tahmin ediyoruz.
  15. Önceki zaman aralığı (1960 - Q4 1999) için tahminlerin en düşük RMS'sine sahip seçilen girdinin tahmini, Q1 2000 için ana tahminimiz olarak seçilmiştir.
  16. Q1 2000 için tüm girdilerin tahmin hatalarını hesaplıyoruz ve bunları önceki zaman periyodu için aynı girdilerin RMS'sine ekliyoruz (1960 - Q4 1999).
  17. Q2 2000'e geçin ve temel tahmin hedefimiz olan S&P 500 için bilinmeyen bir değerle test alanının sonuna (Q2 2015) ulaşana kadar 12-17 arasındaki adımları tekrarlayın.
  18. Önceki bölümlerde tahminlerin en düşük standart sapmasına sahip girdiler tarafından yapılan Q1 2000 - Q4 2014 için tahmin hatalarını topluyoruz. Bu hata (err2) bizim örneklem dışı tahmin hata modelimizdir.

Kısacası, bir tahmincinin seçimi, önceki S&P 500 tahminlerinin RMS'lerine bağlıdır. Tahmin edici zamanla değişebilir, ancak test segmentinin sonunda temelde değişmeyi bırakır. Modelim, Q2 2015'i tahmin etmek için ilk girdi olarak 2 çeyrek gecikmeli PPICRM'yi seçti. 1960 - Q4 2014 için seçilen PPICRM(2) girişi ile S&P 500'ün lineer regresyonu aşağıda gösterilmektedir. Siyah daireler - doğrusal regresyon. Çok renkli daireler - 1960 - Q4 2014 için geçmiş veriler. Dairenin rengi zamanı gösterir.


Sabit S&P 500 tahminleri (kırmızı çizgi):

Ham formda S&P 500 tahminleri (kırmızı çizgi):

Grafik, modelin 2015'in ikinci çeyreğinde S&P 500'ün büyümesini öngördüğünü gösteriyor. İkinci bir girdi eklemek tahmin hatasını artırır:

1 err1=0.900298 err2=0.938355 PPICRM (2)

2 err1=0.881910 err2=0.978233 İZİN1 (4)

burada err1 regresyon hatasıdır. İkinci bir girdinin eklenmesiyle azaldığı açıktır. err2, rastgele tahmin hatasına bölünen ortalama karekök tahmin hatasıdır. Yani, err2>=1, modelimin tahmininin rastgele tahminlerden daha iyi olmadığı anlamına gelir. err2<1 modelimin tahmininin rastgele tahminlerden daha iyi olduğu anlamına gelir.

PPICRM = Üretici Fiyat Endeksi: Daha Fazla İşleme İçin Ham Maddeler

İZİN1 = Yapı Ruhsatı ile Yetkilendirilmiş Yeni Özel Konutlar - 1 Adet Yapılarda

Yukarıda açıklanan model bu şekilde yeniden ifade edilebilir. 10 bin ekonomisti bir araya getiriyoruz ve onlardan önümüzdeki çeyrek için piyasayı tahmin etmelerini istiyoruz. Her ekonomist kendi tahminini yapar. Ancak, yazdıkları ders kitabı sayısına veya geçmişte kazandıkları Nobel Ödülü sayısına göre bir tahmin seçmek yerine, tahminlerini toplamak için birkaç yıl bekliyoruz. Önemli sayıda tahminden sonra, hangi ekonomistin daha doğru olduğunu görüyoruz ve başka bir ekonomist onu doğrulukta geçene kadar tahminlerine inanmaya başlıyoruz.

Federal Reserve Economic Data - FRED - St. Louis Fed
Federal Reserve Economic Data - FRED - St. Louis Fed
  • fred.stlouisfed.org
Download, graph, and track 240,000 economic time series from 77 sources.
 
gpwr :
Devam edecek ...
Genel olarak ABD hükümetinin ve özel olarak Açık Piyasa Komisyonunun, mali piyasaları etkilemek için ABD işgücü piyasası ve ABD GSYİH'sına ilişkin makroekonomik istatistikleri tahrif edip manipüle ettiğinden defalarca şüphelenilmesi utanç verici mi?
 
Demi :
Genel olarak ABD hükümetinin ve özel olarak Açık Piyasa Komisyonunun, mali piyasaları etkilemek için ABD işgücü piyasası ve ABD GSYİH'sına ilişkin makroekonomik istatistikleri tahrif edip manipüle ettiğinden defalarca şüphelenilmesi utanç verici mi?
Evet, utanç verici. Ayrıca, yayınlanan verilerin yayınlandıktan sonra birçok kez düzeltilmesi gerçeği de kafa karıştırıcıdır. Ancak diğer yandan tüccarlar, ABD hükümetinin kendilerine sağladığı verilere tepki vererek, veriler tahrif edilmiş, eksik veya erken olup olmadığına bakılmaksızın piyasayı bir yönde hareket ettirir. Dolayısıyla, bu verilere dayanarak piyasayı tahmin etme yöntemi prensipte çalışmalıdır.
 
gpwr :
Evet, utanç verici. Ayrıca, yayınlanan verilerin yayınlandıktan sonra birçok kez düzeltilmesi gerçeği de kafa karıştırıcıdır. Ancak diğer yandan tüccarlar, ABD hükümetinin kendilerine sağladığı verilere tepki vererek, veriler tahrif edilmiş, eksik veya erken olup olmadığına bakılmaksızın piyasayı bir yönde hareket ettiriyor. Dolayısıyla, bu verilere dayanarak piyasayı tahmin etme yöntemi prensipte çalışmalıdır.

Yalnızca S&P ile mi ilgileniyorsunuz yoksa bu sadece bir örnek mi?

Sadece S&P'nin para birimleri oranına benzemeyen kendine özgü bir hareket modeli var.

 
Urain :

Sadece S&P ile mi ilgileniyorsunuz yoksa bu sadece bir örnek mi?

Sadece S&P'nin para birimleri oranına benzemeyen kendine özgü bir hareket modeli var.

(Paylaşılan) girdi verilerini bulma kolaylığı nedeniyle örnek alınmıştır. Bu şekilde her şeyi simüle edebilirsiniz: Rus ekonomisi, döviz kurları vb. Piyasa fiyatları, çok fazla gürültüye sahip oldukları için tahmin edilmesi en zor olanlardır. Fiziksel süreçlerin tahmini çok daha kolaydır.
 
gpwr :
Evet, utanç verici. Ayrıca, yayınlanan verilerin yayınlandıktan sonra birçok kez düzeltilmesi gerçeği de kafa karıştırıcıdır. Ancak diğer yandan tüccarlar, ABD hükümetinin kendilerine sağladığı verilere tepki vererek, veriler tahrif edilmiş, eksik veya erken olup olmadığına bakılmaksızın piyasayı bir yönde hareket ettiriyor. Dolayısıyla, bu verilere dayanarak piyasayı tahmin etme yöntemi prensipte çalışmalıdır.

Tamam hadi görelim. Bunu ben de yaptım.

Kalıcı istem-istek - ileri test

 
gpwr :

Dolayısıyla görev, mevcut ekonomik göstergelere dayalı olarak S&P 500 endeksini tahmin etmektir.

Çok ilginç bir konu. Bir veri dosyasına dayalı göstergeler oluşturmaya çalıştım: istihdam, yeni evlerin inşası , yeni evlerin satışı vb. Ve bilirsiniz, çıplak gözle, bazı verilerin borsa ile bir tür korelasyonu olduğunu görebilirsiniz. Ancak, görünüşe göre para birimi ile herhangi bir korelasyon yok. Temel ABD istatistiklerini kullandı.

Çok fazla veri türü seçtiğinizi düşünmüyor musunuz? Bence, piyasayı etkileyen değerli verilerden önemsiz verileri ayıklamak gerekiyor.

Ancak, nöral analize aşina değilim. Onun hakkında okumaya devam ediyorum ve eylem ilkesinin anlaşılır bir şekilde nerede açıklandığını henüz bulamadım.

 
regresyon algoritması, aralarında bariz bir bağlantı olmasa bile, herhangi bir veriye dayalı herhangi bir göstergeyi tahmin etmeye yardımcı olacaktır.
 
forexman77 :

Çok ilginç bir konu. Bir veri dosyasına dayalı göstergeler oluşturmaya çalıştım: istihdam, yeni evlerin inşası , yeni evlerin satışı vb. Ve bilirsiniz, çıplak gözle, bazı verilerin borsa ile bir tür korelasyonu olduğunu görebilirsiniz. Ancak, görünüşe göre para birimi ile herhangi bir korelasyon yok. Temel ABD istatistiklerini kullandı.

Çok fazla veri türü seçtiğinizi düşünmüyor musunuz? Bence, piyasayı etkileyen değerli verilerden önemsiz verileri ayıklamak gerekiyor.


Büyük veya küçük miktarda girdi verilerinin tümü görecelidir.

Başka bir şey daha önemli.

Tüm girdiler iki kategoriye ayrılır:

  • hedef değişken üzerinde etkisi olan
  • etkisi çok az veya hiç yok.

Ben kasıtlı olarak "etki" kelimesini kullanıyorum, korelasyon değil. Korelasyon boş bir araçtır, çünkü korelasyon her zaman bir değere sahiptir ve kaynak verilerin hedef değişken üzerindeki etkisini belirlemede temel olan "değer yok - NA" değerine sahip değildir.

Olmayan değişkenler (zayıf bir etkiye sahip - bunun niteliksel bir özellik olduğunu not ediyorum) hedef değişken üzerindeki etkinin belirlenmesinde gürültüdür. Aynı zamanda, anlam, algoritmik olarak belirlenmemiş belirli bir miktardan başlayarak, bu gürültünün önemli değişkenleri "tıkaması" ve bu toplam miktardan "önemli" değişkenleri algoritmik olarak seçmenin mümkün olmaması gerçeğinde yatmaktadır.

Bu nedenle, tüm girdi değişkenleri listesini manuel olarak ele almalı ve sezgisel olarak veya diğer bazı hususlara dayanarak "bu girdi değişkeni büyük olasılıkla yapar ve bu büyük olasılıkla yapmaz" şeklinde karar vermelidir.

Makalemden ve kitabımdan bir sette test ettiğim değişkenlerin önemini belirlemek için birkaç düzine algoritma biliyorum (en fazla 100 girdi değişkeni). Sonuç tam olarak tarif edildiği gibidir. Kalemlerle belirli bir liste seçtim ve ardından bir algoritma ile filtreledim ve bir liste aldım. Ayrıca, böyle bir listenin değeri temel niteliktedir: Böyle bir "etkileyen" ilk veri kümesini kullanan modeller (3 farklı türde model kullanırım), ana pusu olan fazla uydurma özelliğine sahip DEĞİLDİR . "Gürültü" başlangıç verilerinin kullanılmasının ana sonucu fazla uydurmadır.

not.

Durağanlık modellerimde herhangi bir rol oynamıyor ama bunlar randomForest, ada, SVM.

 
gpwr :

...

.... Durağanlık olmadan hiçbir model çalışmaz.

...

Durağanlık şartı çok katıdır ve tamamen haksızdır.

.

Ve "durağanlık olmadan" modeller kendileri için oldukça iyi çalışır;)

 
transcendreamer :
regresyon algoritması, aralarında bariz bir bağlantı olmasa bile, herhangi bir veriye dayalı herhangi bir göstergeyi tahmin etmeye yardımcı olacaktır.
Bu, sadece regresyon değil, aynı zamanda sinir modelleri, ARMA ve diğerleri gibi herhangi bir model hakkında da söylenebilir. Girdiler ve çıktı arasında bir bağlantı yoksa, herhangi bir model bir tahmin üretecektir, sadece doğru olmayan bir tahmin.
Neden: