全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
568 2
2023-05-19
# -------------------------------------------------------------------------
# Estimate a first-order autoregressive stochastic volatility model on the
# forecast errors from the macroeconomic data (ar conditional mean only)
# -------------------------------------------------------------------------

# Initialization
rm(list=ls())
library(stochvol)
set.seed(4000) # for replication
options(digits=17)
vt   = read.table('arvyt.txt',sep = '\t')
T    = dim(vt)[1]
N    = dim(vt)[2]
for (i in 1:N){
        if(min(log(vt[,i]^2))== -Inf){
                vt[,i] = vt[,i] + 0.00001 #offset to avoid taking log of zero
        }
}

# Run MCMC algorithm and store draws
S    = 50000
burn = 50000
m    = matrix(0,T+3,N)
g    = matrix(0,3,N)
for (i in 1:N){
        draws  = svsample(vt[,i],draws=S,burnin=burn,quiet=TRUE,thinpara=10,thinlatent=10)
        all    = cbind(draws$para,draws$latent)
        m[,i]  = colMeans(all)
        g[,i]  = geweke.diag(draws$para)$z
        name   = sprintf('arsvdraws%d.txt',i)
        write(t(all),file=name,ncolumn=dim(all)[2])
}
out = rbind(m,g) #include Geweke statistics
write(t(out),file='arsvmeans.txt',ncolumn=dim(out)[2])


报错是[size=13.3333px]Error in colMeans(all) : 'x' must be numeric
[size=13.3333px]

[size=13.3333px]求大神解答呜呜

二维码

扫码加我 拉你入群

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

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

全部回复
2023-5-20 15:02:13
看起来是all这个data frame中,列名为x的那列,数据类型不是numeric,而是别的什么东西,使用
all\$x <- as.numeric(all\$x)
来处理一下试试?
二维码

扫码加我 拉你入群

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

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

2023-5-20 15:10:23
软柿子w 发表于 2023-5-19 15:23
# -------------------------------------------------------------------------
# Estimate a first-orde ...
不是有错误提示吗,先as.numeric一下试试
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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