Grid Bootstrap - solve.default中的错误(t(x)%*%x):系统计算奇异

时间:2016-02-17 22:10:29

标签: r syntax-error time-series bootstrapping

我是R的新人,因此,如果我的后续问题可能会导致一些愚蠢的话,我会事先道歉,但我真的需要一些专家建议。 我在将其他人的代码应用于我的数据时遇到了问题。作者的代码与他提供的例子非常吻合,在我看来,我正在做我所做的所有正确的步骤,但显然我不是。

主要功能是: grid_boot< - 函数(dat,name,t,ar,grid,bq,c,all,grph) 我应该简单地指定参数然后运行脚本中给出的代码,或者至少对于作者的例子来说这是有效的。 除ar参数外,示例中的所有规范都与我的情况相近。 ar参数是时间序列的自回归顺序,因此它只是您选择的从1到n的数字。我的系列需要一个简单的ar = 1,但如果我运行这个规范的代码,R会给我回复以下错误:

  

" solve.default(t(x)%*%x)中的错误:系统是计算上的   单数:倒数条件数= 6.07898e-34此外:   警告信息:1:在dat [(ar - k + 2):( n - k + 1)] - dat [(ar - k +   1):( n - k)]:较长的物体长度不是较短的倍数   对象长度2:在dat [(ar - k + 2):( n - k + 1)] - dat [(ar - k +   1):( n - k)]:较长的物体长度不是较短的倍数   对象长度"   (我知道有这个错误的其他帖子标题,但似乎没有什么适合我的情况)

在示例中,作者指定如下:

orig <- 2    # set to 1 for original data, set to 2 for extended data # 
t <- 2
grid <- 200
bq <- 9999    
c <- .9
i <- 7
d <- np[i,]
if (orig==1){
y <- as.matrix(dat[d[1]:(d[2]-18)])
if (i==4) y <- y[21:82]
}else{
y <- as.matrix(dat[d[1]:d[2]])
}
name <- "GNP per Capita: 1869-1988"
ar <- d[3]

我能指出的是指示ar&lt; -d [3],并且一般来说,指定i和d的含义是什么。我认为这个规范是由于他的数据集由几个变量组成,所有变量都写在同一列中,并且它们与索引相关联。 当我将这些输入提供给R(我使用RStudio)时,在环境窗格中显示为ar = 1.当我为我的练习提供数字输入(ar&lt; - 1)时,唯一的结果是上面提到的错误。

下面,我报告我的数据(正如你所看到的,它只是一个观察很少的系列,因此它应该是一个简单的)和我的输入,而脚本,示例和示例的数据是可下载的here. 我希望有人可以帮我弄清楚我做错了什么,我会非常感谢愿意帮助像我这样的新手的人。

install.packages("pracma")
library(pracma)
source(file.choose())
dat <- as.matrix(read.csv(file.choose(), header = TRUE))
print(dat)

USA
[1,]  0.01075000
[2,]  0.01116000
[3,]  0.01214000
[4,]  0.01309000
[5,]  0.01668000
[6,]  0.02991000
[7,]  0.02776000
[8,]  0.04218000
[9,]  0.05415000
[10,]  0.05895000
[11,]  0.04256000
[12,]  0.03306000
[13,]  0.00622000
[14,]  0.11035000
[15,]  0.09132000
[16,]  0.05737000
[17,]  0.06486000
[18,]  0.07647000
[19,]  0.11266000
[20,]  0.13509000
[21,]  0.10316000
[22,]  0.06161000
[23,]  0.03212000
[24,]  0.04317000
[25,]  0.03561000
[26,]  0.01859000
[27,]  0.03741000
[28,]  0.04009000
[29,]  0.04827000
[30,]  0.05398000
[31,]  0.04235000
[32,]  0.03029000
[33,]  0.02952000
[34,]  0.02607000
[35,]  0.02805000
[36,]  0.02931000
[37,]  0.02338000
[38,]  0.01552000
[39,]  0.02188000
[40,]  0.03377000
[41,]  0.02826000
[42,]  0.01586000
[43,]  0.00002270
[44,]  0.02677000
[45,]  0.03393000
[46,]  0.03226000
[47,]  0.02853000
[48,]  0.03839000
[49,] -0.00000356
[50,]  0.00001640
[51,]  0.03157000
[52,]  0.02069000
[53,]  0.01465000
[54,]  0.01622000
[55,]  0.01622000

dat <- dat
name <- "Inflation"
t <- 1
ar <- 1
grid <- 200
bq <- 1999
c <- .9
all <- 0
grph <- 1

out <- grid_boot(dat, name, t, ar, grid, bq, c, all, grph)

0 个答案:

没有答案