楼主: 一朵小墨墨
1694 5

[问答] 求大神看看我这个R语言程序 [推广有奖]

  • 3关注
  • 0粉丝

本科生

41%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
563 点
帖子
57
精华
0
在线时间
88 小时
注册时间
2016-5-24
最后登录
2018-7-25

楼主
一朵小墨墨 发表于 2017-12-28 17:20:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
根据这个图片中的过程,写出编程过程,我是R语言初学者,好多都不怎么会,就自己编了一个过程,想求教大神们,过程有什么要改进的么?步骤5我也不会循环。如果我编的过程太惨目忍睹,能不能帮忙编一编

[size=0.83em]半小时前 上传
下载附件 [size=0.83em](71.5 KB)




这是我的过程

i<-1:100;j<-1:10000;
n<-length(i);m<-length(j);
z<-runif(n,0,1)
LB<-0
UB<-10
h<-(LB:UB)
k<-0.25
ARL0<-200
z[1]=0
count=0
h=(LB+UB)/2;
for(z in 1:n)
{
   for(RL in 1:m)
   {
     if(z>=h)
     {
       RL[j]=count;
     }
     if(z<h)
     {
       x<-rnorm(1,0,1)
       z<-max(z+x-k,0)
       count=count+1;z=z+1;
       while(z>h)
       {
         RL[j]=count;
       }
     }
     ARL=0
     ARL=ARL+RL[j]
   }
}
ARL
if(abs(ARL-200)<=1)
{
  h+=h
}


二维码

扫码加我 拉你入群

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

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

关键词:R语言 R语言初学者 size 初学者

回帖推荐

jinkelazzz 发表于3楼  查看完整内容

LB

沙发
一朵小墨墨 发表于 2017-12-28 17:31:36
人工置顶

藤椅
jinkelazzz 发表于 2017-12-28 17:55:58
LB <- 0
UB <- 10
k <- 0.25
ARL0 <- 200 #step1
repeat {
    RL <- NULL
    for(i in 1:10000) {
        z = 0
        count <- 0 #step2
        h <- (LB + UB) / 2
        while(z < h) {
            x <- rnorm(1)
            z <- max(z + x - k, 0)
            count <- count + 1
        } #this loop is step3
        RL[i] <- count
    } #this loop is step4
    ARL <- mean(RL)
    if(abs(ARL0 - ARL) <= 1) break
    if(ARL < ARL0 - 1) {
        LB <- h
    } else if(ARL > ARL0 + 1) {
        UB <- h
    }
}#this loop is step5
> h
[1] 5.576172
> ARL
[1] 199.9728
感觉跑的好慢啊
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 30 + 1 + 1 + 1 热心帮助其他会员
一朵小墨墨 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 30  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
一朵小墨墨 发表于 2017-12-28 21:07:46
jinkelazzz 发表于 2017-12-28 17:55
LB
ARL <- mean(RL)
    if(abs(ARL0 - ARL) <= 1) break
    if(ARL < ARL0 - 1) {
        LB <- h
    } else if(ARL > ARL0 + 1) {
        UB <- h
    }
}#this loop is step5
大神,我想问一下,您写的这个step5中我没看明白,题中更新LB=h后,不是还有个重复步骤2-5,直到h+=h的这个,这个是怎么循环的呢
我复制到我得Rstudio中,没有跑出来结果

报纸
jinkelazzz 发表于 2017-12-29 09:57:25
一朵小墨墨 发表于 2017-12-28 21:07
ARL
就是repeat啊,蒙特卡洛速度太慢,你可以少模拟几次看看

地板
一朵小墨墨 发表于 2017-12-29 15:07:53
jinkelazzz 发表于 2017-12-29 09:57
就是repeat啊,蒙特卡洛速度太慢,你可以少模拟几次看看
太感谢了,我之前模拟的次数太多,电脑跑不出来,谢谢~现在出结果了

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 10:02