全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1445 2
2013-06-13

PROCIMPORT OUT=WORK.dateset

            DATAFILE="C:\Users\fchen\Desktop\data.xls"

            DBMS=EXCELREPLACE;

     RANGE="Sheet1$";

     GETNAMES=YES;

     MIXED=NO;

     SCANTEXT=YES;

     USEDATE=YES;

     SCANTIME=YES;

RUN;


data dateset;

      set dateset;

      formatDate mmddyy10.;

      run;


procsql;

    create table table1 as

    selectdistinct year(Date) asyear,count(year(date)) as daysofTm90

        fromdateset

            whereTmaxF>=90

            groupby year;

            quit;



            procsql;

            create table table2 as

            selectyear,daysofTm90,year-1960 ascenteryear,(year-1960)**2as year2,

        (year-1960)**3as year3 fromtable1;

            quit;

            procprint data=table2;

            run;


procreg data=table2;

modeldaysofTm90=centeryear year3  /clb;

title'regression analysis for degree=3 ';

run;


难道是这个proc reg本来就只能生成回归直线?曲线不行?谢谢

二维码

扫码加我 拉你入群

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

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

全部回复
2013-6-14 12:56:32
你的程序没有问题,但是,仔细想一下,什么样的函数能画曲线?医院函数,对吗?可是你有三个自变量,所以你的完整图形应该四维空间。
解决办法是固定任意两个自变量在一些离散值,然后画一系列的曲线。
首先把你的程序稍作修改:
procreg data=table2;

modeldaysofTm90=center year year3  /clb;

title'regression analysis for degree=3 ';
output out=model_set;
run;

这样你的model就被存入model_set当中,然后用proc gplot就可以作图了。
二维码

扫码加我 拉你入群

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

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

2013-6-16 02:19:33
chengsm13 发表于 2013-6-14 12:56
你的程序没有问题,但是,仔细想一下,什么样的函数能画曲线?医院函数,对吗?可是你有三个自变量,所以你 ...
Thanks very much.

One point I need to point out is, we should assign p=yfit as fitted y value in the polynomial regression model.
my revised code is as follows:

proc reg data=table2;
model daysofTm90=centeryear year3  /clb;
output out=model_set p=yfit;
run ;

title 'regression analysis for degree=3 ';
proc gplot data=model_set;
plot daysofTm90*year yfit*year/overlay;
symbol1 v=star c=blue I=none;
symbol2 v=none c=red I=spline;
run;
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群