楼主: Mutually_Sincer
5428 2

[问答] 关于R语言中自定义函数积分的问题 [推广有奖]

  • 4关注
  • 10粉丝

已卖:56份资源

博士生

89%

还不是VIP/贵宾

-

威望
0
论坛币
6969 个
通用积分
13.9949
学术水平
11 点
热心指数
15 点
信用等级
4 点
经验
4658 点
帖子
204
精华
0
在线时间
357 小时
注册时间
2014-11-4
最后登录
2024-12-13

楼主
Mutually_Sincer 学生认证  发表于 2016-7-24 16:45:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
开门见山:
已知一个时间序列y,将其代入统计量后计算统计量的值,而此统计量是需要积分运算的。具体程序如下:
  1. criv<-function(y)
  2. {
  3.   T <- length(y)
  4.   a <- function(tau){
  5.     a1 <- floor(tau)
  6.     z.wave.0 <- numeric(length = a1)
  7.   z.wave.1 <- numeric(length = T-a1)
  8.   for(i1 in 1:a1){
  9.      z.wave.0[i1] <- y[i1]-mean(y[1:a1])
  10.    }
  11.    for(i2 in (a1+1):T){
  12.      z.wave.1[i2-a1] <- y[i2]-mean(y[(a1+1) : T])
  13.   }
  14.    
  15.   numerator <- (T - tau)^(-2)*sum(cumsum(z.wave.1)^2)
  16.   denominator <- tau^(-2)*sum(cumsum(z.wave.0)^2)
  17.   numerator/denominator
  18.   }
  19.   integrate(a,lower = .2*T,upper = .8*T)
  20.   
  21. }
复制代码


内层函数a即为主要计算统计量的程序,利用integrate函数对a做积分报错,提示为”无效的长度定义“,不晓得到底是哪里出了错。


二维码

扫码加我 拉你入群

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

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

关键词:自定义函数 自定义 R语言 具体程序 开门见山 程序 统计

回帖推荐

马甲1号 发表于2楼  查看完整内容

多看看帮助, f: an R function taking a numeric first argument and returning a numeric vector of the same length. Returning a non-finite element will generate an error. 所以你得把函数a稍稍改写一下:
wanna be a stargazer

沙发
马甲1号 发表于 2016-7-24 18:54:57
多看看帮助,
       f: an R function taking a numeric first argument and returning a
          numeric vector of the same length
.  Returning a non-finite
          element will generate an error.
所以你得把函数a稍稍改写一下:

  1. aa= function(tau){sapply(tau, a)}
  2. integrate(a,lower = .2*T,upper = .8*T)
复制代码

藤椅
Mutually_Sincer 学生认证  发表于 2016-7-25 09:57:23
马甲1号 发表于 2016-7-24 18:54
多看看帮助,
       f: an R function taking a numeric first argument and returning a
          num ...
多谢,另外,integrate(aa,0.2*T,0.8*T)

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 12:46