#非参数估计 rm(list=ls()) #数据预处理 data <- read.csv("C:/Users/16215/Desktop/weekly 3-month Treasury bill.csv") t <- data[,1] t <- as.Date(t) # 将日期转换为时间序列对象 y <- data[,2]/100 #选取数据的第二列 n <- length(y) #绘图 plot(t,y, type="l",xlab="Date",ylab="Yield(%)",main="3-Month Treasury Bill Yield") #时序图 fit=lm(y~t) abline(fit,lwd=4,col="red") Kreg1=ksmooth(x=t,y=y,kernel="normal",bandwidth=30) Kreg2=ksmooth(x=t,y=y,kernel="normal",bandwidth=400) Kreg3=ksmooth(x=t,y=y,kernel="normal",bandwidth=1000) plot(t,y,pch=1,main="3-Month Treasury Bill Yield") #散点图 lines(Kreg1,lwd=4,col="orange") lines(Kreg2,lwd=4,col="purple") lines(Kreg3,lwd=4,col="limegreen") legend("topright",c("h=30","h=500","h=1000"),lwd=6,col=c("orange","purple","limegreen")) #对时间序列数据进行核密度估计 data_new <- cbind(t,y) density_estimation <- density(y) # 绘制核密度估计曲线 plot(density_estimation) # 对时间序列数据进行核密度估计 density_estimation <- density(y, kernel = "gaussian", bw =0.00466)
时间: 2024-03-04 13:52:44 浏览: 19
这段代码的作用是对3个月国库券收益率进行非参数估计,包括局部线性回归和核密度估计。
首先,代码读取了一个csv文件,将第一列转换为日期格式的时间序列对象t,将第二列除以100得到收益率y,并绘制了收益率随时间的时序图和局部线性回归曲线。接着,代码使用ksmooth()函数进行局部线性回归估计,并绘制了3个不同带宽参数下的拟合曲线。最后,代码使用density()函数进行核密度估计,并绘制了核密度估计曲线。
需要注意的是,局部线性回归和核密度估计都是非参数估计方法,不需要对数据的分布做出任何假设,因此在处理复杂数据时具有较好的适用性。在使用这些方法时,需要选择合适的带宽参数,以获得较好的拟合效果。
相关问题
#数据预处理 data <- read.csv("C:/Users/16215/Desktop/weekly 3-month Treasury bill.csv") y <- data[,2]/100 #选取数据的第二列 n <- length(y) t <- data[,1]怎么画时间序列图
您可以使用R语言中的`plot()`函数来绘制时间序列图。以下是如何使用`plot()`函数绘制时间序列图的示例代码:
```
# 将日期转换为时间序列对象
t <- as.Date(t)
# 绘制时间序列图
plot(t, y, type="l", xlab="Date", ylab="Yield (%)", main="3-Month Treasury Bill Yield")
```
在这个例子中,`as.Date()`函数用于将日期字符串转换为时间序列对象。`plot()`函数使用`type="l"`参数来指定绘制折线图,`xlab`和`ylab`参数用于指定x和y轴的标签,`main`参数用于指定图表的标题。
#数据预处理 data <- read.csv("C:/Users/16215/Desktop/weekly 3-month Treasury bill.csv") x <- data[,2]/100 #选取数据的第二列 n <- length(x) y <- diff(x) #差分 x <- x[1:(n-1)] #做差分后去掉最后一个变量 n <- n-1 #变量个数也减少1个 x_star <- (x-mean(x))/sqrt(var(x)) #标准化 #画时序图 postscript('plot1',horizontal=T,width=6,height=6) t <- data[,1] t <- t[2:n] plot(t,y,pch=20)报错#数据预处理 data <- read.csv("C:/Users/16215/Desktop/weekly 3-month Treasury bill.csv") x <- data[,2]/100 #选取数据的第二列 n <- length(x) y <- diff(x) #差分 x <- x[1:(n-1)] #做差分后去掉最后一个变量 n <- n-1 #变量个数也减少1个 x_star <- (x-mean(x))/sqrt(var(x)) #标准化 #画时序图 postscript('plot1',horizontal=T,width=6,height=6) t <- data[,1] t <- t[2:n] plot(t,y,pch=20)
这段代码中的 `postscript('plot1',horizontal=T,width=6,height=6)` 语句是用来设置输出到文件的参数的,但是在这之后没有调用 `dev.off()` 来关闭设备,导致后续的绘图函数出现问题。你可以在代码的最后加上 `dev.off()` 来关闭设备,代码如下所示:
```
#数据预处理
data <- read.csv("C:/Users/16215/Desktop/weekly 3-month Treasury bill.csv")
x <- data[,2]/100 #选取数据的第二列
n <- length(x)
y <- diff(x) #差分
x <- x[1:(n-1)] #做差分后去掉最后一个变量
n <- n-1 #变量个数也减少1个
x_star <- (x-mean(x))/sqrt(var(x)) #标准化
#画时序图
postscript('plot1',horizontal=T,width=6,height=6)
t <- data[,1]
t <- t[2:n]
plot(t,y,pch=20)
dev.off() #关闭设备
```
这样应该就能够正常输出图形了。