SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1313|回复: 8
打印 上一主题 下一主题

如何设置Dummy变数的Code?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-12-1 19:22:56 | 只看该作者

如何设置Dummy变数的Code?

比如,要设一个dummy变数
中位数以上设置为1,中位数以下的设为0.
本来以为是求得中位数分类就可以,
但是教授又说得分成十个组,
前五组为小于中位数的0, 后五组为大于中位数的1.
这种情况下,SAS的Code应该如何弄?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-12-1 22:48:07 | 只看该作者

Re: 如何设置Dummy变数的Code?

搞不清楚你问的是什么。
京剧
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-12-5 22:30:21 | 只看该作者

Re: 如何设置Dummy变数的Code?

连续性变量先划分为等级变量,在设置dummy变量,是要与中位数进行比较么?
具体设置还需要进一步的描述........
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-12-9 16:08:17 | 只看该作者

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 要怎么弄
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-12-9 16:30:03 | 只看该作者

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 要怎么编?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2011-12-9 21:17:43 | 只看该作者

Re: 如何设置Dummy变数的Code?

[quote:m56pjxky]先求中位数,把数值带入到IF-THEN,也可以,
但是这样的code ,就不怎么nice,[/quote:m56pjxky]
为什么不好呢?京剧
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2011-12-11 20:21:06 | 只看该作者

Re: 如何设置Dummy变数的Code?

[quote="jingju11":1w1ea4jo][quote:1w1ea4jo]先求中位数,把数值带入到IF-THEN,也可以,
但是这样的code ,就不怎么nice,[/quote:1w1ea4jo]
为什么不好呢?京剧[/quote:1w1ea4jo]

。。。。。。
教授说不咋地,换一个,
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2011-12-11 21:57:52 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2011-12-11 22:02:56 | 只看该作者

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还要改。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-8 01:48 , Processed in 0.154792 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表