楼主: chasedreamtrue
2471 9

能不能帮忙看一下code 哪里有问题,run不出结果来 [推广有奖]

  • 0关注
  • 0粉丝

本科生

78%

还不是VIP/贵宾

-

威望
0
论坛币
123 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
781 点
帖子
82
精华
0
在线时间
12 小时
注册时间
2007-7-30
最后登录
2010-10-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
title ’Choice of Chocolate Candies’;
data chocs;
input Subj c Dark Soft Nuts @@;
Set = 1;
datalines;
1 2 0 0 0 1 2 0 0 1 1 2 0 1 0 1 2 0 1 1
1 1 1 0 0 1 2 1 0 1 1 2 1 1 0 1 2 1 1 1
2 2 0 0 0 2 2 0 0 1 2 2 0 1 0 2 2 0 1 1
2 2 1 0 0 2 1 1 0 1 2 2 1 1 0 2 2 1 1 1
3 2 0 0 0 3 2 0 0 1 3 2 0 1 0 3 2 0 1 1
3 2 1 0 0 3 2 1 0 1 3 1 1 1 0 3 2 1 1 1
4 2 0 0 0 4 2 0 0 1 4 2 0 1 0 4 2 0 1 1
4 1 1 0 0 4 2 1 0 1 4 2 1 1 0 4 2 1 1 1
5 2 0 0 0 5 1 0 0 1 5 2 0 1 0 5 2 0 1 1
5 2 1 0 0 5 2 1 0 1 5 2 1 1 0 5 2 1 1 1
6 2 0 0 0 6 2 0 0 1 6 2 0 1 0 6 2 0 1 1
6 2 1 0 0 6 1 1 0 1 6 2 1 1 0 6 2 1 1 1
7 2 0 0 0 7 1 0 0 1 7 2 0 1 0 7 2 0 1 1
7 2 1 0 0 7 2 1 0 1 7 2 1 1 0 7 2 1 1 1
8 2 0 0 0 8 2 0 0 1 8 2 0 1 0 8 2 0 1 1
8 2 1 0 0 8 1 1 0 1 8 2 1 1 0 8 2 1 1 1
9 2 0 0 0 9 2 0 0 1 9 2 0 1 0 9 2 0 1 1
9 2 1 0 0 9 1 1 0 1 9 2 1 1 0 9 2 1 1 1
10 2 0 0 0 10 2 0 0 1 10 2 0 1 0 10 2 0 1 1
10 2 1 0 0 10 1 1 0 1 10 2 1 1 0 10 2 1 1 1
;
proc print data=chocs noobs;
where subj <= 2;
var subj set c dark soft nuts;
run;
* Alternative Form of Data Entry;
data combos; /* Read the design matrix. */
input Dark Soft Nuts;
datalines;
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
;
data chocs; /* Create the data set. */
input Choice @@; drop choice; /* Read the chosen combo num. */
Subj = _n_; Set = 1; /* Store subj, choice set num. */
do i = 1 to 8; /* Loop over alternatives. */
c = 2 - (i eq choice); /* Designate chosen alt. */
set combos point=i; /* Read design matrix. */
output; /* Output the results. */
end;
datalines;
5 6 7 5 2 6 2 6 6 6
;
proc phreg data=chocs outest=betas;
strata subj set;
model c*c(2) = dark soft nuts / ties=breslow;
label dark = ’Dark Chocolate’ soft = ’Soft Center’
nuts = ’With Nuts’;
run;
data chocs2;
set chocs;
Milk = 1 - dark; Chewy = 1 - Soft; NoNuts = 1 - nuts;
label dark = ’Dark Chocolate’ milk = ’Milk Chocolate’
soft = ’Soft Center’ chewy = ’Chewy Center’
nuts = ’With Nuts’ nonuts = ’No Nuts’;
run;
proc phreg data=chocs2;
strata subj set;
model c*c(2) = dark milk soft chewy nuts nonuts / ties=breslow;
run;
* Estimate the probability that each alternative will be chosen; (在这之前的应该问题不是很大,就是在求probability中出不来结果)
data p;
retain sum 0;
set combos end=eof;
* On the first pass through the DATA step (_n_ is the pass
number), get the regression coefficients in B1-B3.
Note that they are automatically retained so that they
can be used in all passes through the DATA step.;
if _n_ = 1 then
set betas(rename=(dark=b1 soft=b2 nuts=b3));
keep dark soft nuts p;
array x[3] dark soft nuts;
array b[3] b1-b3;
* For each combination, create x * b;
p = 0;
do j = 1 to 3;
p = p + x[j] * b[j];
end;
* Exponentiate x * b and sum them up;
p = exp(p);
sum = sum + p;
* Output sum exp(x * b) in the macro variable ’&sum’;
if eof then call symput(’sum’,put(sum,best12.));
run;
proc format;
value df 1 = ’Dark’ 0 = ’Milk’;
value sf 1 = ’Soft’ 0 = ’Chewy’;
value nf 1 = ’Nuts’ 0 = ’No Nuts’;
run;
* Divide each exp(x * b) by sum exp(x * b);
data p;
set p;
p = p / (&sum);
format dark df. soft sf. nuts nf.;
run;
proc sort;
by descending p;
run;
proc print;
run;

红字的部分是有问题的部分,怎样修改呢? 谢谢

[此贴子已经被作者于2008-12-4 14:05:30编辑过]

二维码

扫码加我 拉你入群

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

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

关键词:code ODE COD Run 哪里有 结果 帮忙 code Run

沙发
chasedreamtrue 发表于 2008-12-4 14:07:00 |只看作者 |坛友微信交流群
p = p / (∑); 应该是p=p/(&sum)      &sum贴不出来

[此贴子已经被作者于2008-12-4 14:08:59编辑过]

使用道具

藤椅
sushe1527 发表于 2008-12-4 14:44:00 |只看作者 |坛友微信交流群
楼主发完题目就跑了 这种春天播种秋天收获的模式需要改进

使用道具

板凳
chasedreamtrue 发表于 2008-12-4 22:50:00 |只看作者 |坛友微信交流群
以下是引用sushe1527在2008-12-4 14:44:00的发言:
楼主发完题目就跑了 这种春天播种秋天收获的模式需要改进
那应该是哪种模式呢?

使用道具

报纸
sushe1527 发表于 2008-12-4 22:51:00 |只看作者 |坛友微信交流群
以下是引用chasedreamtrue在2008-12-4 22:50:00的发言:

哈哈 你来得满早 

[此贴子已经被作者于2008-12-5 1:13:17编辑过]

使用道具

地板
chasedreamtrue 发表于 2008-12-4 22:58:00 |只看作者 |坛友微信交流群
以下是引用sushe1527在2008-12-4 22:51:00的发言:

哈哈 你来得满早


起个大早看到有人回帖以为问题解决了呢,原来不沾边

使用道具

7
sushe1527 发表于 2008-12-4 23:48:00 |只看作者 |坛友微信交流群
以下是引用chasedreamtrue在2008-12-4 22:58:00的发言:

有个 label 标错了 sum没有赋值  也迷糊了 是不是这个啊?

  Dark Soft Nuts p
1 1 0 1 0.5039995573
2 1 0 0 0.2159998103
3 0 0 1 0.1259998894
4 1 1 1 0.0560004427
5 0 0 0 0.0539999526
6 1 1 0 0.0240001897
7 0 1 1 0.0140001107
8 0 1 0 0.0060000474

使用道具

8
chasedreamtrue 发表于 2008-12-5 01:09:00 |只看作者 |坛友微信交流群
以下是引用sushe1527在2008-12-4 23:48:00的发言:

有个 label 标错了 sum没有赋值  也迷糊了 是不是这个啊?

  Dark Soft Nuts p
1 1 0 1 0.5039995573
2 1 0 0 0.2159998103
3 0 0 1 0.1259998894
4 1 1 1 0.0560004427
5 0 0 0 0.0539999526
6 1 1 0 0.0240001897
7 0 1 1 0.0140001107
8 0 1 0 0.0060000474

是呀,但是怎莫改那个code,能过run出这个结果呢?

使用道具

9
sushe1527 发表于 2008-12-5 01:47:00 |只看作者 |坛友微信交流群

有个sum = sum + p,先求P ,然后sum 试试  

别的一些格式错误不致命  呼呼去了 我这可不是大早

使用道具

10
chasedreamtrue 发表于 2008-12-5 03:34:00 |只看作者 |坛友微信交流群
以下是引用sushe1527在2008-12-5 1:47:00的发言:

有个sum = sum + p,先求P ,然后sum 试试  

别的一些格式错误不致命  呼呼去了 我这可不是大早


 code 是p = p / (&sum) ,但是一贴出来就是变了,在SAS里总是说这个有问题(&与sum相乘,如果两个放到一起就成了∑这个符号了,其实code是&与sum相乘,不知道说清楚没有,反正这个贴出来的与我发的不一样

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 17:50