2017-10-06 78 views
0

嘿我是新來的R和有一個小問題插入圖形表示R中

我有以下的數據集,由12個不同的債券:

dput(Synthetic_bond_creation) 
structure(list(`Days to maturity` = c(1419, 202, 1565, 1182, 
2080, 1036, 811, 2436, 1296, 609, 1792, 986), `Yield to maturity` = c(2.699, 

0.487, 4.019, 1.421, 2.394, 1.366, 1.107, 2.717, 1.592, 0.988, 
2.151, 2.278)), .Names = c("Days to maturity", "Yield to maturity" 
), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-12L)) 

到目前爲止,我得到如下:

library(readxl) 
Synthetic_bond_creation <- read_excel("~/UZH/Bachelorarbeit/Synthetic bond 
creation.xlsx") 
View(Synthetic_bond_creation) 
plot(Synthetic_bond_creation$`Days to maturity`, 
Synthetic_bond_creation$`Yield to maturity`, xlab = "Days to maturity", ylab 
= "Yield to maturity in %", main = "Bonds of 'Societe Generale SA' on 
13.03.2013") 
abline(lm (Synthetic_bond_creation$`Yield to maturity` ~ 
Synthetic_bond_creation$`Days to maturity`)) 

rplotsynthetic

現在我想要構建一個合成的5年期債券,這意味着我需要在x = 1300的迴歸線上獲得到期日以及相應y值的值。

我想「畫」我的字的目標看起來如下:

syntheticbond

虛線應該是黑色的。

+0

請使用'dput(Synthetic_bond_creation)',而不是'打印(Synthetic_bond_creation)' – Pop

+0

好吧,我編輯它 – rbonac

回答

1

下面是一個例子(使用線性迴歸的預測值和一些可以適應您的情況的閾值)。

# data and model 
df <- mtcars 
model <- lm(disp ~ mpg, data = df) 
summary(model) 
# plot model 
plot(df$mpg, df$disp, xlab = "mpg", ylab = "disp") 
pred.val <- predict(model) 
lines(df$mpg, pred.val, lty = 1, col = "black") 
# set thresholds 
xmin <- 0 
ymin <- 0 
xmax <- 25 # suppose x = 25 
ymax <- as.numeric(predict(model, data.frame(mpg = xmax))) # use x to get f(x) 
# add segments 
segments(x0 = xmax, y0 = ymin, x1 = xmax, y1 = ymax, 
     lty = 2, col = "black") # vertical segment 
segments(x0 = xmin, y0 = ymax, x1 = xmax, y1 = ymax, 
     lty = 2, col = "black") # horizontal segment 

enter image description here

# using ggplot 
library(ggplot2) 
ggplot(mtcars, aes(x = mpg, y = disp))+ 
     geom_point() + 
     geom_line(aes(y = fitted(model))) + 
     geom_segment(aes(x = xmax, # vertical segment 
         xend = xmax, 
         yend = ymax), 
        y = 0, 
        linetype = "dashed") + 
     geom_segment(aes(y = ymax, # horizontal segment 
         xend = xmax, 
         yend = ymax), 
        x = 0, 
        linetype = "dashed") 

enter image description here