全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
7803 2
2014-07-11
求助,在用sde(随机微分方程)包,对vasicek利率模型进行参数估计时,代码如下:
require(stats4)
require(sde)
Y<-read.table("C:/bycworkspace/shibor.csv",header = T,sep =",")
X<-Y[,3]


OU.lik <- function(theta1, theta2, theta3){
  n <- length(X)
  dt <- deltat(X)
  -sum(dcOU(X[2:n], dt, X[1:(n-1)], c(theta1,theta2,theta3), log=TRUE))
}


mle(OU.lik, start=list(theta1=1, theta2=0.5, theta3=1),
      method="L-BFGS-B", lower=c(-Inf,0,0)) -> fit
summary(fit)


总是报错,如下:
the process is not stationary
Error in optim(start, f, method = method, hessian = TRUE, ...) :
  L-BFGS-B needs finite values of 'fn'
> summary(fit)
Error in summary(fit) :
  在为'summary'函数选择方法时评估'object'参数出了错: Error: object 'fit' not found



请问这是啥情况
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-12-10 17:45:52
没给fit做定义
lower=c(-Inf,0,0)) -> fit
这里也不是给fit赋值的意思,而是把fit赋给lower
所以在summary(fit)自然就找不到参数了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-6-2 13:34:12
你在使用R语言的`sde`包来估计 Vasicek 利率模型的参数。从你的代码片段来看,似乎缺少了实际数据的部分。在调用 `require(sde)` 之后,你应该导入包含利率时间序列的数据,并将其赋值给一个变量,例如 `Y`。

如果你已经有了这样的数据并且已经正确地赋值给了 `Y`,那么可能的问题是数据中存在非数值(如NA)或者无穷大值。在使用优化算法(如L-BFGS-B)进行最大似然估计时,需要函数的值是有限的数值。

为了解决这个问题,你可以先检查 `Y` 中是否存在非数值或无穷大值,并进行相应的处理(如用插值法填充NA,或将无穷大值替换为合理的数值)。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群