bond <- read.csv(file=file.choose())
#View(bond)
head(bond)
## Price Return Volume Amount Green
## 1 11110.00 7.743000 14297.00 15883967 0
## 2 11157.50 1.479500 1398.50 1560726 0
## 3 11125.50 3.000333 100180.67 111734830 0
## 4 11152.62 2.273765 31902.00 35533204 0
## 5 11134.00 1.886000 557.00 620163 0
## 6 11106.79 1.688200 32752.13 36349401 0
str(bond)
## 'data.frame': 5829 obs. of 5 variables:
## $ Price : num 11110 11158 11126 11153 11134 ...
## $ Return: num 7.74 1.48 3 2.27 1.89 ...
## $ Volume: num 14297 1398 100181 31902 557 ...
## $ Amount: num 1.59e+07 1.56e+06 1.12e+08 3.55e+07 6.20e+05 ...
## $ Green : num 0 0 0 0 0 0 0 0 0 0 ...
bond$Green<-as.factor(bond$Green)
summary(bond)
## Price Return Volume Amount
## Min. : 3194 Min. :-673.881 Min. : 1 Min. :7.010e+02
## 1st Qu.: 9717 1st Qu.: 2.867 1st Qu.: 7063 1st Qu.:7.032e+06
## Median : 9973 Median : 3.993 Median : 26294 Median :2.580e+07
## Mean : 9931 Mean : 5.291 Mean : 252416 Mean :2.528e+08
## 3rd Qu.:10105 3rd Qu.: 4.809 3rd Qu.: 61119 3rd Qu.:6.089e+07
## Max. :21182 Max. :1864.271 Max. :30000000 Max. :3.021e+10
## Green
## 0:5744
## 1: 85
##
##
##
##
par(mfrow=c(2,2))
hist(bond$Price, main="Price",,freq=F)
hist(bond$Return, main="Return",freq=F)
hist(bond$Volume, main="Volume",freq=F)
hist(bond$Amount, main="Amount",freq=F)
par(mfrow=c(2,2))
boxplot(bond$Price, main="Price")
boxplot(bond$Return, main="Return")
boxplot(bond$Volume, main="Volume")
boxplot(bond$Amount, main="Amount")
### 3. 로그변환& 이상값 제거
bond$logPrice<-log(bond$Price)
bond$logReturn<-log(bond$Return)
## Warning in log(bond$Return): NaN이 생성되었습니다
bond$logVolume<-log(bond$Volume)
bond$logAmount<-log(bond$Amount)
bond$logReturn<-ifelse(bond$logReturn==-Inf,NA,bond$logReturn)
bond<-na.omit(bond)
head(bond)
## Price Return Volume Amount Green logPrice logReturn logVolume
## 1 11110.00 7.743000 14297.00 15883967 0 9.315601 2.0467892 9.567805
## 2 11157.50 1.479500 1398.50 1560726 0 9.319867 0.3917042 7.243156
## 3 11125.50 3.000333 100180.67 111734830 0 9.316995 1.0987234 11.514731
## 4 11152.62 2.273765 31902.00 35533204 0 9.319430 0.8214369 10.370424
## 5 11134.00 1.886000 557.00 620163 0 9.317759 0.6344582 6.322565
## 6 11106.79 1.688200 32752.13 36349401 0 9.315312 0.5236629 10.396723
## logAmount
## 1 16.58082
## 2 14.26066
## 3 18.53164
## 4 17.38598
## 5 13.33774
## 6 17.40869
summary(bond)
## Price Return Volume Amount
## Min. : 3194 Min. : 0.1098 Min. : 1 Min. :7.010e+02
## 1st Qu.: 9715 1st Qu.: 2.9170 1st Qu.: 7019 1st Qu.:7.022e+06
## Median : 9971 Median : 4.0089 Median : 26218 Median :2.577e+07
## Mean : 9929 Mean : 5.5428 Mean : 252929 Mean :2.531e+08
## 3rd Qu.:10104 3rd Qu.: 4.8200 3rd Qu.: 60805 3rd Qu.:6.043e+07
## Max. :21182 Max. :1864.2710 Max. :30000000 Max. :3.021e+10
## Green logPrice logReturn logVolume logAmount
## 0:5692 Min. :8.069 Min. :-2.209 Min. : 0.000 Min. : 6.553
## 1: 84 1st Qu.:9.181 1st Qu.: 1.071 1st Qu.: 8.856 1st Qu.:15.765
## Median :9.207 Median : 1.389 Median :10.174 Median :17.065
## Mean :9.201 Mean : 1.320 Mean : 9.779 Mean :16.678
## 3rd Qu.:9.221 3rd Qu.: 1.573 3rd Qu.:11.015 3rd Qu.:17.917
## Max. :9.961 Max. : 7.531 Max. :17.217 Max. :24.131
par(mfrow=c(2,2))
hist(bond$logPrice, main="logPrice",,freq=F)
hist(bond$logReturn, main="logReturn",freq=F)
hist(bond$logVolume, main="logVolume",freq=F)
hist(bond$logAmount, main="logAmount",freq=F)
### 4. 변수간 상관관계
pairs(bond[,6:9])
cor(bond[,6:9])
## logPrice logReturn logVolume logAmount
## logPrice 1.00000000 -0.3514877 0.03434134 0.06266772
## logReturn -0.35148771 1.0000000 -0.18118014 -0.19128135
## logVolume 0.03434134 -0.1811801 1.00000000 0.99955129
## logAmount 0.06266772 -0.1912814 0.99955129 1.00000000
t-test의 p-value의 값은 0.2로 두 그룹 간의 차이가 있다고 볼 수 없다.
boxplot(logReturn ~ Green, data = bond, main = "logReturn & Green")
t.test(bond$Return~bond$Green)
##
## Welch Two Sample t-test
##
## data: bond$Return by bond$Green
## t = 1.3062, df = 2530.8, p-value = 0.1916
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
## -0.3226461 1.6100033
## sample estimates:
## mean in group 0 mean in group 1
## 5.552127 4.908448
m_c = lm(logReturn~ logPrice+logVolume+logAmount , data = bond)
summary(m_c)
##
## Call:
## lm(formula = logReturn ~ logPrice + logVolume + logAmount, data = bond)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4060 -0.2515 0.0042 0.2481 5.6213
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 26.4243 1.1327 23.328 < 2e-16 ***
## logPrice -1.9213 0.3170 -6.062 1.43e-09 ***
## logVolume 0.9758 0.3082 3.166 0.001554 **
## logAmount -1.0175 0.3082 -3.301 0.000969 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5239 on 5772 degrees of freedom
## Multiple R-squared: 0.1538, Adjusted R-squared: 0.1533
## F-statistic: 349.6 on 3 and 5772 DF, p-value: < 2.2e-16
1)잔차가 선형성인지, 선 주위로 무작위로 분포했는지: 잔차들이 한 곳에
몰려있는 모습이 나타난다.
2)잔차가 정규분포를 따르는지(직선에 근접했는지): 이상값들이 많아
정규분포를 따르지 않는 것으로 보인다.
3)잔차가 동일분산을 따르는지(값들이 패턴없이 일정하게 분포되어있는지):
잔차들이 뭉쳐있는 모습이 보인다.
4)이상값이 얼마나 영향을 주는지(점선으로 된 곡선 영역 밖에 있는지) :
이상치들이 많고 큰 영향을 주는 이상값들이 보인다.
par(mfrow=c(2,2))
plot(m_c)
한국 채권 유통시장의 변수들 간의 관계와 녹색채권 여부에 따른 영향을 살펴보고자 기존 시계열 데이터를 평균값으로 계산하여 횡단면 데이터로 변환하였다. 그러나 변수들이 정규성에서 크게 벗어나 선형모델을 사용하기에 적합하지 않고, 상관관계도 없는 것으로 보여 추가적인 분석이 의미가 없다. 이후 연구에서는 시계열 분석방법 사용하고, 채권 발행시장의 정보와 채권시장에 영향을 주는 외부변수도 추가하여 분석을 시도해본다면 더 유의미한 결과를 얻을 수 있을 것으로 예상된다.