R Markdown

library(pdfetch)
data1<-pdfetch_FRED(c("CCUSMA02TRA618N", "FPCPITOTLZGTUR"))
data1<- na.omit(data1)
names(data1)[1] <- "ınflatıon"
names(data1)[2]<-"exchangerate"
library(psych)
describe(data1)
##              vars  n  mean    sd median trimmed   mad  min    max  range skew
## ınflatıon       1 62  0.95  1.77   0.00    0.52  0.01 0.00   8.86   8.86 2.56
## exchangerate    2 62 31.45 28.56  18.23   27.75 17.92 1.12 105.21 104.10 0.87
##              kurtosis   se
## ınflatıon        6.94 0.23
## exchangerate    -0.56 3.63
library(urca)
## Warning: package 'urca' was built under R version 4.2.3
ınflatıon.adf<-ur.df(data1$ınflatıon,type = "drift",selectlags = "BIC")
exchangerate.adf<-ur.df(data1$exchangerate,type = "drift",selectlags = "BIC")
summary(ınflatıon.adf)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.39707  0.01850  0.01851  0.02026  0.43164 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.01851    0.02306  -0.803 0.425522    
## z.lag.1      0.11953    0.02880   4.150 0.000112 ***
## z.diff.lag   0.56578    0.15126   3.740 0.000428 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1531 on 57 degrees of freedom
## Multiple R-squared:  0.8231, Adjusted R-squared:  0.8169 
## F-statistic: 132.6 on 2 and 57 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: 4.1501 8.9163 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.51 -2.89 -2.58
## phi1  6.70  4.71  3.86

Sonuç olarak enflasyon değişkenine ait birim kök testine göre seriler durağan değildir Ho= enflasyon durağandır. Hipotez reddedilir.

summary(exchangerate.adf)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -48.704  -4.922  -1.230   2.996  42.529 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  3.90109    2.61966   1.489   0.1420  
## z.lag.1     -0.11294    0.06176  -1.829   0.0727 .
## z.diff.lag  -0.03898    0.13188  -0.296   0.7686  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.3 on 57 degrees of freedom
## Multiple R-squared:  0.0637, Adjusted R-squared:  0.03084 
## F-statistic: 1.939 on 2 and 57 DF,  p-value: 0.1532
## 
## 
## Value of test-statistic is: -1.8286 1.6856 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.51 -2.89 -2.58
## phi1  6.70  4.71  3.86

Sonuç olarak döviz kuru değişkenine ait birim kök testine göre seriler durağan değildir Ho= döviz kuru durağandır. Hipotez reddedilir.

VAR MODELİ

VAR modelinde Seçilmiş bir değişkenin gelecekte takip edeceği
potansiyel yolları tahmin eder. Ekonomik zaman serilerinin dinamik davranışlarını
tanımlar.VAR modelleri değişkenler arasında eş bütünleşme olmadığında ve durağanlığı
sağlanmış serilerde kullanılmaktadır. 



```r
library(vars)
## Warning: package 'vars' was built under R version 4.2.3
## Zorunlu paket yükleniyor: MASS
## Zorunlu paket yükleniyor: strucchange
## Warning: package 'strucchange' was built under R version 4.2.3
## Zorunlu paket yükleniyor: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Zorunlu paket yükleniyor: sandwich
## Warning: package 'sandwich' was built under R version 4.2.3
## Zorunlu paket yükleniyor: lmtest
## Warning: package 'lmtest' was built under R version 4.2.3
varmodeli<-var(2:length(data1),)
library(psych)

Uygun bir gecikme seçmeme yardımcı olabilmesi için VARselect fonksiyonunu kullandım

VARselect(data1, 
          type = "none", 
          lag.max = 10) 
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      2      2      1      2 
## 
## $criteria
##               1        2        3        4        5        6        7         8
## AIC(n) 2.019569 1.929521 2.036390 1.976998 1.993111 2.125575 2.253785  2.298804
## HQ(n)  2.077112 2.044608 2.209019 2.207170 2.280827 2.470834 2.656587  2.759149
## SC(n)  2.169665 2.229713 2.486677 2.577380 2.743590 3.026149 3.304454  3.499569
## FPE(n) 7.535648 6.890409 7.678731 7.256684 7.409850 8.520758 9.786451 10.381360
##                9        10
## AIC(n)  2.394870  2.417100
## HQ(n)   2.912759  2.992531
## SC(n)   3.745731  3.918056
## FPE(n) 11.640896 12.188571
var.a <- vars::VAR(data1,
                   lag.max = 10, 
                   ic = "AIC",
                   type = "none")

R’deki bir vektör, veri çerçevesi, regresyon modelindeki değerleri hızlı bir şekilde özetlemek için summary fonksiyonunu kullandım

summary(var.a)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: ınflatıon, exchangerate 
## Deterministic variables: none 
## Sample size: 60 
## Log Likelihood: -210.773 
## Roots of the characteristic polynomial:
## 1.214 0.9592 0.4769 0.07346
## Call:
## vars::VAR(y = data1, type = "none", lag.max = 10, ic = "AIC")
## 
## 
## Estimation results for equation ınflatıon: 
## ========================================== 
## ınflatıon = ınflatıon.l1 + exchangerate.l1 + ınflatıon.l2 + exchangerate.l2 
## 
##                   Estimate Std. Error t value Pr(>|t|)    
## ınflatıon.l1     1.6913932  0.1286045  13.152  < 2e-16 ***
## exchangerate.l1  0.0005603  0.0015211   0.368 0.713997    
## ınflatıon.l2    -0.5795131  0.1524217  -3.802 0.000357 ***
## exchangerate.l2 -0.0005167  0.0015239  -0.339 0.735808    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.1551 on 56 degrees of freedom
## Multiple R-Squared: 0.9946,  Adjusted R-squared: 0.9942 
## F-statistic:  2567 on 4 and 56 DF,  p-value: < 2.2e-16 
## 
## 
## Estimation results for equation exchangerate: 
## ============================================= 
## exchangerate = ınflatıon.l1 + exchangerate.l1 + ınflatıon.l2 + exchangerate.l2 
## 
##                 Estimate Std. Error t value Pr(>|t|)    
## ınflatıon.l1    -0.34546   11.34381  -0.030    0.976    
## exchangerate.l1  0.88541    0.13417   6.599 1.59e-08 ***
## ınflatıon.l2     0.47695   13.44465   0.035    0.972    
## exchangerate.l2  0.07083    0.13442   0.527    0.600    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 13.68 on 56 degrees of freedom
## Multiple R-Squared: 0.9056,  Adjusted R-squared: 0.8989 
## F-statistic: 134.4 on 4 and 56 DF,  p-value: < 2.2e-16 
## 
## 
## 
## Covariance matrix of residuals:
##              ınflatıon exchangerate
## ınflatıon      0.02381       0.2972
## exchangerate   0.29719     184.2965
## 
## Correlation matrix of residuals:
##              ınflatıon exchangerate
## ınflatıon       1.0000       0.1419
## exchangerate    0.1419       1.0000

serial.test fonksiyonu, seri olarak ilişkili hatalar için çok değişkenli Portmanteau- ve Breusch-Godfrey testini hesaplar.

Stabil bir VAR(p)’de hh mertebesine kadar seri olarak ilişkili bozulmaların yokluğunu test etmek için Portmanteau istatistiği şu şekilde tanımlanır:

serial.test(var.a)
## 
##  Portmanteau Test (asymptotic)
## 
## data:  Residuals of VAR object var.a
## Chi-squared = 40.112, df = 56, p-value = 0.9461

Özellikle veri setinin son n satırını görüntülemek için tail fonksiyonunu kullandım

tail(data1)
##            ınflatıon exchangerate
## 2016-12-31  3.022457     7.775134
## 2017-12-31  3.648570    11.144311
## 2018-12-31  4.839665    16.332464
## 2019-12-31  5.676495    15.176822
## 2020-12-31  7.016607    12.278957
## 2021-12-31  8.861476    19.596493
data1$ınflatıon = cumsum(data1$ınflatıon) + 100
par(mar = c(2.5,2.5,1,2.5))
plot.ts(data1$ınflatıon)

DAXinv =ts(c(data1[,1], data1$ınflatıon),
           start = c(1960,62), 
           frequency = 1)
plot(DAXinv)