楼主: fantastli
2451 5

[问答] 新手求助,一个guass程序运行时提示的错误 [推广有奖]

  • 0关注
  • 0粉丝

高中生

7%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
196 点
帖子
18
精华
0
在线时间
12 小时
注册时间
2010-1-7
最后登录
2011-5-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
不知道问题出在哪里,请帮忙看看

我的程序:
=======================================================================
OUTPUT FILE=homework8-1.out reset;
load d[2839,48]=KETEST2.txt;
proc LIKFUN(BETA);
local Hid,Brand,P1,P2,P3,P4,P5,P6,P7,C1,C2,C3,C4,C5,C6,C7,D1,D2,D3,D4,D5,D6,D7,F1,F2,F3,
F4,F5,F6,F7,Num,Dow,Eweek,Stid,Inc,Mem,Mhws,Mhe,Fhws,Fhe,Age1,Age2,Dol,Totit,Date,
Disp,Feat,Wknd,int1,int2,int3,int4,int5,int6,int7,pr,co,ds,fe,lik,logv,i,u1,u2,u3,
u4,u5,u6,u7,den,x0,llik,stderr,g,covar,trat,retcode;
closeall;

int1=beta[1,1]; int2=beta[2,1]; int3=beta[3,1];int4=beta[4,1]; int5=beta[5,1]; int6=beta[6,1]; int7=beta[7,1]; pr=beta[8,1];co=beta[9,1];ds=beta[10,1];fe=beta[11,1];
i=1; lik=0;
do while i le 2839;
p1=d[i,3];p2=d[i,4];p3=d[i,5];p4=d[i,6];p5=d[i,7];p6=d[i,8];p7=d[i,9];
c1=d[i,10];c2=d[i,11];c3=d[i,12];c4=d[i,13];c5=d[i,14];c6=d[i,15];c7=d[i,16];
d1=d[i,17];d2=d[i,18];d3=d[i,19];d4=d[i,20];d6=d[i,22];d7=d[i,23]; /*Brand 5 does not have display*/
f1=d[i,24];f2=d[i,25];f3=d[i,26];f4=d[i,27];f6=d[i,29];f7=d[i,30]; /*Brand 5 does not have feature ads*/
u1=exp(int1+pr*p1+co*c1+ds*d1+fe*f1);
u2=exp(int2+pr*p2+co*c2+ds*d2+fe*f2);
u3=exp(int3+pr*p3+co*c3+ds*d3+fe*f3);
u4=exp(int4+pr*p4+co*c4+ds*d4+fe*f4);
u5=exp(int5+pr*p5+co*c5);
u6=exp(int6+pr*p6+co*c6+ds*d6+fe*f6);
u7=exp(int7+pr*p7+co*c7+ds*d7+fe*f7);

den=u1+u2+u3+u4+u5+u6+u7;

if d[i,2]==11.000000; logv=u1/den;
elseif d[i,2]==12.000000; logv=u2/den;
elseif d[i,2]==13.000000; logv=u3/den;
elseif d[i,2]==21.000000; logv=u4/den;
elseif d[i,2]==22.000000; logv=u5/den;
elseif d[i,2]==31.000000; logv=u6/den;
elseif d[i,2]==41.000000; logv=u7/den;

lik=lik+LN(logv);
i=i+1;endo;

retp(-lik);
endp;

x0={1,1,1,1,1,1,1};
{beta, llik, g,retcode}=qnewton(&likfun,x0);
covar=invpd(hessp(&likfun,beta));
stderr=sqrt(diag(covar));
trat=beta./stderr;
output on;
"";
"standard logit";
"     beta     t stat     stderr";
beta~trat~stderr; "" ; "  likelihood";  llik;
output off;
closeall;

====================================================================

提示错误:
C:\Users\Rxxxx\Desktop\homework8-1(35) : error G1001 : 'ENDO' : Expected
ENDIF  
   PROC without ENDP G0278 : 'LIKFUN'
二维码

扫码加我 拉你入群

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

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

关键词:GUASS 新手求助 Likelihood Homework Standard 运行 程序 新手 提示 GUASS

沙发
xuehe 发表于 2011-4-20 20:08:31 |只看作者 |坛友微信交流群
DO WHILE 标量表达式;

………(语句组)

ENDO;



DO UNTIL 标量表达式;

………(语句组)

ENDO;

使用道具

藤椅
xuehe 发表于 2011-4-20 20:09:57 |只看作者 |坛友微信交流群

使用道具

板凳
fantastli 发表于 2011-4-20 21:49:52 |只看作者 |坛友微信交流群
改成 do until i=2839
但还是出现同样的错误提示

使用道具

报纸
fantastli 发表于 2011-4-20 21:55:05 |只看作者 |坛友微信交流群
查到原因了,少写了endif

使用道具

地板
zhangtao 发表于 2011-4-20 22:44:18 |只看作者 |坛友微信交流群
OUTPUT FILE=homework8-1.out reset;
load d[2839,48]=KETEST2.txt;
proc LIKFUN(BETA);
local Hid,Brand,P1,P2,P3,P4,P5,P6,P7,C1,C2,C3,C4,C5,C6,C7,D1,D2,D3,D4,D5,D6,D7,F1,F2,F3,
F4,F5,F6,F7,Num,Dow,Eweek,Stid,Inc,Mem,Mhws,Mhe,Fhws,Fhe,Age1,Age2,Dol,Totit,Date,
Disp,Feat,Wknd,int1,int2,int3,int4,int5,int6,int7,pr,co,ds,fe,lik,logv,i,u1,u2,u3,
u4,u5,u6,u7,den,x0,llik,stderr,g,covar,trat,retcode;
closeall;

int1=beta[1,1]; int2=beta[2,1]; int3=beta[3,1];int4=beta[4,1]; int5=beta[5,1]; int6=beta[6,1]; int7=beta[7,1]; pr=beta[8,1];co=beta[9,1];ds=beta[10,1];fe=beta[11,1];
i=1; lik=0;
do while i le 2839;
p1=d[i,3];p2=d[i,4];p3=d[i,5];p4=d[i,6];p5=d[i,7];p6=d[i,8];p7=d[i,9];
c1=d[i,10];c2=d[i,11];c3=d[i,12];c4=d[i,13];c5=d[i,14];c6=d[i,15];c7=d[i,16];
d1=d[i,17];d2=d[i,18];d3=d[i,19];d4=d[i,20];d6=d[i,22];d7=d[i,23]; /*Brand 5 does not have display*/
f1=d[i,24];f2=d[i,25];f3=d[i,26];f4=d[i,27];f6=d[i,29];f7=d[i,30]; /*Brand 5 does not have feature ads*/
u1=exp(int1+pr*p1+co*c1+ds*d1+fe*f1);
u2=exp(int2+pr*p2+co*c2+ds*d2+fe*f2);
u3=exp(int3+pr*p3+co*c3+ds*d3+fe*f3);
u4=exp(int4+pr*p4+co*c4+ds*d4+fe*f4);
u5=exp(int5+pr*p5+co*c5);
u6=exp(int6+pr*p6+co*c6+ds*d6+fe*f6);
u7=exp(int7+pr*p7+co*c7+ds*d7+fe*f7);

den=u1+u2+u3+u4+u5+u6+u7;

if d[i,2]==11.000000; logv=u1/den;
elseif d[i,2]==12.000000; logv=u2/den;
elseif d[i,2]==13.000000; logv=u3/den;
elseif d[i,2]==21.000000; logv=u4/den;
elseif d[i,2]==22.000000; logv=u5/den;
elseif d[i,2]==31.000000; logv=u6/den;
elseif d[i,2]==41.000000; logv=u7/den;

endif;

lik=lik+LN(logv);
i=i+1;endo;

retp(-lik);
endp;

x0={1,1,1,1,1,1,1};
{beta, llik, g,retcode}=qnewton(&likfun,x0);
covar=invpd(hessp(&likfun,beta));
stderr=sqrt(diag(covar));
trat=beta./stderr;
output on;
"";
"standard logit";
"     beta     t stat     stderr";
beta~trat~stderr; "" ; "  likelihood";  llik;
output off;
closeall;

endif是不是要写在lik=lik+LN(logv);这行之前?

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

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

GMT+8, 2024-5-8 03:35