SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

自动截取回归系数?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-12-20 23:40:07 | 只看该作者

自动截取回归系数?

请问各位前辈,小弟有个问题想请教,就我现在有一个回归式,如:
y=ax1+bx2+cx3,因为已知x1、x2、x3与y之值,故能求出系数a、b、c之值。而小弟现在的问题是,我想用求出之a、b、c之值再代回那条回归式求出新的y值,但因为这个步骤要重复很多次,所以想请问各位前辈,不知有没有办法直接截取系数a、b、c之值而不用手动从输出之结果将系数值重新代回回归式求出y值呢。拜托各位前辈帮我想个办法,谢谢。
提供之前我的作法,请各位前辈帮我看看该如何修改才会自动截取系数,先谢谢各位前辈了!

/*估计回归系数*/

data book1;

set a;

a=1/prasset;

b=fa/prasset;

c=doi/prasset;


run;

proc reg data=book1;

model asset =a b c;

run;


/*代回系数求差异*/

data book2;

set book1;

ta=-591-7100*a+146*b+1206*c;

diff=asset-ta;

run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-12-21 12:31:06 | 只看该作者

Re: 自动截取回归系数?

方法一:proc reg本来就涵盖此功能,不需要取出回归系数,程序如下
[code:gpfbbsil]proc reg data=book1;
        model asset =a b c;
        output out=book2 p=ta r=diff;
run;
quit;[/code:gpfbbsil]


方法二:若你一定要你的方法去解题的话,那么如下
[code:gpfbbsil]
proc reg data=book1 outest=tmp(keep=Intercept a b c rename=(Intercept=a0 a=a1 b=a2 c=a3));
        model asset =a b c;
run;
quit;
data book2;
        if _n_=1 then set tmp;
        set book1;
        ta=a0+a1*a+a2*b+a3*c;
        diff=asset-ta;
run;
[/code:gpfbbsil]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

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

Re: 自动截取回归系数?

SAS 很体贴的,早就有满足你的方法了。

data book;                                                                                                                              
  input x1 x2 x3 y;                                                                                                                     
cards;                                                                                                                                 
1  2   3   5                                                                                                                           
2  3   3   4                                                                                                                           
3  3   4   8                                                                                                                           
2  3   4   9                                                                                                                           
1.1  2.9   3   5                                                                                                                        
2.3  3.2   3   4                                                                                                                        
3.6  3.8   4   8                                                                                                                        
2.8  3.5   4   9                                                                                                                        
1  2  3    .                                                                                                                           
3  3  5     .                                                                                                                           
;                                                                                                                                       
model y=x1 - x3;                                                                                                                        
output out= sxlion P = py;                                                                                                            
run;                                                                                                                                    
                                                                                                                                       
  proc print data =sxlion;                                                                                                              
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-12-21 22:47:29 | 只看该作者

Re: 自动截取回归系数?

感谢前辈的指教,小弟受教了!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-12-23 22:33:57 | 只看该作者

Re: 自动截取回归系数?

[quote="sxlion":2ymmh1qk]SAS 很体贴的,早就有满足你的方法了。

data book;                                                                                                                              
  input x1 x2 x3 y;                                                                                                                     
cards;                                                                                                                                 
1  2   3   5                                                                                                                           
2  3   3   4                                                                                                                           
3  3   4   8                                                                                                                           
2  3   4   9                                                                                                                           
1.1  2.9   3   5                                                                                                                        
2.3  3.2   3   4                                                                                                                        
3.6  3.8   4   8                                                                                                                        
2.8  3.5   4   9                                                                                                                        
1  2  3    .                                                                                                                           
3  3  5     .                                                                                                                           
;                                                                                                                                       
model y=x1 - x3;                                                                                                                        
output out= sxlion P = py;                                                                                                            
run;                                                                                                                                    
                                                                                                                                       
  proc print data =sxlion;                                                                                                              
run;[/quote:2ymmh1qk]
谢谢友友,对于reg又有了多一点的认识
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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