楼主: 飘零的枫叶
51971 206

[问答] 用lingo软件如何对DEA-DA模型进行编程 [推广有奖]

131
epoh 发表于 2011-8-2 11:01:29
第一次运行结果和第二次运行结果相矛盾,不一致
哈哈你想岔了
What is boostsrap sampling:      
          Bootstrap is sampling with replacement from a sample

第一次抽样是:"xsamp=" 17 16  5  6  5  9 13 15 11 20  6 21  5  4 21"

第二次抽样是:"xsamp="  5  5  5  7 21 21  5  5  8 21 17  7  7 15  9"

每执行一次,每次的抽样都不同
结果当然不同
所以bootstrap次数一定要多,10000,50000,...
结果才会稳
#####
s2=NA*seq(1:boot)
你也可以设为
s2=seq(1:boot)
or s2=0*seq(1:boot)
or s2=1*seq(1:boot)
但是编程过都会出错
如何让自己尽快发现错误
譬如你是设(0,0,0,...)
你如何判断这是运算出来的结果
还是初始值

你可参考R help >?matrix
matrix(data = NA, nrow = 1,ncol = 1,byrow = FALSE,dimnames = NULL)

132
zhangtao 发表于 2011-8-2 19:36:39
epoh 发表于 2011-8-2 11:01
第一次运行结果和第二次运行结果相矛盾,不一致
哈哈你想岔了
What is boostsrap sampling:
Rgarch.rar (50.29 KB)
epoh老师,您好!
    附件中我的R程序为什么运行全是错的?如何修改?
非常非常非常感谢!
1使用bayesGARCH包 (1)数据SHindex.txt ## LOAD DATA  data(SHindex)  y <- SHindex[1:750]   ## RUN THE SAMPLER (2 chains)  MCMC <- bayesGARCH(y, control = list(n.chain = 2, l.chain = 2000))   ## MCMC ANALYSIS (using coda)  plot(MCMC)  autocorr.diag(MCMC)  gelman.diag(MCMC)  1-rejectionRate(MCMC)   ## FORM THE POSTERIOR SAMPLE  smpl <- formSmpl(MCMC, l.bi = 500)   ## POSTERIOR STATISTICS  summary(smpl)  smpl <- as.matrix(smpl)  pairs(smpl)   ## GARCH(1,1) WITH NORMAL INNOVATIONS  MCMC <- bayesGARCH(y, lambda = 100, delta = 500,                     control = list(n.chain = 2, l.chain = 2000))   ## GARCH(1,1) WITH NORMAL INNOVATIONS AND   ## WITH COVARIANCE STATIONARITY CONDITION  addPriorConditions <- function(psi){psi[2] + psi[3] < 1}  MCMC <- bayesGARCH(y, lambda = 100, delta = 500,                     control = list(n.chain = 2, l.chain = 2000,                      addPriorConditions = addPriorConditions))

## End(Not run)

## Not run: sim = mvBEKK.sim(series.count = 3, T = 1000) # simulate a 3 dimensional mgarch model with length of 1000eps = data.frame(sim$eps[[1]], sim$eps[[2]], sim$eps[[3]]) # encapsulateest = mvBEKK.est(eps) # estimate the simulated model ## End(Not run)

## Not run: sim = mvBEKK.sim(series.count = 3, T = 2500) ## End(Not run)

3 NP npplreg命令

# EXAMPLE 1 (INTERFACE=FORMULA): For this example, we simulate an# example for a partially linear model, and compare the coefficient# estimates from the partially linear model with those from a correctly# specified parametric model... ## LOAD DATA  data(dcc_rets.csv)  set.seed(123)=data[,2] n <- 250x1 <- rnorm(n)x2 <- rbinom(n, 5, .3) z1 <- rbinom(n, 2, .3)z2 <- rnorm(n) y <- 1 + x1 + x2 + z1 + sin(z2) + rnorm(n) # First, compute data-driven bandwidths.  We override the default# tolerances for the search method as the objective function is# well-behaved (don't of course do this in general). This may take a few# minutes depending on the speed of your computer... bw <- npplregbw(formula=y~x1+ordered(x2)|ordered(z1)+z2, tol=.1, ftol=.1) # Next, compute the partially linear fit pl <- npplreg(bws=bw) # Print a summary of the model...


数学好就是要天天学

133
zhangtao 发表于 2011-8-2 19:36:47
(2)数据CH2007.xls



## LOAD DATA  data(CH2007)  y <- CH2007[1:750]   ## RUN THE SAMPLER (2 chains)  MCMC <- bayesGARCH(y, control = list(n.chain = 2, l.chain = 2000))   ## MCMC ANALYSIS (using coda)  plot(MCMC)  autocorr.diag(MCMC)  gelman.diag(MCMC)  1-rejectionRate(MCMC)   ## FORM THE POSTERIOR SAMPLE  smpl <- formSmpl(MCMC, l.bi = 500)   ## POSTERIOR STATISTICS  summary(smpl)  smpl <- as.matrix(smpl)  pairs(smpl)   ## GARCH(1,1) WITH NORMAL INNOVATIONS  MCMC <- bayesGARCH(y, lambda = 100, delta = 500,                     control = list(n.chain = 2, l.chain = 2000))   ## GARCH(1,1) WITH NORMAL INNOVATIONS AND   ## WITH COVARIANCE STATIONARITY CONDITION  addPriorConditions <- function(psi){psi[2] + psi[3] < 1}  MCMC <- bayesGARCH(y, lambda = 100, delta = 500,                     control = list(n.chain = 2, l.chain = 2000,                      addPriorConditions = addPriorConditions))





2  MGARCH包

## LOAD DATA  data(stockdata)

## Not run: combined = cdts(c("xu100", "dji", "gdaxi"))



## Not run: e1 = elem.an(' stockdata ')  # ----  THE FILE xu100.dat MUST EXIST!!!e2 = elem.an(' stockdata ', from.to = c('1990-01-01', '2003-12-31'))e3 = elem.an(' stockdata ', return.formula = 'log')e4 = elem.an(' stockdata ', from.to = c('1990-01-01', '2003-12-31'), save.statistics = T)e5 = elem.an(' stockdata ', make.bull.indicator = T, make.weekly = F)       ## Not run: sim = BEKK.sim(1000)est = mGJR.est(sim$eps1, sim$eps2) ## End(Not run) ## End(Not run)

## Not run: sim = mvBEKK.sim(series.count = 3, T = 1000) # simulate a 3 dimensional mgarch model with length of 1000eps = data.frame(sim$eps[[1]], sim$eps[[2]], sim$eps[[3]]) # encapsulateest = mvBEKK.est(eps) # estimate the simulated modelmvBEKK.diag(est) # print diagnosis
数学好就是要天天学

134
epoh 发表于 2011-8-2 22:04:46
zhangtao兄
我劝你可能要花点时间
了解一下自己的数据型态
及如何读入数据
## LOAD DATA
  data(SHindex)
  y <- SHindex[1:750]

是这样读入数据吗?
你有检查数据读进了吗?

#########
## LOAD DATA
  data(CH2007)
  y <- CH2007[1:750]
  CH2007.xls, 这是你自己建的
  明明是56 x 4 matrix,
  你如何能读到CH2007[1:750]

这些无论如何你自己务必弄懂
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ywh19860616 + 5 + 5 + 5 很好的建议

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

135
ywh19860616 发表于 2011-8-3 00:03:25
epoh老师,在R里面读入数据时存在错误时,有没有办法让R自行报错
如一个数据文件包含一个变量Try,如果我读入时写成了try,那不会自动报错,在R可以设置自动报错吗?
哈哈,刚开始学的时候这个问题弄了好久,现在每读入数据都会检验有没有读取成功
一份耕耘,一份收获。

136
zhangtao 发表于 2011-8-3 08:06:20
epoh 发表于 2011-8-2 22:04
zhangtao兄
我劝你可能要花点时间
了解一下自己的数据型态
epoh老师,您好!
    我对R的数据读入实在了解不多,还希望您抽点时间帮我大概修改一下,修改一两个程序就可以了,
剩余的我自己再修改。数据和程序在附件中,下载打开就可以看到。
非常非常非常感谢!
数学好就是要天天学

137
epoh 发表于 2011-8-3 11:09:05
抱歉zhangtao 兄
容我说白一点
######Ch2007.xls
1995        12461.75        183197        7088.879        1265.747
1996        8292.086        151476        5614.784        1815.18
1997        16798.58        118080        13902.27        1556.115
………….
这种数据型态怎适合作BayesGARCH

###### SHindex.txt, stockdata.txt
SHindex.txt= stockdata.txt
这种数据型态怎适合作BayesGARCH, MGARCH
78        3078.114497
1        3087.319933
1        3124.762076
1        3148.575819
79        3276.079661
1        3314.722095
1        3371.09579
1        3432.983193


3: NP包 npplreg命令
   这就是package "np",的基本范例,
   数据都是模拟产生,怎还会出错
   数据都是模拟产生,怎还会data(dcc_rets.csv)
   因为自行加了底下两行
   #data(dcc_rets.csv)
   #set.seed(123)=data[,2]
   set.seed(42)
   n <- 250
   x1 <- rnorm(n)
   x2 <- rbinom(n, 1, .5)
   .........



已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 5 + 5 + 5 观点有启发

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

138
zhangtao 发表于 2011-8-3 12:16:46
# Load Data into vector y #
u <- read.table("C:\\lhmu.dat")
c <- read.table("C:\\lhmc.dat")
u <- as.matrix(u)
c <- as.matrix(c)
t1 <- floor(u[1])
ts <- 1959
s1 <- (ts-t1)*12+3
n <- nrow(u)
y <- as.matrix((u[s1:n]/c[s1:n])*100)
n <- nrow(y)
epoh老师,您好!
   我想问一下,R用read.table读入数据后,为什么还要用as.matrix命令把它做成一个矩阵呢?
是不是用scan和read.xls命令读入数据后,也要用as.matrix把它做成一个矩阵?


第二个问题:
lngdpq=read.table("lngdpq.txt")
lngdpq.df=lngdpq[,1]

lny = as.matrix(lngdpq.df)*100

td = timeSeq(from="1/1/1947",to="4/1/1998",by="quarters")
lny.ts = timeSeries(data=lny,positions=td)
是不是做时间序列分析,都要把读入的数据用命令timeSeries做成时间序列?

第三个问题:

superman.ts <- signalSeries(data.frame(logret),from=1 ) 这一步是什么意思?
logret=superman.ts[,"logret"] 这一步做什么用?是什么意思?
ret=superman.ts@data[,"logret"]
ret.figarch = fgarch(ret~1, ~figarch(1,1)) 这一步中这两个弯弯~是什么意思?

signalSeries这个命令是什么意思?
非常感谢!
数学好就是要天天学

139
epoh 发表于 2011-8-3 15:45:18

Q1:read.table,read.csv

   回车的都是"data.frame"

   研究金融商品孰悉这两个就行了

   scan,还可回车list,有兴趣的话请看"帮助"

   lngdpq=read.table("lngdpq.txt")

   class( lngdpq)     #[1] "data.frame"

   dcc.rets=read.csv("dcc_rets.csv")

   class(dcc.rets)    #[1] "data.frame"

Q2:做时间序列分析,都要把读入的数据用命令timeSeries做成时间序列?

   非也,用到的机会不多

   numeric,matrix,data.frame,最常用

Q3:signalSeries这个命令是什么意思?

   详细请看 Insightful\splus80\help\pg.pdf chap 5

   在s-plus,create time series有两种

   calendar-based and Non-calendar-based(signals)

   calendar-based
   timeSeries(pos = timeCalendar(d = 1:10, m = 1, y = 1998, format = "%02m/%02d/%Y"), data = data.frame(11:20))
    Positions X1
   01/01/1998 11
   01/02/1998 12
   01/03/1998 13
   .............
   01/10/1998 20


   Non-calendar-based:
   signalSeries(data = data.frame(x = 11:20),from=1)
   Positions  x
   1        11
   2        12
   3        13
  ...........
  10        20

Q4:fgarch(ret~1, ~figarch(1,1)) 这一步中这两个弯弯~是什么意思

  详细请看帮助

?"~"
  A formula is a call (i.e., of mode "call") to the ~ operator
  Ex:
  lm(Fuel ~ Weight)
  lm(Fuel ~ Weight + Disp.)
  lm(Fuel ~ Weight - 1)      # no intercept

%%%%%%%%%

copulafit.m, statgetargs.m

   copula code.rar (8.56 KB)

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 5 + 5 + 5 对epoh大师致以最真诚的敬意!!!
ywh19860616 + 5 + 5 + 5 谢谢epoh老师提供程序

总评分: 学术水平 + 10  热心指数 + 10  信用等级 + 10   查看全部评分

140
zhangtao 发表于 2011-8-3 17:17:03
epoh 发表于 2011-8-3 15:45
Q1:read.table,read.csv   回车的都是"data.frame"   研究金融商品孰悉这两个就行了   scan,还可回车list,有 ...
Rcode.rar (3.33 KB)
epoh老师,您好!
     附件中的程序运行有误,我实在找不出原因,请您帮忙看看!
非常感谢!

> local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> # Load Data into vector y #
> y <- read.table("C:\\lhmu.dat")
> y <- as.vector(y)
>
>
>   
>
>   ## RUN THE SAMPLER (2 chains)
>   MCMC <- bayesGARCH(y, control = list(n.chain = 2, l.chain = 2000))
错误于bayesGARCH(y, control = list(n.chain = 2, l.chain = 2000)) :
  'y' must be a vector
>
>   ## MCMC ANALYSIS (using coda)
>   plot(MCMC)
错误于plot(MCMC) : 找不到对象'MCMC'
>   autocorr.diag(MCMC)
错误于autocorr.diag(MCMC) : 找不到对象'MCMC'
>   gelman.diag(MCMC)
错误于as.mcmc.list(x) : 找不到对象'MCMC'
>   1-rejectionRate(MCMC)
错误于rejectionRate(MCMC) : 找不到对象'MCMC'
>
>   ## FORM THE POSTERIOR SAMPLE
>   smpl <- formSmpl(MCMC, l.bi = 500)
错误于formSmpl(MCMC, l.bi = 500) : 找不到对象'MCMC'
>
>   ## POSTERIOR STATISTICS
>   summary(smpl)
错误于summary(smpl) : 找不到对象'smpl'
>   smpl <- as.matrix(smpl)
错误于as.matrix(smpl) : 找不到对象'smpl'
>   pairs(smpl)
错误于pairs(smpl) : 找不到对象'smpl'
>
>   ## GARCH(1,1) WITH NORMAL INNOVATIONS
>   MCMC <- bayesGARCH(y, lambda = 100, delta = 500,
+                      control = list(n.chain = 2, l.chain = 2000))
错误于bayesGARCH(y, lambda = 100, delta = 500, control = list(n.chain = 2,  :
  'y' must be a vector
>
>   ## GARCH(1,1) WITH NORMAL INNOVATIONS AND
>   ## WITH COVARIANCE STATIONARITY CONDITION
>   addPriorConditions <- function(psi){psi[2] + psi[3] < 1}
>   MCMC <- bayesGARCH(y, lambda = 100, delta = 500,
+                      control = list(n.chain = 2, l.chain = 2000,
+                      addPriorConditions = addPriorConditions))
错误于bayesGARCH(y, lambda = 100, delta = 500, control = list(n.chain = 2,  :
  'y' must be a vector
>
>



数学好就是要天天学

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-3 13:09