Önce özete göz atDersin sonundaki özet, okumaya başlamadan önce yol haritası olarak.
- Zaman serilerinde gözlemlerin sırası bilgi taşır; tarih indeksi, belirli dönemleri seçmeyi, sıklığı değiştirmeyi ve serileri tarihlerine göre hizalamayı sağlar; gecikme ve fark almadan önce serinin eksik dönem içermediği denetlenmelidir.
- Sıklık dönüşümünde doğru özet, serinin türüne bağlıdır: akımlar için toplam, stoklar için dönem sonu değeri, düzeyler ve oranlar için genellikle ortalama kullanılır.
- Aylık değişimler bileşik olarak birikir: aylık yüzde 3 yıllık yaklaşık yüzde 42,6'ya karşılık gelir; yıllık değişim baz etkisi taşır ve aylık değişimle birlikte okunmalıdır.
- Granger ile Newbold, birbirinden bağımsız iki rastgele yürüyüş arasındaki regresyonun, 50 gözlemlik örneklemlerde denemelerin yüzde 76'sında anlamlı bir ilişki bulduğunu gösterdi; durağan olmayan serilerde fark almak ya da ortak eğilimi hesaba katan yöntemler gerekir.
- Hamilton, Hodrick–Prescott filtresinin sahte dinamikler ürettiğini ve örneklem sonunda güvenilmez olduğunu savunup basit bir regresyona dayanan bir alternatif önerdi; Hodrick'in simülasyonları ise basit serilerde Hamilton filtresinin, karmaşık serilerde Hodrick–Prescott filtresinin daha iyi sonuç verdiğini gösterdi.
Öğrenme çıktıları
- Hatırlama — Tarih indeksini, sıklık dönüşümünü, gecikmeli değişkeni, fark almayı, hareketli ortalamayı ve durağanlığı tanımlar.
- Anlama — Zaman içinde sıralanmış gözlemlerin neden kesit verisinden farklı ele alınması gerektiğini ve eğilim taşıyan iki seri arasındaki regresyonun neden yanıltıcı olabileceğini açıklar.
- Uygulama — Python'da pandas ile ve R'da temel araçlarla bir seriye tarih indeksi verir, aylık seriyi çeyreklik seriye çevirir, gecikme, fark, aylık ve yıllık değişim ile hareketli ortalama hesaplar ve bir endeksin baz dönemini değiştirir.
- Değerlendirme — Hamilton'ın ve Hodrick'in Hodrick–Prescott filtresi üzerine vardıkları farklı sonuçlardan yola çıkarak bir seriyi eğilim ve döngü bileşenlerine ayırmanın hangi durumda hangi yöntemle yapılması gerektiğini tartışır.
Sezgi
Açılış
Bir fiyat endeksinin aylık değerleri önümüzde olsun. Bu verinin satırlarını karıştırırsak ne kaybederiz? Bir hane anketinde satırların sırası hiçbir şey ifade etmez; birinci hane ile yüzüncü hanenin yerini değiştirmek sonucu değiştirmez. Ama bir fiyat endeksinde sıra, verinin kendisidir: ocak şubattan önce gelir, bu ayın değeri geçen ayınkine bağlıdır, enflasyon iki ardışık değer arasındaki farktır.
Zaman serisi verisiyle çalışmak, bu sıranın taşıdığı bilgiyi kullanmayı ve onun kurduğu tuzaklardan kaçınmayı gerektirir. Aylık bir seriyi yıllık seriye çevirirken ortalamayı mı yoksa son değeri mi almalıyız? Aylık enflasyonu yıllık enflasyona nasıl çeviririz? İki seri birlikte yükseliyorsa, bu aralarında bir ilişki olduğunu mu gösterir, yoksa ikisinin de zamanla büyüdüğünü mü?
Bu ders, pandas'ın ve R'ın zaman serisi araçlarıyla bu soruların pratik cevaplarını ve zaman serisi analizinin en eski ve en sık düşülen tuzağını ele alıyor.
Hikâye — Hiçbir şeyle ilgisi olmayan bir ilişki
1974'te Clive Granger ile Paul Newbold, Journal of Econometrics'te «Spurious Regressions in Econometrics», yani «Ekonometride Sahte Regresyonlar» başlıklı kısa bir makale yayımladı. Soruları basitti: birbirinden tamamen bağımsız iki seri, bir regresyona sokulduğunda ne olur?
Granger'ın yıllar sonra, Namwon Hyung ve Yongil Jeon ile birlikte yazdığı bir çalışmada özetlediği gibi, iki seri birbirinden bağımsız ve her biri kendi geçmişinden bağımsızsa, istatistik kuramı, standart bir sınamanın yüzde 5 düzeyinde, zamanın yaklaşık yüzde 5'inde yanlışlıkla anlamlı bir ilişki bulacağını söyler. Granger ile Newbold ise bir simülasyonla, iki serinin her biri sürüklenmesiz bir rastgele yürüyüş olduğunda, yani her dönemin değeri bir önceki dönemin değerine rastgele bir adım eklenerek oluştuğunda, en küçük kareler ve standart çıkarımla bulunan sahte ilişkilerin sayısının, küçük örneklemlerde denemelerin yüzde 76'sına çıktığını gösterdi. Özgün simülasyonda 50 gözlemlik örneklemler kullanılmıştı.
Yani birbirinden tamamen habersiz iki seri, dört denemeden üçünde, bir iktisatçıya aralarında anlamlı bir ilişki varmış gibi görünüyordu. Sorunun kaynağı, iki serinin de zaman içinde gezinmesi, yani bir eğilim taşımasıydı. İki seri de rastlantı eseri bir süre birlikte yükseliyor ya da düşüyorsa, regresyon bu ortak hareketi bir ilişki sanıyordu. Makroiktisatta hasıla, fiyatlar, para arzı ve nüfus gibi pek çok seri tam da böyle zaman içinde gezinir.
Granger'ın bu soruya olan ilgisi, sonraki yıllarda eğilim taşıyan seriler arasındaki gerçek ilişkileri sahte olanlardan ayırmanın yollarını geliştirmesine yol açtı. 2003'te Nobel iktisat ödülü, Granger'a ortak eğilimlere sahip ekonomik zaman serilerini analiz etme yöntemleri için verildi; ödülü, zamanla değişen oynaklığa sahip serileri analiz etme yöntemleriyle Robert Engle ile paylaştı. Bir simülasyonla başlayan bir uyarı, zaman serisi ekonometrisinin yarım yüzyıllık gelişiminin çıkış noktalarından biri oldu.
Kavram
Zaman serisi analizinin ilk adımı şudur.
Farklı sıklıktaki serileri karşılaştırmak için şu işlem gerekir.
Bir serinin kendi geçmişiyle karşılaştırılması için şu yapı kullanılır.
Seriler arasındaki değişimi incelemenin temel işlemi şudur.
Kısa dönemli dalgalanmaları yumuşatmanın basit bir yolu şudur.
Son olarak, zaman serisi analizinin temel kavramlarından biri şudur.
Veri ve kanıt
Hamilton'ın itirazlarından özellikle ikincisi, uygulamada önemlidir. Bir merkez bankası, ekonominin bugün potansiyelinin üstünde mi altında mı olduğunu anlamak için Hodrick–Prescott filtresiyle bir üretim açığı hesaplıyorsa, en çok ilgilendiği değer, serinin son değeridir. Hamilton'a göre filtre tam da bu noktada en güvenilmezdir: yeni veriler geldikçe, geçmişin son dönemleri için hesaplanan eğilim ve döngü önemli ölçüde değişebilir.
İki çalışma birlikte okunduğunda, tartışmanın «hangi filtre doğru» sorusundan çok, «hangi seri için hangi filtre» sorusu olduğu görülür. Hamilton'ın filtresi, bir rastgele yürüyüş gibi basit bir yapıya sahip serilerde daha iyi sonuç veriyor; ama bir serinin belirgin döngüsel bileşenleri ve yavaş değişen eğilimleri varsa, Hodrick–Prescott filtresi yapıyı daha iyi yakalayabiliyor. Filtrenin adı Hodrick'in kendi adını taşıdığı için bu karşılaştırmayı dikkatle okumak gerekir; ama Hodrick'in çalışması Hamilton'ın önerdiği filtreyi de sınıyor ve onun üstün olduğu durumları açıkça raporluyor. Uygulamadaki ders, bir filtrenin sonucunu tek başına kesin bir üretim açığı olarak sunmamak ve birden çok yöntemle karşılaştırmaktır.
Yaygın yanlış«İki seri arasındaki regresyon yüksek bir belirlilik katsayısı ve anlamlı bir katsayı veriyorsa, aralarında bir ilişki vardır.»
Granger ile Newbold'un gösterdiği gibi, birbirinden bağımsız ama zaman içinde gezinen iki seri, küçük örneklemlerde denemelerin büyük çoğunluğunda anlamlı görünen bir ilişki üretebilir. Eğilim taşıyan serilerde, önce serilerin durağan olup olmadığına bakmak, gerekiyorsa fark almak ya da ortak eğilimi hesaba katan yöntemler kullanmak gerekir.
Yaygın yanlış«Aylık bir seriyi yıllık seriye çevirmenin tek doğru yolu, on iki ayın ortalamasını almaktır.»
Doğru yöntem, serinin türüne bağlıdır. Aylık ihracat gibi bir akım için yıllık değer, on iki ayın toplamıdır. Dönem sonu döviz rezervleri gibi bir stok için, yılın son ayının değeri alınır. Fiyat endeksi ya da faiz oranı gibi bir düzey ya da oran için ise genellikle ortalama kullanılır. Yanlış yöntem, yıllık değeri on iki kat büyük ya da anlamsız hâle getirebilir.
Neden önemli?
Enflasyondan faize, kurdan işsizliğe, iktisatçının izlediği göstergelerin çoğu zaman serisidir: enflasyon, büyüme, faiz, döviz kuru, işsizlik, dış ticaret. Bu verilerle yapılan her analiz, verinin sıklığının, bir serinin akım mı stok mu olduğunun, değişimin aylık mı yıllık mı hesaplandığının doğru ele alınmasına dayanır. Bu ayrımlardaki bir hata, bir raporun manşet rakamını yanlış yapabilir.
Zaman serilerinde regresyonun kendine özgü tuzakları da vardır. İki makroekonomik serinin birlikte yükselmesi, aralarında bir ilişki olduğunu göstermez; ikisi de ekonominin büyümesiyle ya da fiyatların genel artışıyla yükseliyor olabilir. Granger ile Newbold'un uyarısı, zaman serisi ekonometrisinin temel dersidir ve bu kursun sonraki derslerinde ele alınacak ileri yöntemlerin çoğu, bu uyarıya cevap vermek için geliştirildi.
Türkiye'nin yüksek enflasyon dönemlerinde, aylık ve yıllık değişim oranları arasındaki fark ve baz etkisi, enflasyonun yönünü yorumlamak için özellikle önemlidir. Yıllık enflasyon düşerken aylık enflasyon yükselebilir ya da tersi olabilir. Bu iki oranı doğru hesaplamak ve birlikte göstermek, kamuoyuna yapılan açıklamaların doğru anlaşılması için gereklidir.
Model
Çözümlü örnek — Bir seriye tarih indeksi vermek
Bir fiyat endeksinin, Ocak 2022'den başlayarak her ay yüzde 3 arttığı ve ilk değerinin 100 olduğu 24 aylık bir seri kuralım. Tarih indeksini pandas'ın date_range fonksiyonuyla oluştururuz.
- Python:
idx = pd.date_range("2022-01-01", periods=24, freq="MS") - Python:
fiyat = pd.Series(100 * 1.03 ** np.arange(24), index=idx) - R:
tarih <- seq(as.Date("2022-01-01"), by = "month", length.out = 24)
freq="MS", her ayın ilk gününü, yani ay başını gösterir. Serinin indeksi artık 1 Ocak 2022, 1 Şubat 2022 ve böyle devam eden tarihlerden oluşur ve pandas bu indeksin sıklığını MS olarak tanır. Bir dosyadan okunan tarih sütununu indekse çevirmek için önce onu tarih tipine dönüştürmek, sonra set_index ile indeks yapmak gerekir; önceki derslerde gördüğümüz gibi, Türkçe biçimli tarihlerde biçimi açıkça belirtmek şarttır.
Tarih indeksinin ilk faydası, seçimi kolaylaştırmasıdır. fiyat.loc["2023"] ifadesi 2023'ün bütün aylarını, fiyat.loc["2022-06":"2022-12"] ifadesi Haziran–Aralık 2022 dönemini verir. Sıra numarasıyla çalışsaydık, hangi satırın hangi aya karşılık geldiğini her seferinde hesaplamamız gerekirdi. Sayılar varsayımdır.
Çözümlü örnek — Aylıktan çeyrekliğe
Aynı seriyi çeyreklik seriye çevirelim. pandas'ta resample, seriyi yeni sıklığa göre gruplara böler; ardından her gruba bir özet uygulanır. Böl-uygula-birleştir kalıbının zamana uyarlanmış biçimidir.
- Python:
fiyat.resample("QS").mean() - Python:
fiyat.resample("QS").last() - R:
tapply(fiyat, paste(format(tarih, "%Y"), quarters(tarih)), mean)
Çeyrek ortalamasıyla ilk çeyreğin değeri yaklaşık 103,03, çeyrek sonu değeriyle ise 106,09'dur. İki değer de doğrudur, ama farklı sorulara cevap verir. Fiyat endeksi gibi bir düzey için çeyrek ortalaması, o çeyrekte geçerli olan ortalama fiyatı gösterir ve resmî istatistiklerde genellikle bu kullanılır. Çeyrek sonu değeri ise, örneğin döviz rezervleri ya da borç stoku gibi bir stok için doğrudur. Aylık ihracat gibi bir akımı çeyreğe çevirirken ise sum kullanılır, çünkü bir çeyreğin ihracatı üç ayın toplamıdır.
R'daki satırda quarters fonksiyonu her tarihin hangi çeyreğe düştüğünü Q1, Q2 gibi etiketlerle verir; yıl ile birleştirildiğinde her gözlem kendi yıl ve çeyrek grubuna atanır ve tapply her grubun ortalamasını hesaplar. Yıl eklenmeseydi, farklı yılların aynı çeyrekleri tek bir grupta toplanır ve sonuç anlamsız olurdu; zaman serilerinde gruplama anahtarının yılı da içermesi, sık gözden kaçan bir ayrıntıdır. R'da sıklık dönüşümü için temel araçlar sınırlıdır; zaman serileriyle yoğun çalışan kullanıcılar genellikle zoo, xts ya da tsibble gibi paketleri kullanır. Hangi aracın kullanıldığından bağımsız olarak, her dönüşümden önce serinin bir akım mı, stok mu, yoksa oran mı olduğunu sormak gerekir. Sayılar varsayımdır.
Çözümlü örnek — Aylık ve yıllık değişim
Aylık değişim, bu ayın değerinin bir önceki aya göre yüzde değişimi; yıllık değişim ise on iki ay önceki değere göre değişimidir. İkisi de pandas'ta aynı fonksiyonla, farklı bir dönem sayısıyla hesaplanır.
- Python:
aylik = fiyat.pct_change() * 100 - Python:
yillik = fiyat.pct_change(12) * 100 - R:
aylik <- 100 * (fiyat / dplyr::lag(fiyat) - 1)
Serimizde aylık değişim her ay 3,0'dır. Yıllık değişim ise, Ocak 2023'te, 42,5761'dir. Bu sayı, aylık yüzde 3'lük artışların on iki ay birikiminin sonucudur: (1,03¹² − 1) × 100 ≈ 42,58. Aylık yüzde 3'ü on ikiyle çarparak yüzde 36 bulmak, bileşik büyümeyi göz ardı eder ve yıllık enflasyonu yaklaşık 6,6 puan eksik gösterir.
Yıllık değişimin ilk on iki değeri hesaplanamaz, çünkü bir yıl öncesinin verisi yoktur; pandas bu değerleri eksik olarak bırakır. Yıllık değişimin bir başka özelliği, daha önce gördüğümüz baz etkisidir: bu yılki yıllık enflasyon, yalnızca bu ayın fiyat artışına değil, bir yıl önceki aynı ayda ne olduğuna da bağlıdır. Aylık ve yıllık değişimi aynı grafikte, iki panel hâlinde göstermek, fiyat artışının son aylarda hızlanıp hızlanmadığını baz etkisinden ayırmanın en basit yoludur. Sayılar varsayımdır.
Çözümlü örnek — Gecikme, fark ve logaritmik fark
Bir serinin gecikmeli hâli, her satırda bir önceki dönemin değerini taşır; fark ise iki ardışık değer arasındaki mutlak değişimdir.
- Python:
fiyat.shift(1) - Python:
fiyat.diff() - Python:
np.log(fiyat).diff() * 100 - R:
diff(fiyat)vediff(log(fiyat)) * 100
shift(1) ile kaydırılan serinin ilk değeri eksiktir, ikinci değeri ise 100'dür, yani ilk ayın değeri. İlk farkı 3,0'dır: 103 − 100. Logaritmik farkın yüzle çarpımı ise yaklaşık 2,9559'dur. Logaritmik fark, önceki kursta da gördüğümüz üzere, küçük değişimlerde yüzde değişime yakındır, ama ondan biraz küçüktür; yüzde 3'lük bir artış için fark küçüktür, ama yüksek enflasyon dönemlerindeki büyük aylık artışlarda fark büyür.
pandas'ta shift ve diff, tarih indeksini korur; bu yüzden gecikmeli değer doğru tarihin satırına yerleşir. Tarih indeksi olmayan bir seride, eksik bir ay varsa, shift bir önceki satırı getirir; bu da gerçekte iki ay öncesinin değeri olabilir. Bu yüzden gecikme ve fark almadan önce, serinin eksik dönem içermediğini ya da indeksin bütün dönemleri kapsadığını denetlemek gerekir. R'da diff fonksiyonu, tarihleri değil yalnızca sırayı bilir ve aynı tuzağa açıktır. Sayılar varsayımdır.
Çözümlü örnek — Eksik ayları görünür kılmak
Bir kurumun yayımladığı aylık seride Mart 2024 değeri eksik olsun ve dosyada o ayın satırı hiç bulunmasın: Ocak 10, Şubat 11, Nisan 13, Mayıs 14. pct_change bu seriye doğrudan uygulandığında, Nisan'ın değişimini Şubat'a göre hesaplar ve yüzde 18,18 gibi, iki aylık bir artışı bir aylık gibi gösteren yanlış bir sonuç verir. Program hiçbir hata vermez.
- Python:
t = s.asfreq("MS") - Python:
t.pct_change(fill_method=None)
asfreq, seriyi belirtilen sıklıktaki bütün dönemleri kapsayacak biçimde genişletir ve eksik Mart ayını eksik değer olarak ekler. Genişletilmiş seride değişim hesaplandığında, Mart ve Nisan için değişim eksik olarak görünür; yanlış bir sayı yerine, verinin eksik olduğunu dürüstçe gösteren bir boşluk vardır. fill_method=None, pandas'ın eksik değerleri önceki değerle doldurmadan değişim hesaplamasını sağlar.
Eksik ay, gerekirse doğrusal ara değer bulmayla doldurulabilir: t.interpolate() Mart için 12 değerini üretir. Ama bu bir tahmindir ve önceki derslerde gördüğümüz gibi, doldurulan her değer kaydedilmeli ve raporda belirtilmelidir. Zaman serileriyle çalışırken ilk denetim, indeksin beklenen bütün dönemleri kapsayıp kapsamadığına bakmaktır: len(s) ile olması gereken ay sayısını karşılaştırmak ya da asfreq'ten sonra eksik değerleri saymak, bu tür boşlukları hemen ortaya çıkarır. Sayılar varsayımdır.
Çözümlü örnek — Hareketli ortalama ve baz değiştirme
Aylık serilerdeki dalgalanmaları yumuşatmak için on iki aylık hareketli ortalama kullanılır. Pencere uzunluğu, mevsimsel döngünün uzunluğuna eşit seçildiğinde mevsimsellik de büyük ölçüde yumuşar.
- Python:
fiyat.rolling(12).mean() - R:
zoo::rollmean(fiyat, k = 12, align = "right", fill = NA)
İlk on bir ay için değer hesaplanamaz ve eksik kalır; on ikinci ayda, yani Aralık 2022'de, hareketli ortalama yaklaşık 118,267'dir. align = "right" ya da pandas'ın varsayılanı, her değerin o ay ve önceki on bir ayı kapsamasını sağlar; ortalanmış bir pencere, yani o ayın öncesi ve sonrası, eğilimi daha iyi gösterir ama serinin son aylarında hesaplanamaz. Gerçek zamanlı bir göstergede, gelecekteki ayları kullanan ortalanmış bir pencere kullanılamaz.
Bir endeksin baz dönemini değiştirmek de sık yapılan bir işlemdir. Serimizi Haziran 2022 = 100 olacak biçimde yeniden ölçeklendirelim.
- Python:
yeni = fiyat / fiyat.loc["2022-06-01"] * 100 - R:
yeni <- fiyat / fiyat[tarih == as.Date("2022-06-01")] * 100
Yeni seride Haziran 2023'ün değeri yaklaşık 142,576'dır; yani fiyatlar bir yılda yaklaşık yüzde 42,6 artmıştır. Baz değiştirmek, serinin değişim oranlarını hiç değiştirmez, yalnızca düzeyleri yeniden ölçekler; farklı bazlarla yayımlanmış iki seriyi karşılaştırmak için ikisini aynı baz dönemine getirmek gerekir. Sayılar varsayımdır.
Çözümlü örnek — Sahte regresyonu yeniden üretmek
Granger ile Newbold'un deneyini kendimiz yapalım. Birbirinden bağımsız iki rastgele yürüyüş üretir, birini öbürüne regresyona sokar ve eğim katsayısının t istatistiğinin mutlak değerinin 1,96'yı aşıp aşmadığına bakarız. Bunu 2.000 kez tekrarlarız.
x = np.cumsum(rng.normal(size=50))y = np.cumsum(rng.normal(size=50))t = sm.OLS(y, sm.add_constant(x)).fit().tvalues[1]
cumsum, normal dağılımdan çekilen rastgele adımları birikimli olarak toplar ve bir rastgele yürüyüş üretir. Başlangıç değeri 1 olan bir rastgele sayı üreteciyle ve 50 gözlemli örneklemlerle bu deney çalıştırıldığında, 2.000 denemenin yüzde 69,3'ünde, yüzde 5'lik sınamayı geçen bir ilişki bulundu. Granger ile Newbold'un özgün simülasyonunda bu oran yüzde 76'ydı; farkın bir kısmı, simülasyon düzenindeki ayrıntılardan ve rastgele örneklemeden kaynaklanabilir, ama sonuç aynıdır: bağımsız seriler, yüzde 5'ten çok daha sık ilişkili görünür.
Aynı deneyi rastgele yürüyüşler yerine birbirinden bağımsız ve durağan iki seriyle, yani her dönemi bağımsız rastgele sayılardan oluşan serilerle yaptığımızda, oran yüzde 6,6'ya iner ve beklenen yüzde 5'e yaklaşır. Rastgele yürüyüşlerin farklarını alıp regresyonu farklar üzerinde yaptığımızda ise oran yüzde 6,2'dir. Fark almak, bu örnekte sahte ilişkiyi ortadan kaldırmıştır. Bu deney, bir kuramsal uyarıyı kendi bilgisayarında görmenin en ikna edici yoludur. Aynı deney 1.000 tekrarla, 50 ve 200 gözlemle yeniden çalıştırıldığında oran yüzde 69,1 ve yüzde 83,6 çıktı: rastgele yürüyüşlerde sahte ilişki, örneklem büyüdükçe azalmıyor, tersine artıyor. Sayılar varsayımdır.
Çözümlü örnek — Hamilton filtresi
Hamilton'ın önerdiği alternatif, basit bir regresyondur: çeyreklik bir seride, bir değişkenin t dönemindeki değeri, sekiz çeyrek öncesinden başlayarak en son dört değerine regresyona sokulur. Kalıntılar, döngüsel bileşendir.
for k in range(4): d[f"g{k}"] = d["y"].shift(8 + k)m = smf.ols("y ~ g0 + g1 + g2 + g3", data=d.dropna()).fit()dongu = m.resid
120 çeyreklik yapay bir seriyle çalıştırıldığında, ilk 11 çeyrek, gecikmeler için yeterli geçmiş olmadığından düştü ve döngü bileşeni 109 çeyrek için hesaplandı. Sekiz çeyreklik uzaklık, iki yıl öncesinden yapılan bir tahminin sapması olarak döngüyü tanımlar: eğilim, iki yıl önce bilinenlerle tahmin edilebilen kısımdır.
Hodrick–Prescott filtresinin aksine, Hamilton filtresi yalnızca geçmiş verileri kullanır; bu yüzden örneklemin sonuna yeni veri eklendiğinde geçmiş döngü değerleri değişmez. Bunun bedeli, serinin başındaki gözlemlerin kaybedilmesidir. R'da aynı regresyon lm ve dplyr::lag ile kurulabilir; bazı paketler bu filtreyi hazır bir fonksiyon olarak sunar. Hodrick'in simülasyonlarının gösterdiği gibi, hangi filtrenin daha iyi olduğu serinin yapısına bağlıdır; iki filtreyi birlikte hesaplayıp karşılaştırmak, tek bir yönteme dayanmaktan daha güvenlidir.
Modelin sınırları
Bu derste zaman serisi verisiyle çalışmanın temel işlemlerini gördük. Mevsimsellikten arındırma için istatistik kurumlarının kullandığı özel yöntemler, birim kök sınamaları, eşbütünleşme ve dinamik modeller gibi zaman serisi ekonometrisinin ileri konuları, bu dersin dışında kaldı. Durağanlığı kesin olarak belirlemek, burada yalnızca sezgisel olarak gördüğümüz, resmî sınamalar gerektirir; bu sınamaların da kendi varsayımları ve küçük örneklem sorunları vardır.
Python örnekleri pandas ve statsmodels ile çalıştırılarak sınandı; simülasyonların sonuçları, rastgele sayı üretecinin başlangıç değerine bağlıdır ve farklı bir değerle birkaç puan farklı çıkabilir. R karşılıkları, özellikle zoo ve dplyr kullananlar, bu ortamda sınanmadı ve paket belgelerine göre yazıldı; zaman serisi paketlerinin sözdizimi sürümden sürüme değişebildiği için, kullanmadan önce kendi kurulumunuzda denemek gerekir.
Uygulama
Özet kartı
- Zaman serilerinde gözlemlerin sırası bilgi taşır; tarih indeksi, belirli dönemleri seçmeyi, sıklığı değiştirmeyi ve serileri tarihlerine göre hizalamayı sağlar; gecikme ve fark almadan önce serinin eksik dönem içermediği denetlenmelidir.
- Sıklık dönüşümünde doğru özet, serinin türüne bağlıdır: akımlar için toplam, stoklar için dönem sonu değeri, düzeyler ve oranlar için genellikle ortalama kullanılır.
- Aylık değişimler bileşik olarak birikir: aylık yüzde 3 yıllık yaklaşık yüzde 42,6'ya karşılık gelir; yıllık değişim baz etkisi taşır ve aylık değişimle birlikte okunmalıdır.
- Granger ile Newbold, birbirinden bağımsız iki rastgele yürüyüş arasındaki regresyonun, 50 gözlemlik örneklemlerde denemelerin yüzde 76'sında anlamlı bir ilişki bulduğunu gösterdi; durağan olmayan serilerde fark almak ya da ortak eğilimi hesaba katan yöntemler gerekir.
- Hamilton, Hodrick–Prescott filtresinin sahte dinamikler ürettiğini ve örneklem sonunda güvenilmez olduğunu savunup basit bir regresyona dayanan bir alternatif önerdi; Hodrick'in simülasyonları ise basit serilerde Hamilton filtresinin, karmaşık serilerde Hodrick–Prescott filtresinin daha iyi sonuç verdiğini gösterdi.
Kavram sözlüğü
| Türkçe | İngilizce | Kısa tanım |
|---|---|---|
| Tarih indeksi | Datetime index | Satırları sıra numarası yerine tarihle tanımlayan indeks |
| Sıklık dönüşümü | Frequency conversion | Bir serinin gözlem sıklığının, örneğin aylıktan çeyrekliğe değiştirilmesi |
| Gecikmeli değişken | Lagged variable | Bir serinin belirli sayıda dönem öncesine kaydırılmış hâli |
| Fark alma | Differencing | Her değerden bir önceki değerin çıkarılması |
| Hareketli ortalama | Moving average | Her dönem için belirli uzunluktaki bir pencerenin ortalaması |
| Durağanlık | Stationarity | Ortalamanın, varyansın ve kendi geçmişiyle ilişkinin zamanla değişmemesi |
Kendini sına
- (Çıktı 1) Bir seriyi aylıktan yıllığa çevirirken ihracat, döviz rezervleri ve tüketici fiyat endeksi için hangi özet kullanılmalıdır? Neden?
- (Çıktı 2) Birbirinden bağımsız iki seri, bir regresyonda neden anlamlı bir ilişki gösterebilir? Granger ile Newbold'un bulgusu ve bu dersteki simülasyon bu konuda ne söylüyor?
- (Çıktı 3) Aylık bir fiyat endeksi serisi için aylık değişimi, yıllık değişimi ve on iki aylık hareketli ortalamayı hesaplayan satırları Python'da yaz. Aylık enflasyon her ay yüzde 2 ise yıllık enflasyon yaklaşık kaçtır?
- (Çıktı 3) Bir serinin Ocak, Şubat, Nisan ve Mayıs değerleri 50, 52, 56 ve 57'dir; Mart satırı dosyada yoktur. pct_change doğrudan uygulanırsa Nisan için ne bulunur? Bu sorun nasıl görünür kılınır?
- (Çıktı 4) Bir analist, politika faizi ile yıllık enflasyonun on beş yılda birlikte yükseldiğini ve aralarındaki regresyonun belirlilik katsayısının 0,8 olduğunu gösterip faiz artışlarının enflasyonu artırdığını söylüyor. Bu çıkarımı değerlendir.
- (Çıktı 4) Bir merkez bankası raporu, Hodrick–Prescott filtresiyle hesaplanmış son çeyreğin üretim açığını kesin bir rakam olarak sunuyor. Hamilton'ın ve Hodrick'in bulgularından yararlanarak bu sunumu nasıl değerlendirirsin?
Cevaplar
- İhracat bir akımdır; yıllık ihracat on iki ayın toplamıdır. Döviz rezervleri bir stoktur; yıllık değer olarak yılın son ayının değeri kullanılır. Tüketici fiyat endeksi bir düzeydir; yıllık değer olarak genellikle on iki ayın ortalaması kullanılır. Yanlış özet, örneğin ihracatın ortalaması, yıllık değeri on iki kat küçük gösterir.
- Zaman içinde gezinen, yani durağan olmayan seriler, rastlantı eseri bir süre birlikte yükselip düşebilir ve regresyon bu ortak hareketi bir ilişki sanar. Granger ile Newbold, iki bağımsız rastgele yürüyüş arasındaki regresyonun, 50 gözlemlik örneklemlerde denemelerin yüzde 76'sında, standart sınamayı geçen bir ilişki bulduğunu gösterdi. Bu dersteki simülasyonda oran yüzde 69,3 çıktı ve 200 gözlemle yüzde 83,6'ya yükseldi; durağan serilerde ya da farklar üzerinde ise beklenen yüzde 5'e yakındı.
- Satırlar şunlardır: aylik = fiyat.pct_change() 100; yillik = fiyat.pct_change(12) 100; hm = fiyat.rolling(12).mean(). Aylık yüzde 2'lik artışlar birikimli olarak (1,02¹² − 1) × 100 ≈ yüzde 26,8'lik bir yıllık enflasyona karşılık gelir; 12 ile çarparak bulunan yüzde 24 bileşik etkiyi göz ardı eder.
- pct_change doğrudan uygulanırsa Nisan'ın değişimi Şubat'a göre hesaplanır: (56 − 52) ÷ 52 ≈ yüzde 7,7; bu, iki aylık bir artışı tek aylık gibi gösterir. Sorunu görünür kılmak için seri asfreq("MS") ile bütün ayları kapsayacak biçimde genişletilir; Mart eksik değer olarak eklenir ve değişim fill_method=None ile hesaplandığında Mart ve Nisan için eksik görünür.
- Çıkarım yanıltıcıdır. İki seri de on beş yıl boyunca eğilim taşıyorsa, Granger ile Newbold'un gösterdiği sahte regresyon sorunu ortaya çıkabilir; yüksek bir belirlilik katsayısı, bir ilişkinin kanıtı değildir. Ayrıca nedenselliğin yönü tersine olabilir: merkez bankası, enflasyon yükseldiği için faizi artırıyor olabilir. Serilerin durağanlığına bakmak, farklar üzerinde çalışmak, gecikmeli etkileri incelemek ve nedenselliği belirlemek için bir araştırma tasarımı kurmak gerekir.
- Sunum aşırı kesinlik içerir. Hamilton'a göre Hodrick–Prescott filtresi örneklemin sonunda en güvenilmez olduğu noktadadır: yeni veriler geldikçe son çeyreğin eğilimi ve döngüsü önemli ölçüde revize edilebilir. Hodrick'in simülasyonları, hangi filtrenin daha iyi olduğunun serinin yapısına bağlı olduğunu gösterir. Rapor, üretim açığını birden çok yöntemle, örneğin Hamilton filtresiyle de hesaplamalı, son dönemin belirsizliğini açıkça belirtmeli ve tahminin sonraki verilerle nasıl değişebileceğini göstermelidir.
İleri okuma
- Clive W. J. Granger, Paul Newbold (1974). «Spurious Regressions in Econometrics». Journal of Econometrics 2(2). Sahte regresyonun kurucu simülasyonu.
- James D. Hamilton (2018). «Why You Should Never Use the Hodrick-Prescott Filter». Review of Economics and Statistics 100(5). HP filtresine yöneltilen eleştiri ve regresyona dayalı alternatif.
- Robert J. Hodrick (2020). «An Exploration of Trend-Cycle Decomposition Methodologies in Simulated Data». NBER Working Paper 26750. Filtrelerin simülasyonlarla karşılaştırılması.
- Clive W. J. Granger, Namwon Hyung, Yongil Jeon (1998). «Spurious Regressions with Stationary Series». UCSD Discussion Paper 98-25. Sahte regresyonun durağan ama kalıcı serilerdeki biçimi.
Sonraki derse köprü
Bu derste tek bir birimin, örneğin bir fiyat endeksinin, zaman içindeki seyrini inceledik. Önceki derslerde ise aynı anda birçok birimi, haneleri ya da illeri, tek bir anda gözlemledik. İktisatçının elindeki en zengin verilerden biri, bu ikisini birleştirir: birçok ilin, firmanın ya da ülkenin birçok yıl boyunca izlendiği veri. Sıradaki ders panel veriyi ele alıyor. Böyle bir veri uzun ve düzenli biçimde nasıl tutulur, birimler arasındaki kalıcı farklar ile birimlerin kendi içindeki değişim nasıl ayrılır ve sabit etkiler modeli kodla nasıl kurulur?