楼主: zhangtao
2085 9

[问答] 一个R程序求助!如何知道R模拟出的结果 [推广有奖]

  • 3关注
  • 42粉丝

已卖:431份资源

学科带头人

41%

还不是VIP/贵宾

-

威望
0
论坛币
2302 个
通用积分
908.3324
学术水平
114 点
热心指数
120 点
信用等级
83 点
经验
52009 点
帖子
1552
精华
1
在线时间
2357 小时
注册时间
2005-1-13
最后登录
2024-5-21

楼主
zhangtao 发表于 2011-6-5 11:23:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
cnpkf=function(x,lsl,usl){
x50=quantile(x,0.5)
x99.5=quantile(x,0.995)
x0.5=quantile(x,0.005)
cnpl=(x50-lsl)/(x50-x0.5)
cnpu=(usl-x50)/(x99.5-x50)
cnpk=min(cnpl,cnpu)
return(cnpk)
}
cnpkt=function(lsl,usl){
z50=qnorm(0.5)
z99.5=qnorm(0.995)
z0.5=qnorm(0.005)
cnpl=(z50-lsl)/(z50-z0.5)
cnpu=(usl-z50)/(z99.5-z50)
true.cnpk=min(cnpl,cnpu)
return(true.cnpk)
}
cnpkbootpm=function(x,lsl,usl,b)
{
coverage=matrix(0,1,4)
n=length(x)
cnpk=cnpkt(lsl,usl)
T1=matrix(0,b,1)
H1=matrix(0,b,1)
T1S=matrix(0,b,1)
H1S=matrix(0,b,1)
cnpkstar=matrix(0,b,1)
cnpkstars=matrix(0,b,1)
cnpks=matrix(0,b,1)
sampleSD=sd(x)
sigma=min(sampleSD,IQR(x)/1.349)
h=1.587*sigma*n^(-1/3)
cnpkhat=cnpkf(x,lsl,usl)
for(i in 1:b)
{
xstar=sample(x,n,replace=T)
cnpkstar=cnpkf(xstar,lsl,usl)
cnpkstar1=matrix(0,b,1)
for(j in 1:100)
{
xstar1=sample(xstar,n,replace=T)
cnpkstar1[j]=cnpkf(xstar1,lsl,usl)
}
std=sd(cnpkstar1)
T1=(cnpkstar-cnpk)/std
H1=cnpkstar-cnpk
}
cnpks=sort(cnpkstar)
se=sd(cnpkstar)
# standard bootstrap------------------------
BS.CL=cnpkhat-1.96*(se)
BS.CU=cnpkhat+1.96*(se)
if ((cnpk>=BS.CL)&&(cnpk<=BS.CU))
coverage[1]=1
width1=BS.CU-BS.CL
# percentile bootstrap----------------------
BSP.CL=cnpks[as.integer(b*.05)]
BSP.CU=cnpks[as.integer(b*.95)]
if ((cnpk>=BSP.CL)&&(cnpk<=BSP.CU))
coverage[2]=1
width2=BSP.CU-BSP.CL
# calculating CI cnpk- SE(T)--------------------
tsort=sort(T1)
d1=b*.95
d2=b*.05
l1=tsort[as.integer(d1)]
u1=tsort[as.integer(d2)]
BST.CL=cnpkhat-se*l1
BST.CU=cnpkhat-se*u1
if ((cnpk>=BST.CL)&&(cnpk<=BST.CU))
coverage[3]=1
width3=BST.CU-BST.CL
# calculating CI cnpk-H--------------------------
hsort=sort(H1)
e1=b*.95
e2=b*.05
l2=hsort[as.integer(e1)]
u2=hsort[as.integer(e2)]
BSH.CL=cnpkhat-l2
BSH.CU=cnpkhat-u2
if ((cnpk>=BSH.CL)&&(cnpk<=BSH.CU))
coverage[4]=1
width4=BSH.CU-BSH.CL
return(coverage)
}
cnpksim=function(n,iter,lsl,usl)
{
covmat=matrix(0,iter,4)
b=1000
for (i in 1:iter)
{
x=rnorm(n,0,1)
covmat[i, ]=cnpkbootpm(x,lsl,usl,b)
}
return (covmat)
}
以上程序如何显示结果?如何知道模拟出的结果?命令是什么?谢谢!
本文来自: 人大经济论坛 文献求助专区 版,详细出处参考:https://bbs.pinggu.org/viewthread.php?tid=1112611&page=1&from^^uid=11232
二维码

扫码加我 拉你入群

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

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

关键词:R程序 Bootstrap function quantile Bootstra 求助 程序 结果 模拟

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
epoh + 5 + 5 + 5 好议题

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

沙发
ryusukekenji 发表于 2011-6-5 15:37:06
  1. cnpksim=function(n,iter,lsl,usl){
  2.    #internal function 1 =========================
  3.    cnpkf=function(x,lsl,usl){
  4.       x50=quantile(x,0.5)
  5.       x99.5=quantile(x,0.995)
  6.       x0.5=quantile(x,0.005)
  7.       cnpl=(x50-lsl)/(x50-x0.5)
  8.       cnpu=(usl-x50)/(x99.5-x50)
  9.       cnpk=min(cnpl,cnpu); return(cnpk) }

  10.    #internal function 2 =========================
  11.    cnpkt=function(lsl,usl){
  12.       z50=qnorm(0.5); z99.5=qnorm(0.995)
  13.       z0.5=qnorm(0.005)
  14.       cnpl=(z50-lsl)/(z50-z0.5)
  15.       cnpu=(usl-z50)/(z99.5-z50)
  16.       true.cnpk=min(cnpl,cnpu)
  17.       return(true.cnpk) }

  18.    #internal function 3 =========================         
  19.    cnpkbootpm=function(x,lsl,usl,b){
  20.       coverage=matrix(0,1,4); n=length(x)
  21.       cnpk=cnpkt(lsl,usl)
  22.       T1=matrix(0,b,1); H1=matrix(0,b,1)
  23.       T1S=matrix(0,b,1); H1S=matrix(0,b,1)
  24.       cnpkstar=matrix(0,b,1)
  25.       cnpkstars=matrix(0,b,1)
  26.       cnpks=matrix(0,b,1); sampleSD=sd(x)
  27.       sigma=min(sampleSD,IQR(x)/1.349)
  28.       h=1.587*sigma*n^(-1/3)
  29.       cnpkhat=cnpkf(x,lsl,usl)

  30.       for(i in 1:b){
  31.          xstar=sample(x,n,replace=T)
  32.          cnpkstar=cnpkf(xstar,lsl,usl)
  33.          cnpkstar1=matrix(0,b,1)
  34.          for(j in 1:100){
  35.             xstar1=sample(xstar,n,replace=T)
  36.             cnpkstar1[j]=cnpkf(xstar1,lsl,usl)}
  37.          std=sd(cnpkstar1)
  38.          T1=(cnpkstar-cnpk)/std
  39.          H1=cnpkstar-cnpk }
  40.          cnpks=sort(cnpkstar); se=sd(cnpkstar)

  41.       # standard bootstrap------------------------
  42.       BS.CL=cnpkhat-1.96*(se)
  43.       BS.CU=cnpkhat+1.96*(se)
  44.       if ((cnpk>=BS.CL)&&(cnpk<=BS.CU))
  45.          coverage[1]=1; width1=BS.CU-BS.CL

  46.       # percentile bootstrap----------------------
  47.       BSP.CL=cnpks[as.integer(b*.05)]
  48.       BSP.CU=cnpks[as.integer(b*.95)]
  49.       if ((cnpk>=BSP.CL)&&(cnpk<=BSP.CU))
  50.          coverage[2]=1; width2=BSP.CU-BSP.CL

  51.       # calculating CI cnpk- SE(T)--------------------
  52.       tsort=sort(T1); d1=b*.95; d2=b*.05
  53.       l1=tsort[as.integer(d1)]
  54.       u1=tsort[as.integer(d2)]
  55.       BST.CL=cnpkhat-se*l1; BST.CU=cnpkhat-se*u1
  56.       if ((cnpk>=BST.CL)&&(cnpk<=BST.CU))
  57.          coverage[3]=1; width3=BST.CU-BST.CL

  58.       # calculating CI cnpk-H--------------------------
  59.       hsort=sort(H1); e1=b*.95; e2=b*.05
  60.       l2=hsort[as.integer(e1)]
  61.       u2=hsort[as.integer(e2)]
  62.       BSH.CL=cnpkhat-l2; BSH.CU=cnpkhat-u2
  63.       if ((cnpk>=BSH.CL)&&(cnpk<=BSH.CU))
  64.          coverage[4]=1; width4=BSH.CU-BSH.CL
  65.       return(coverage) }

  66.    # ===================================================
  67.    covmat=matrix(0,iter,4); b=1000
  68.    for (i in 1:iter) {
  69.       x=rnorm(n,0,1)
  70.       covmat[i, ]=cnpkbootpm(x,lsl,usl,b) }
  71.    return (covmat) }
复制代码
我稍微整理了一下,不晓得楼主可否提供数据以方便测试呢?

藤椅
zhangtao 发表于 2011-6-5 17:42:51
原文在附件中

000distributions.rar
下载链接: https://bbs.pinggu.org/a-920583.html

198.94 KB

本附件包括:

  • 000distributions.pdf

板凳
zhangtao 发表于 2011-6-5 17:44:04
原文中的程序,是模拟用的,应该不需要程序。
请懂的朋友运行一下,看一下怎么做出原作者的
结果。

报纸
zhangtao 发表于 2011-6-5 17:46:59
> cnpksim=function(n,iter,lsl,usl){
+
+    #internal function 1 =========================
+
+    cnpkf=function(x,lsl,usl){
+
+       x50=quantile(x,0.5)
+
+       x99.5=quantile(x,0.995)
+
+       x0.5=quantile(x,0.005)
+
+       cnpl=(x50-lsl)/(x50-x0.5)
+
+       cnpu=(usl-x50)/(x99.5-x50)
+
+       cnpk=min(cnpl,cnpu); return(cnpk) }
+
+
+
+    #internal function 2 =========================
+
+    cnpkt=function(lsl,usl){
+
+       z50=qnorm(0.5); z99.5=qnorm(0.995)
+
+       z0.5=qnorm(0.005)
+
+       cnpl=(z50-lsl)/(z50-z0.5)
+
+       cnpu=(usl-z50)/(z99.5-z50)
+
+       true.cnpk=min(cnpl,cnpu)
+
+       return(true.cnpk) }
+
+
+
+    #internal function 3 =========================         
+
+    cnpkbootpm=function(x,lsl,usl,b){
+
+       coverage=matrix(0,1,4); n=length(x)
+
+       cnpk=cnpkt(lsl,usl)
+
+       T1=matrix(0,b,1); H1=matrix(0,b,1)
+
+       T1S=matrix(0,b,1); H1S=matrix(0,b,1)
+
+       cnpkstar=matrix(0,b,1)
+
+       cnpkstars=matrix(0,b,1)
+
+       cnpks=matrix(0,b,1); sampleSD=sd(x)
+
+       sigma=min(sampleSD,IQR(x)/1.349)
+
+       h=1.587*sigma*n^(-1/3)
+
+       cnpkhat=cnpkf(x,lsl,usl)
+
+
+
+       for(i in 1:b){
+
+          xstar=sample(x,n,replace=T)
+
+          cnpkstar=cnpkf(xstar,lsl,usl)
+
+          cnpkstar1=matrix(0,b,1)
+
+          for(j in 1:100){
+
+             xstar1=sample(xstar,n,replace=T)
+
+             cnpkstar1[j]=cnpkf(xstar1,lsl,usl)}
+
+          std=sd(cnpkstar1)
+
+          T1=(cnpkstar-cnpk)/std
+
+          H1=cnpkstar-cnpk }
+
+          cnpks=sort(cnpkstar); se=sd(cnpkstar)
+
+
+
+       # standard bootstrap------------------------
+
+       BS.CL=cnpkhat-1.96*(se)
+
+       BS.CU=cnpkhat+1.96*(se)
+
+       if ((cnpk>=BS.CL)&&(cnpk<=BS.CU))
+
+          coverage[1]=1; width1=BS.CU-BS.CL
+
+
+
+       # percentile bootstrap----------------------
+
+       BSP.CL=cnpks[as.integer(b*.05)]
+
+       BSP.CU=cnpks[as.integer(b*.95)]
+
+       if ((cnpk>=BSP.CL)&&(cnpk<=BSP.CU))
+
+          coverage[2]=1; width2=BSP.CU-BSP.CL
+
+
+
+       # calculating CI cnpk- SE(T)--------------------
+
+       tsort=sort(T1); d1=b*.95; d2=b*.05
+
+       l1=tsort[as.integer(d1)]
+
+       u1=tsort[as.integer(d2)]
+
+       BST.CL=cnpkhat-se*l1; BST.CU=cnpkhat-se*u1
+
+       if ((cnpk>=BST.CL)&&(cnpk<=BST.CU))
+
+          coverage[3]=1; width3=BST.CU-BST.CL
+
+
+
+       # calculating CI cnpk-H--------------------------
+
+       hsort=sort(H1); e1=b*.95; e2=b*.05
+
+       l2=hsort[as.integer(e1)]
+
+       u2=hsort[as.integer(e2)]
+
+       BSH.CL=cnpkhat-l2; BSH.CU=cnpkhat-u2
+
+       if ((cnpk>=BSH.CL)&&(cnpk<=BSH.CU))
+
+          coverage[4]=1; width4=BSH.CU-BSH.CL
+
+       return(coverage) }
+
+
+
+    # ===================================================
+
+    covmat=matrix(0,iter,4); b=1000
+
+    for (i in 1:iter) {
+
+       x=rnorm(n,0,1)
+
+       covmat[i, ]=cnpkbootpm(x,lsl,usl,b) }
+
+    return (covmat) }
>
没有结果

地板
zhangtao 发表于 2011-6-6 13:16:47
希望大家看看和帮帮忙!

7
epoh 发表于 2011-6-12 19:23:30
cnpkf=function(x,lsl,usl){
x50=quantile(x,0.5)
x99.5=quantile(x,0.995)
x0.5=quantile(x,0.005)
cnpl=(x50-lsl)/(x50-x0.5)
cnpu=(usl-x50)/(x99.5-x50)
cnpk=min(cnpl,cnpu)
return(cnpk)
}

cnpkt=function(lsl,usl){
z50=qnorm(0.5)
z99.5=qnorm(0.995)
z0.5=qnorm(0.005)
cnpl=(z50-lsl)/(z50-z0.5)
cnpu=(usl-z50)/(z99.5-z50)
true.cnpk=min(cnpl,cnpu)
return(true.cnpk)
}

#############
n=500
lsl=-2.7822
usl= 2.7822
b=1000
set.seed(123)  
x=rnorm(n,0,1)
cnpk=cnpkt(lsl,usl)
cnpkstar=matrix(0,b,1)
cnpks=matrix(0,b,1)
cnpkhat=cnpkf(x,lsl,usl)    # 1.15713
cnpkhat
for(i in 1:b)
{
xstar=sample(x,n,replace=T)
cnpkstar=cnpkf(xstar,lsl,usl)
}
cnpks=sort(cnpkstar)
se=sd(cnpkstar)     
# standard bootstrap------------------------
BS.CL=cnpkhat-1.96*(se)    # 1.010139
BS.CL
BS.CU=cnpkhat+1.96*(se)    # 1.304122
BS.CU
width1=BS.CU-BS.CL         # 0.2939837   文献 0.2935
width1  
# percentile bootstrap----------------------
#BSP.CL=cnpks[as.integer(b*.05)]
BSP.CL=cnpks[as.integer(b*.025)]  #0.9550955
BSP.CL
#BSP.CU=cnpks[as.integer(b*.95)]
BSP.CU=cnpks[as.integer(b*.975)]  #1.254852
BSP.CU
width2=BSP.CU-BSP.CL              #0.2997566   文献 0.297
width2

###### coverage probabilities
#####Standard
mean(cnpkstar>=BS.CL & cnpkstar<=BS.CU)  #0.928  文献 89.6%

#####Percentile
mean(cnpkstar>=BSP.CL & cnpkstar<=BSP.CU) #0.951  文献 93.3%


#####
MSVAR
   OX_MSVAR.rar (277.23 KB)
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 1 + 1 + 1 我很赞同

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

8
zhangtao 发表于 2011-6-12 22:17:00
非常感谢epoh大师!
数学好就是要天天学

9
zhiwu123 发表于 2012-12-16 14:32:19
谢谢epoh老师

10
wendy_chung 发表于 2012-12-17 10:28:42
感谢epoh老师

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

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