全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1788 5
2014-03-08
悬赏 300 个论坛币 已解决
> s<-runif(300,0.001,0.008)
> a0=1:300;#s[i]索赔记录为0的次数
> a1=1:300;#s[i]索赔记录为1的次数
> a2=1:300;#s[i]索赔记录为2的次数
> a3=1:300;#s[i]索赔记录超过2的次数
> b0=0;
> b1=0;
> b2=0;
> b3=0;
> c0=0;#索赔记录为0的总次数
> c1=0;#索赔记录为1的总次数
> c2=0;#索赔记录为2的总次数
> c3=0;#索赔记录超过2的总次数
> for(i in 1:300)
+ {
+ y<-rpois(20000,s[i]);
+ a0[i]<-sum(y==0);#索赔次数为0的相关数据
+ b0<-b0+s[i]*a0[i];
+ c0<-c0+a0[i];
+ a1[i]<-sum(y==1);#索赔次数为1的相关数据
+ b1<-b1+s[i]*a1[i];
+ c1<-c1+a1[i];
+ a2[i]<-sum(y==2);#索赔次数为2的相关数据
+ b2<-b2+s[i]*a2[i];
+ c2<-c2+a2[i];
+ a3[i]<-sum(y>2);#索赔次数超过2的相关数据
+ b3<-b3+s[i]*a3[i];
+ c3<-c3+a3[i];
+ }
> mean0<-b0/c0;
> mean1<-b1/c1;
> mean2<-b2/c2;
> mean3<-b3/c3;
> st0=0;
> st1=0;
> st2=0;
> st3=0;
> for(i in 1:300)
+ {
+ st0<-st0+a0[i]*(s[i]-mean0)^2;
+ st1<-st1+a1[i]*(s[i]-mean1)^2;
+ st2<-st2+a2[i]*(s[i]-mean2)^2;
+ st3<-st3+a3[i]*(s[i]-mean3)^2;
+ }
> std0=st0/c0;
> std1=st1/c1;
> std2=st2/c2;
> std3=st3/c3;
> bata0=mean0/std0;
> arfa0=mean0*bata0;
> bata1=mean1/std1;
> arfa1=mean1*bata1;
> bata2=mean2/std2;
> arfa2=mean2*bata2;
> bata3=mean3/std3;
> arfa3=mean3*bata3;
bata3、arfa3,R软件运行显示为NaN,求高手解惑和改正,本人不甚感激!

最佳答案

陈宝林 查看完整内容

是在不好意思,刚刚电脑卡了,不仅图没传上去,还回复了两遍。。。图片改为附件方式上传吧。。。
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-8 20:50:23
是在不好意思,刚刚电脑卡了,不仅图没传上去,还回复了两遍。。。图片改为附件方式上传吧。。。
附件列表
30000.jpg

原图尺寸 89.92 KB

样本为30000时各变量取值

样本为30000时各变量取值

300.jpg

原图尺寸 84.22 KB

样本为300时各变量的取值

样本为300时各变量的取值

二维码

扫码加我 拉你入群

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

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

2014-3-9 01:07:23
建议你使用rstudio软件进行调试,按ctrl+enter可以逐行调试,同时在右侧还会显示各个变量取值的变化,实际上beta3和alfa3缺失是因为b3和c3为0(有图有真相),具体的原因是由于两个分布的参数你给的都很小,所以最终在泊松分布的随机数中取3的概率非常小,以至于好几次实验都没有取到3(具体可以通过泊松分布的性质严格证明,此处省略)。。。。所以,为了使小概率事件发生,一个方法是大幅度增加样本数目,我把样本数从300增加到30000之后,奇迹出现了!见图(不过运行有点慢,别急)
二维码

扫码加我 拉你入群

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

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

2014-3-9 01:12:19
建议你使用rstudio软件进行调试,此软件非常之好,按ctrl+enter可以逐行调试,同时在右侧还会显示各个变量取值的变化。实际上beta3和alfa3缺失是因为b3和c3为0(有图有真相),具体的原因是由于两个分布的参数你给的都很小,所以最终在泊松分布的随机数中取3的概率非常小,以至于好几次实验都没有取到3(具体可以通过泊松分布的性质严格证明,此处省略)。。。。所以,为了使小概率事件发生,一个方法是大幅度增加样本数目,我把样本数从300增加到30000之后,奇迹出现了!见图(不过运行有点慢,别急)
二维码

扫码加我 拉你入群

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

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

2014-3-9 17:39:17
之所以bata3会出现NaN值是因为mean3值是NaN,可追溯到b3和c3。最后,是因为y中没有大于2的值引起的。
如果加入一行代码在如下位置:
复制代码
最后的结果如下
复制代码
问题可以解决了
二维码

扫码加我 拉你入群

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

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

2014-3-12 17:10:32
多谢各位的热心帮忙,不好意思,最近有点忙,确认晚了。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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