sas 多组比较怎么计算riskgit difff

sas讲义第9章_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
151页免费12页免费58页免费31页免费14页免费5页免费30页7下载券31页7下载券12页7下载券332页7下载券
sas讲义第9章|单​变​量​检​验​问​题
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:345.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢482,381 一月 独立访问用户
您目前处于:
微博热报:JSON Markup Language、SAS和R区别
微博热报:JSON Markup Language、SAS和R区别
相关厂商内容
相关赞助商
全球软件开发大会,4月23-25日,北京,!
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
Ralph Winzinger
赞助商链接
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7查看: 1278|回复: 2
阅读权限22威望0 级论坛币2 个学术水平0 点热心指数5 点信用等级0 点经验772 点帖子31精华0在线时间201 小时注册时间最后登录
积分 250, 距离下一级还需 10 积分
权限: 自定义头衔
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡下一级可获得
权限: 签名中使用图片
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
针对不同时期得到的两份统计报表,需要进行差分比较。如:报表一:------------------------ADCODE,ID,COUNT,5,17,3,107------------------------报表二:------------------------AD_CODE,ID,TYPE,CNT,,,,------------------------&&&& 需要能够通过配置比较报表差分。如需要比较同一ADCODE下的所有差分(其中报表一中为ADCODE,在报表二中为AD_CODE),也可能需要比较同一ADCODE及ID下的差分。其中COUNT(报表二中为CNT)为统计值。
载入中......
阅读权限24威望0 级论坛币339 个学术水平0 点热心指数1 点信用等级0 点经验6018 点帖子135精华0在线时间192 小时注册时间最后登录
积分 351, 距离下一级还需 99 积分
权限: 自定义头衔, 签名中使用图片
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡下一级可获得
道具: 抢沙发
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
& select adcode, ad_code, t1.ID, t2.ID,&&&&& count-CNT as diff&& from table1 as t1&&&&&&&&table2 as t2&& where t1.adcode=t2.ad_code &&&&&&&&& and t1.ID=t2.ID; [此贴子已经被作者于 11:08:52编辑过]
阅读权限22威望0 级论坛币2 个学术水平0 点热心指数5 点信用等级0 点经验772 点帖子31精华0在线时间201 小时注册时间最后登录
积分 250, 距离下一级还需 10 积分
权限: 自定义头衔
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡下一级可获得
权限: 签名中使用图片
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
2楼可能没有注意到,做差分前并不知道变量名及有多少分类变量用来做差分。
论坛好贴推荐16:52&&&&&&&&
11:41&&&&&&&&查看: 433|回复: 3
阅读权限16威望0 级论坛币1755 个学术水平0 点热心指数0 点信用等级0 点经验58 点帖子8精华0在线时间24 小时注册时间最后登录
积分 38, 距离下一级还需 7 积分
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡下一级可获得
道具: 显身卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
以下程序在运行的时候总是出现:
NOTE: IML Ready
ERROR: (execution) Invalid subscript or subscript out of range.
operation : [ at line 14952 column 114
operands&&: Z_VALUE1, J, *LIT1067
Z_VALUE1& && &1 row& && & 3 cols& & (numeric)
1.1337026& &1.8986
J& && &1 row& && & 1 col& &&&(numeric)
& && && &2
*LIT1067& && &1 row& && & 1 col& &&&(numeric)
& && && &1
statement : ASSIGN at line 14952 column 61
ERROR: (execution) Matrices do not conform to the operation.
有高手帮忙看看啦!
%macro stratCI(data=, treatment=, strata=, response=, level=);
%if %sysfunc(exist(&data))=0 %then
%put & ERROR: Input dataset not specified&; %
%if %length(&treatment) = 0 %then
%put & ERROR: Treatment group must be specified&;
%if %length(&strata) = 0 %then
%put & ERROR: Strata must be specified&;
%if %length(&response) = 0 %then
% %put & ERROR: Response must be specified&;
create table temp
&treatment as treatment,
&strata as strata,
&response as response
%let alpha= 1-&level/2;
proc sort data=
proc freq data=
tables treatment/riskdiff nopercent nocol norow out=freq_
proc freq data=
tables treatment*response/riskdiff nopercent nocol out=
ods output RiskDiffCol2 =
proc transpose data=freq_strata out=freq_strata1 (drop=_NAME_ _LABEL_) prefix=n_
proc transpose data=riskstrata out=riskstrata1 (drop=_NAME_) prefix=
where Row in ('第 1 行','第 2 行');
data riskstrata2;
set riskstrata(rename=(risk=r_diff));
if Row = '差值';
keep r_diff ASE
merge freq_strata1 riskstrata1 riskstrata2;
*STRATA-ADJUSTED RISK DIFFERENCE;
data ready1;
CMH_part = (n_trt1*n_trt2)/(n_trt1+n_trt2);&&/*Cochran-Mantel-Haenszel weight*/
invar_part =1/ASE**2;& && && && && && & /*inverse of variance weight*/
min_part1= (n_trt1+n_trt2);
min_part2= min_part1*r_
min_part3= invar_part*r_
create table ready2 as select strata,
sum(CMH_part) as CMH_sum,
sum(invar_part) as invar_sum,
sum(min_part1) as min_sum1,
sum(min_part2) as min_sum2,
sum(min_part3) as min_sum3
from ready1;
data ready3;
merge ready1 ready2;
min_alpha = r_diff*invar_sum - min_sum3;
min_beta = invar_part * (1 + min_alpha*min_sum2/min_sum1);
min_part4=r_diff*min_
min_part5 = r_diff*min_alpha*invar_
create table ready3_1 as select *,
sum(min_part4) as min_sum4,
sum(min_part5) as min_sum5 from ready3;
set ready3_1;
CMH_weight = CMH_part/CMH_
INVAR_weight = invar_part/invar_
MIN_weight = min_beta/invar_sum-(min_alpha*invar_part/(invar_sum + min_sum5))*(min_sum4/invar_sum);
/* all weights are calculated. */
read all var {CMH_weight invar_weight min_weight}
n=n_trt1||n_trt2;
n_strata=nrow(n); /*表示组别的数*/
totaln=sum(n);
p= prop1||prop2;
/* unadjusted CI :Pool */
p1_1 = n_trt1 # prop1;
p2_1 = n_trt2 # prop2;
n1=n_trt1[+,];
n2=n_trt2[+,];
p1=p1_1[+,]/n1;
p2=p2_1[+,]/n2;
Crude_Lower = (p1-p2) - probit(&alpha)# sqrt(p1 # (1-p1)/n1 + p2 # (1-p2)/n2);
Crude_Upper = (p1-p2) + probit(&alpha)# sqrt(p1 # (1-p1)/n1 + p2 # (1-p2)/n2);
/* start to calculate Wald CI */
adj_rdiff= w # r_
wald_part1= adj_rdiff[+,];
wald_var = 1/invar_
sq_w = w ## 2;
adj_var = sq_w # wald_
wald_part2 = adj_var[+,];
Wald_L = wald_part1 - probit(&alpha)*sqrt(wald_part2);
Wald_U = wald_part1 + probit(&alpha) *sqrt(wald_part2);
Wald_Lower=Wald_L`;
Wald_Upper=Wald_U`;
/* end of Wald CI */
* 1. calculate z_/*表示两组,三个分层因素*/
/*partz_a1 = J(n_strata,3,1);
partz_a2 = J(n_strata,3,1);
partz_b1 = J(n_strata,3,1);
partz_b2 = J(n_strata,3,1); */
partz_a1 = J(n_strata,3,1); /*表示两组,三个分层因素*/
partz_a2 = J(n_strata,3,1);
partz_b1 = J(n_strata,3,1);
partz_b2 = J(n_strata,3,1);
do i=1 to n_
&&do j=1 to 3;
& &partz_a1[i,j] = (sq_w[i,j]/n_trt1[i,1]) # (p[i,1] # (1-p[i,1]));
& &partz_a2[i,j] = (sq_w[i,j]/n_trt2[i,1]) # (p[i,2] # (1-p[i,2]));
& &partz_b1[i,j] = w[i,j] # sqrt(p[i,1] # (1-p[i,1])/n_trt1[i,1]);
& &partz_b2[i,j] = w[i,j] # sqrt(p[i,2] # (1-p[i,2])/n_trt2[i,1]);
z_value1=(probit(&alpha)*sqrt(partz_a1[+,])/partz_b1[+,]);
z_value2=(probit(&alpha)*sqrt(partz_a2[+,])/partz_b2[+,]);
PRINT z_value1 z_value2;
* 2. calculate L1 L2 U1 U2 based on stratified Wilson CI;
/*wilson_part1a= J(n_strata,3,1);
wilson_part1b= J(n_strata,3,1);
wilson_part2a= J(n_strata,3,1);
wilson_part2b= J(n_strata,3,1);
wilson_part1a= J(n_strata,3,1);
wilson_part1b= J(n_strata,3,1);
wilson_part2a= J(n_strata,3,1);
wilson_part2b= J(n_strata,3,1);
do i=1 to n_
& &do j=1 to 3;& & /*表示有多少分层*/
& &&&wilson_part1a[i,j]=(n[i,1] # p[i,1] + 0.5 # (Z_value1[j,1] ## 2))/(n[i,1] + Z_value1[j,1] ## 2);
& &&&wilson_part1b[i,j]=((n[i,1] # Z_value1[j,1])/(n[i,1]+Z_value1[j,1]##2)) # (sqrt(4 # n[i,1] # p[i,1] # (1-p[i,1]) + Z_value1[j,1] ##2)/(2 # n[i,1]) );
& &&&wilson_part2a[i,j]=(n[i,2] # p[i,2] + 0.5 # (Z_value2[j,1] ## 2))/(n[i,2] + Z_value2[j,1] ## 2);
& &&&wilson_part2b[i,j]=((n[i,2] # Z_value2[j,1])/(n[i,2]+Z_value2[j,1]##2)) # (sqrt(4 # n[i,2] # p[i,2] # (1-p[i,2]) + Z_value2[j,1] ##2)/(2 # n[i,2]) );
wilson_L1 = w #( wilson_part1a - wilson_part1b); wilson_U1 = w #( wilson_part1a + wilson_part1b);
wilson_L2 = w #( wilson_part2a - wilson_part2b); wilson_U2 = w #( wilson_part2a + wilson_part2b);
newcombe_L1 = wilson_L1[+,];
newcombe_U1 = wilson_U1[+,];
newcombe_L2 =wilson_L2[+,];
newcombe_U2 =wilson_U2[+,];
* 3. Calculate lambda1 and 2;
lam1= sq_w/n_trt1;
lam2 = sq_w/n_trt2;
lambda1 = lam1[+,];
lambda2 = lam2[+,];
* 4. calculate lower/upper limit for newcombe CI;
NEWCOMBE_L = wald_part1 - probit(&alpha)#sqrt(lambda1 # newcombe_L1 #(1- newcombe_L1)+lambda2#newcombe_U2#(1-newcombe_U2));
NEWCOMBE_U = wald_part1 + probit(&alpha)#sqrt(lambda2 # newcombe_L2 #(1-newcombe_L2)+lambda1#newcombe_U1#(1-newcombe_U1));
Newcombe_Lower=newcombe_L;
Newcombe_Upper=newcombe_U;
/* end of Newcombe CI */
Stratum_nm = {'Strata','Sample size in Trt1','Sample size in Trt2','Proportion in Trt1', 'Proportion in Trt2','Proportion difference (Trt1 - Trt2)','CMH weight', 'Inverse of Variance weight', 'Minimum risk weight' };
Adj_nm = {&Adjusted proportion difference&, &Wald CI (lower)&,&Wald CI (upper)&, &Newcombe CI (lower)&,&Newcombe CI (upper)&} ;
Weights= { &CMH&, &Inverse of Variance&, &Minimum risk&};
CI = {&Crude CI (lower)&,&Crude CI (upper)&};
Strata_sum = (1:n_strata)`||n_trt1|| n_trt2 || prop1 || prop2 || r_diff || CMH_weight || invar_weight || min_
Adj_sum = wald_part1`||wald_Lower || Wald_Upper ||newcombe_Lower || newcombe_U Crude_CI = crude_Lower` || crude_Upper`;
put @35 &Strata-adjusted confidence interval&//;
put @35 &Summary for dataset &/; put @30 &Sample size & @75 totaln / @30 &Number of strata & @75 n_
print crude_CI[colname=CI label= &Unadjusted summary& format=6.4]; print Adj_sum [rowname=weights colname=Adj_nm label= &Adjusted summary& format=6.4];
%mend stratCI;
DATA TEMP;
INPUT ID treatment strata response @@;
%stratCI(data=TEMP, treatment=treatment, strata=strata, response=response, level=0.05);
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
阅读权限10威望0 级论坛币1 个学术水平0 点热心指数0 点信用等级0 点经验451 点帖子127精华0在线时间0 小时注册时间最后登录
积分 127, 距离下一级还需 18 积分
权限: 自定义头衔
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡下一级可获得
道具: 匿名卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
写得真好& && && && && && && && && && && && && && &&&& && && && && && && && & & &
& && && && && && && && && && && && && &
& && && && && && && && && &&&& && && && && && && && &
& && && && && && && && && && && && && && && && && &&&
& && && &&&& && && && && &&&& && &&&& && && &
& && && && && && && & & && && && && && && && && && & & && && && &
& && && && && && && && && && && && && && && && && && && && && && && && && && && &
阅读权限18威望0 级论坛币23 个学术水平0 点热心指数0 点信用等级0 点经验367 点帖子32精华0在线时间14 小时注册时间最后登录
积分 54, 距离下一级还需 31 积分
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡下一级可获得
权限: 自定义头衔
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
开心签到天数: 3 天连续签到: 1 天[LV.2]偶尔看看I
……麻烦能不能只把重点和问题列出来,就发一段这么长的代码,说真的,我没耐心看完
阅读权限16威望0 级论坛币1755 个学术水平0 点热心指数0 点信用等级0 点经验58 点帖子8精华0在线时间24 小时注册时间最后登录
积分 38, 距离下一级还需 7 积分
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡下一级可获得
道具: 显身卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
这个程序是想计算,校正了分层因素 strata 后,两组之间的率差以及其95%CI,但在进行PROC IML 的时候,为啥总出现 Invalid subscript or subscript out of range.
麻烦重点看这部分类容:
:* 1. calculate z_/*表示两组,三个分层因素*/
partz_a1 = J(n_strata,3,1); /*表示两组,三个分层因素*/
partz_a2 = J(n_strata,3,1);
partz_b1 = J(n_strata,3,1);
partz_b2 = J(n_strata,3,1);
do i=1 to n_
&&do j=1 to 3;
& &partz_a1[i,j] = (sq_w[i,j]/n_trt1[i,1]) # (p[i,1] # (1-p[i,1]));
& &partz_a2[i,j] = (sq_w[i,j]/n_trt2[i,1]) # (p[i,2] # (1-p[i,2]));
& &partz_b1[i,j] = w[i,j] # sqrt(p[i,1] # (1-p[i,1])/n_trt1[i,1]);
& &partz_b2[i,j] = w[i,j] # sqrt(p[i,2] # (1-p[i,2])/n_trt2[i,1]);
z_value1=(probit(&alpha)*sqrt(partz_a1[+,])/partz_b1[+,]);
z_value2=(probit(&alpha)*sqrt(partz_a2[+,])/partz_b2[+,]);
PRINT z_value1 z_value2;
论坛好贴推荐

我要回帖

更多关于 sas credit risk 的文章

 

随机推荐