#非参数估计 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 17:52:44 浏览: 94
这段代码的作用是对3个月国库券收益率进行非参数估计,包括局部线性回归和核密度估计。
首先,代码读取了一个csv文件,将第一列转换为日期格式的时间序列对象t,将第二列除以100得到收益率y,并绘制了收益率随时间的时序图和局部线性回归曲线。接着,代码使用ksmooth()函数进行局部线性回归估计,并绘制了3个不同带宽参数下的拟合曲线。最后,代码使用density()函数进行核密度估计,并绘制了核密度估计曲线。
需要注意的是,局部线性回归和核密度估计都是非参数估计方法,不需要对数据的分布做出任何假设,因此在处理复杂数据时具有较好的适用性。在使用这些方法时,需要选择合适的带宽参数,以获得较好的拟合效果。
阅读全文