楼主: ihsihs
1974 7

[原创博文] 程序出错求教 [推广有奖]

  • 1关注
  • 1粉丝

博士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
612 个
通用积分
7.5219
学术水平
6 点
热心指数
6 点
信用等级
1 点
经验
2918 点
帖子
127
精华
0
在线时间
306 小时
注册时间
2008-6-18
最后登录
2024-5-16

楼主
ihsihs 发表于 2011-10-22 23:12:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
proc import out=xt49 /*使用import过程导入数据并输出到数据集xt49*/
datafile="d:\xt49.xls"
dbms=excel2000 replace;
getnames=yes; /*首行为变量名*/
run;
proc print data=xt49;
run;
proc reg data=xt49;
model y=x/clb p r;/*其中clb是给出回归系数的区间估计*/
output out=out r=residual;/*把回归的结果输出在文件out里,残差给变量名residual */

run;
proc print data=out;
run;

proc plot data=out;
plot residual*x;/*做残差图,检验是否存在异方差*/
run;

/*下面利用残差的绝对值和X间的 spearman的相关系数检验异方差*/
data out1 ;
set out;  /*调用数据集out*/
z=abs(residual); /*求残差的绝对值*/
run;
proc print  data=out1 ;
run;
proc corr data=out1 outs=out2; /*corr指做相关分析 outs=out2表示将等级相关检验的结果输出到out2*/
var x z;
run;


这之前的都没问题,但下面用宏进行最小二乘估计就出错,请高手指教!

/*下面用自变量的幂函数进行加权最小二乘估计*/
title"wls method";
data w1;/*建立新的数据集w1,以便计算权重*/
set out1;
keep y x;
run;
data w2;/*建立新的数据集w,以保留权重*/
set w1;
array row{10} w1-w10;/* w1-w10为不同m时的权数值*/
array p{10}(-2,-1.5,-1,-0.5,0.5,1,1.5,2.5,3);
do i=1 to 10;
row(i)=1/x**p{i};
end;
run;
proc print data=w2;
run;
%macro WLS(putdata);/*WLS宏,putdata为待分析数据*/
   %do j=1 %to 10;
     %analyze(&putdata,&j);
      %Drawplot(&putdata,&j);
   %end;
%mend;
%macro analyze(indata,count);/*回归过程宏,indata为待
分析数据,count为计数值*/
proc reg data=&indata;
model y=x/r;
weight w&count;
output out=w2 r=resid&count;
%mend;
%macro drawplot(indata,count);/*绘制残差图宏,indata为
待分析数据,count为计数值*/
Title "WLS Method weight=w&count";
proc gplot data=&indata;
plot resid&count*x;
%mend;
%Wls(w2);
出错如下
proc reg data=&indata; model y=x/r; weight w&count; output out=w2 r=resid&count; 
                                                                                            --
                                                                                            180
ERROR 180-322: Statement is not valid or it is used out of proper order.
二维码

扫码加我 拉你入群

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

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

关键词:statement Residual Statemen spearman analyze replace import 绝对值 程序

沙发
jingju11 发表于 2011-10-23 10:56:39
看不懂错误提示。不过在reg中的out=W2不会干扰原来的数据集W2吧?还是你有意所为?
京剧

藤椅
ihsihs 发表于 2011-10-24 09:13:46
jingju11 发表于 2011-10-23 10:56
看不懂错误提示。不过在reg中的out=W2不会干扰原来的数据集W2吧?还是你有意所为?
京剧
不会啊,充其量后来把W2的数据改了啊
离2200还有多远

板凳
jingju11 发表于 2011-10-24 10:44:06
盗版SAS的错误往往很奇怪。你的是盗版的吧?京剧

报纸
ihsihs 发表于 2011-10-24 13:23:34
jingju11 发表于 2011-10-24 10:44
盗版SAS的错误往往很奇怪。你的是盗版的吧?京剧
呵呵,你不是打击盗版的吧
离2200还有多远

地板
275769263 发表于 2011-10-24 17:20:47
%macro analyze(indata,count);/*回归过程宏,indata为待
分析数据,count为计数值*/
proc reg data=&indata;
model y=x/r;
weight w&count;
output out=w2 r=resid&count;
%mend;

是不是少了个run和quit。。?
求工作..求工作..求工作..求工作...

7
ihsihs 发表于 2011-10-25 09:47:31
275769263 发表于 2011-10-24 17:20
%macro analyze(indata,count);/*回归过程宏,indata为待
分析数据,count为计数值*/
proc reg data=&ind ...
调用宏是不用run的吧
离2200还有多远

8
ihsihs 发表于 2011-10-25 10:37:37
275769263 发表于 2011-10-24 17:20
%macro analyze(indata,count);/*回归过程宏,indata为待
分析数据,count为计数值*/
proc reg data=&ind ...
好象是哦你说在后面的两个宏中加run是吧,加了run,调用宏好象是可以了,但还是有些问题,我再看看
谢谢你啊
离2200还有多远

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 05:47