Sas 如何找到每年的回归线?

Sas 如何找到每年的回归线?,sas,Sas,我有一个数据集: "Country" "Year" "GDP.per.capita" "Infant.Mortality.Rate" "Argentina" 1950 6252.85859891315 68 "Australia" 1950 10031.1213832996 25.1 "Austria" 1950 5733.09811393918 66 "Belgium" 1950 7990.46583983014 53 "Benin" 1950 1104.46653022144 204.8 "

我有一个数据集:

"Country" "Year" "GDP.per.capita" "Infant.Mortality.Rate"
"Argentina" 1950 6252.85859891315 68
"Australia" 1950 10031.1213832996 25.1
"Austria" 1950 5733.09811393918 66
"Belgium" 1950 7990.46583983014 53
"Benin" 1950 1104.46653022144 204.8
"Burkina Faso" 1950 515.707854373329 178.7
"Canada" 1950 10581.265520182 41.2
"Chile" 1950 3713.9960324847 147.7
"Colombia" 1950 2087.94941987793 124
"Denmark" 1950 8996.05428012913 29.1
"Finland" 1950 5845.6263157204 44
"France" 1950 7104.00732497357 47.6
"Ghana" 1950 943.100536353646 150.1
"Greece" 1950 3040.41319387776 35
我写了一个脚本从互联网上传这些数据。我想做一个回归: 对数(婴儿死亡率)=每年的国家对数(人均GDP)

FILENAME RegProj URL "http://www.math.tau.ac.il/~liadshek/Long.txt" ;
DATA book;
length country $20;
INFILE RegProj firstobs=2 dlm=" " LRECL=131072 dsd truncover;
INPUT Country$ Year GDP_per_capita Infant_Mortality_Rate;
RUN;

PROC reg ;
MODEL log(Infant_Mortality_Rate) = country log(GDP_per_capita);
output out = reg1;
run;
我的问题是:我如何为每年这样做,并将估算保存在不同的表中。
用简短的代码?(完整数据集中有62年)。

PROC REG有一个BY语句,大多数SAS程序也是如此。这将允许您在一个集合中每年执行一次回归

FILENAME RegProj URL "http://www.math.tau.ac.il/~liadshek/Long.txt" ;
DATA book;
length country $20;
INFILE RegProj firstobs=2 dlm=" " LRECL=131072 dsd truncover;
INPUT Country$ Year GDP_per_capita Infant_Mortality_Rate;
log_IMR = log(infant_mortality_rate);
log_gdp = log(GDP_per_capita);
RUN;

PROC reg data=book;
by year;
MODEL log_IMR = log_gdp;
output out = reg1;
run;

这将为您提供一个数据集,但在大多数情况下,您可以从那里很好地工作,这取决于您在之后所做的工作。您至少可以编写一个宏来从这62个数据集进行设置,但在大多数情况下,一个62年的数据集更好,使用BY processing进行任何进一步的分析。

也许一个更有用的注释可以解释您的特殊问题。注意,您需要按变量(年)对数据进行排序在使用
by
语句之前。您的数据看起来是这样排序的,但如果不是这样,则需要这样做。sas告诉:“警告:没有为SSCP矩阵指定变量。执行终止。”数据集已按年份排序。您可以在这里看到数据:“我想您需要正确指定数据集。上面的代码没有
数据=
,这意味着它只在使用的最后一个数据集上执行-这可能不是您所期望的。尝试将
data=book
添加到
PROC REG
语句中。