SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 739|回复: 4
打印 上一主题 下一主题

做最大似然估计时候报错,求助。

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-3-23 01:13:40 | 只看该作者

做最大似然估计时候报错,求助。

大家好,本人刚接触sas没有多久,现在遇到一个问题,想要实现一个最大似然估计,代码如下:
data A;
input pvment$ thickness ESAL rain @@;
datalines;
DGAC        48.96170255        544810        144.53
DGAC        52.62549946        236000        261.07
DGAC        54.35712505        310000        212.7
DGAC        54.41309566        284780        492.96
DGAC        36.66229293        3481320        157.99
DGAC        55.07167785        136250        531.11
DGAC        54.14445697        122000        513.33
OGAC        41.52548462        236000        261.07
OGAC        44.31461605        236000        261.07
OGAC        42.19031228        236000        261.07
OGAC        45.38567824        236000        261.07
OGAC        27.66625307        1662940        415.4
OGAC        33.64522296        210865        535.49
OGAC        26.56858947        89000        1187.11
OGAC        30.89045698        89000        1187.11
other         52.42478719        236000        261.07
other              50.30363374        236000        261.07
other              49.21335293        236000        261.07
other         50.01384679        236000        261.07
other               48.2134075        81070        21.3
other              44.08889863        81070        21.3
other              47.08160511        89000        2105.24
other              52.72141224        310000        212.7
other         57.51522172        310000        212.7
RAC           30.5341555        908520        833.66
RAC         23.26654254        243445        1425.6
RAC         31.62391067        91000        1183.35
RAC         27.16423427        286885        1679.37
RAC         22.78564813        243445        1425.6
RAC         33.05433851        91000        1183.35
RAC         24.05508273        286885        1679.37
;
[color=#BF0000:2owyv1d9](仅列出部分数据)[/color:2owyv1d9]
proc nlp data=A;
max f;
parms a1=.1, b1=.1, c1=.1, d1=.1,a2=.1, b2=.1, c2=.1, d2=.1,a3=.1, b3=.1, c3=.1, d3=.1,a4=.1, b4=.1, c4=.1, d4=.1;
if pvment eq 'dgac' then f1=a1+b1*thickness+c1*ESAL+d1*rain;
if pvment eq 'ogac' then f2=a2+b2*thickness+c2*ESAL+d2*rain;
if pvment eq 'other' then f3=a3+b3*thickness+c3*ESAL+d3*rain;
if pvment eq 'dgac' then f4=a4+b4*thickness+c4*ESAL+d4*rain;
f=exp(f1)/(exp(f1)+exp(f2)+exp(f3)+exp(f4));
run;

运行的时候总是提示说:[color=#FF0000:2owyv1d9]ERROR: There are references to missing variables when the program code is executed for _OBS_= 1[/color:2owyv1d9]
在网上查了好久,也不知道怎么修改。希望能有人帮助,欢迎任何建议。本人无以为报,现在国外,可能查找资料比较方便,也只能提供这点感谢了~~。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-3-23 01:36:20 | 只看该作者

Re: 做最大似然估计时候报错,求助。

sorry 最后一个if语句应该是 if pvment eq 'rac' then f4=a4+b4*thickness+c4*ESAL+d4*rain;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-3-23 01:42:08 | 只看该作者

Re: 做最大似然估计时候报错,求助。

sas是区分大小写的。

pvment eq 'dgac' 和pvment eq 'DGAC' 是不同的
京剧
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-3-23 03:30:15 | 只看该作者

Re: 做最大似然估计时候报错,求助。

谢谢楼上的回复,不过这好像不是主要问题,即使修改后还是提示相同的错误。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-3-23 04:09:44 | 只看该作者

Re: 做最大似然估计时候报错,求助。

我的问题解决了,发现时exp(fi)i=RAC OGDC other  OGAC, 数值过大,导致错误,可以对数据进行预处理,如将ESAL缩小100000,相应的所得到的系数也缩小100000倍,不知道这样子处理是否合适?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-11 11:57 , Processed in 0.068284 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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