SAS中文论坛

标题: 如何设置Dummy变数的Code? [打印本页]

作者: shiyiming    时间: 2011-12-1 19:22
标题: 如何设置Dummy变数的Code?
比如,要设一个dummy变数
中位数以上设置为1,中位数以下的设为0.
本来以为是求得中位数分类就可以,
但是教授又说得分成十个组,
前五组为小于中位数的0, 后五组为大于中位数的1.
这种情况下,SAS的Code应该如何弄?
作者: shiyiming    时间: 2011-12-1 22:48
标题: Re: 如何设置Dummy变数的Code?
搞不清楚你问的是什么。
京剧
作者: shiyiming    时间: 2011-12-5 22:30
标题: Re: 如何设置Dummy变数的Code?
连续性变量先划分为等级变量,在设置dummy变量,是要与中位数进行比较么?
具体设置还需要进一步的描述........
作者: shiyiming    时间: 2011-12-9 16:08
标题: Re: 如何设置Dummy变数的Code?
[quote="jingju11":11nwuo9c]搞不清楚你问的是什么。
京剧[/quote:11nwuo9c]


model1: Y=b0+ b1*x1+b2*x2+b3*X3+....(后面还有几个变量)

model2: Y=b0+ b1*x1+b2*x2+b3*dummy+....(后面还有几个变量)

dummy: 设成1/0的dummy变数 (x3>x3的中位数,设成1; x3<x3的中位数,设成0)
这里的x3是回归分析求得的自相关系数。

问的是设这个dummy变数的code,
先求中位数,把数值带入到IF-THEN,也可以,
但是这样的code ,就不怎么nice,

所以要“把x3的数值由小到大,变成10个分组,前5个分组,赋值0;后5个分组,赋值0;”
我想问的是这个code 要怎么弄
作者: shiyiming    时间: 2011-12-9 16:30
标题: Re: 如何设置Dummy变数的Code?
[quote="hwb5258289":n3fw01wg]连续性变量先划分为等级变量,在设置dummy变量,是要与中位数进行比较么?
具体设置还需要进一步的描述........[/quote:n3fw01wg]

就是这个意思,
DATA Q01; SET M01;
IF bv <0 THEN bv_d=bv; ELSE  bv_d=0;
IF eps <0  THEN eps_d=eps; ELSE  eps_d=0;
IF pegbv >=0.2482317  THEN pegbv_d=1; ELSE  pegbv_d=0;
IF fgw >= -0.3985064  THEN fgw_d=1; ELSE  fgw_d=0;
bv_pegbv_d=bv*pegbv_d;
eps_pegbv_d=eps*pegbv_d;
PROC SORT DATA=Q01; BY  year kis; RUN;

这是code 一部分,中间部分比如0.2482317是pegbv的中位数,

想把pegbv顺序排列,再由小到大,分成10个小组,前五个组,赋值0;后五组,赋值1;
这个code 要怎么编?
作者: shiyiming    时间: 2011-12-9 21:17
标题: Re: 如何设置Dummy变数的Code?
[quote:m56pjxky]先求中位数,把数值带入到IF-THEN,也可以,
但是这样的code ,就不怎么nice,[/quote:m56pjxky]
为什么不好呢?京剧
作者: shiyiming    时间: 2011-12-11 20:21
标题: Re: 如何设置Dummy变数的Code?
[quote="jingju11":1w1ea4jo][quote:1w1ea4jo]先求中位数,把数值带入到IF-THEN,也可以,
但是这样的code ,就不怎么nice,[/quote:1w1ea4jo]
为什么不好呢?京剧[/quote:1w1ea4jo]

。。。。。。
教授说不咋地,换一个,
作者: shiyiming    时间: 2011-12-11 21:57
标题: Re: 如何设置Dummy变数的Code?
PROC SORT DATA=Q01; BY pegbv; RUN;
proc rank data=q01 out=q02 groups=10; var pegbv; ranks pegbvrank; run;
data q02; set q02; if pegbvrank<=4 then dummy=0; else dummy=1; run;
作者: shiyiming    时间: 2011-12-11 22:02
标题: Re: 如何设置Dummy变数的Code?
[quote="lian0314":2hx7mqjb][quote="jingju11":2hx7mqjb][quote:2hx7mqjb]先求中位数,把数值带入到IF-THEN,也可以,
但是这样的code ,就不怎么nice,[/quote:2hx7mqjb]
为什么不好呢?京剧[/quote:2hx7mqjb]

。。。。。。
教授说不咋地,换一个,[/quote:2hx7mqjb]

老师没告诉你理由么?学习要多问为什么,hoho。这是因为有可能多个数等于中位数,那么你只是用<=中位数的话,两个sub-sample大小就有可能会明显不同。proc rank分组的话就是按照percentile(100组)或者十分位组。第2个理由是你的code得先自己去查看一下中位数是多少,然后手动输入,万一你的sample变一下,岂不是code还要改。




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2