*12-1. 怎么用SPSS快速同时拟合11种曲线(分享之12-1)
福建省疾控中心 潘宝骏(13509366051@163.com).
*时间序列数据常常要研究某变量随时间变化的趋势。曲线拟合就是根据实际数据所呈现的趋势,
拟合出误差最小的曲线方程。SPSS的 Trends 过程,其中的 CURVEFIT 命令,
可一次性拟合出11 种常用的曲线方程.
*(1)呈上升趋势的数列(命令中含“年份 t”),2022年数据未知(即“-1”),待预测:.
DATA LIST FREE /t P.
MISSING VALUE P(-1).
BEGIN DATA.
2008 12.22
2009 13.00
2010 17.25
2011 26.57
2012 16.64
2013 12.38
2014 28.87
2015 27.89
2016 37.51
2017 69.53
2018 81.96
2019 98.76
2020 79.55
2021 142.83
2022 -1
END DATA.
FORMATS t(F4.0).
VARIABLE LABELS t '年份' /P '数值'.
GRAPH /LINE(SIMPLE)=MEAN(P) BY t.
* 快速同时拟合11种曲线:
(1) 直线回归方程 LIN,Y=b0+(b1*t)
(2) 对数曲线方程 LOG,Y=b0+(b1*ln(t))
(3) 反函数曲线方程 INV,Y=b0+(b1/t)
(4) 二次曲线(抛物线)方程 QUA,Y=b0+(b1*t)+(b2*t**2)
(5) 三次曲线(三次抛物线)方程 CUB,Y=b0+(b1*t)+(b2*t**2)+(b3*t**3)
(6) 复合曲线方程 COM,Y=b0*(b1**t)
(7) 幂函数曲线方程 POW,Y=b0*(t**b1)
(8) S 形曲线方程 S,Y=e**(b0+(b1/t))
(9) 生长曲线方程 GRO,Y=e**(b0+(b1*t))
(10) 指数曲线方程 EXP,Y=b0*(e**(b1*t))
(11) logistic 曲线方程 LGS,Y=1/(1/u+(b0*(b1**t))) .
CURVEFIT VARIABLES=P WITH t /MODEL=ALL /SAVE=PRED.
FORMATS FIT_1 TO FIT_11(F7.2).
LIST VARIABLES=t P FIT_1 FIT_2 FIT_3 FIT_4 FIT_5 FIT_6.
LIST VARIABLES=t P FIT_7 FIT_8 FIT_9 FIT_10 FIT_11.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_1) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_2) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_3) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_4) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_5) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_6) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_7) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_8) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_9) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_10) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_11) BY t.
* 对本例而言,指数曲线 EXP,Y=b0*(e**(b1*t))拟合得最好,因为其“R方”值最大(0.872)、
“F”值最大(81.581)、“Sigf”即 P 值最小(0.000)。
* 本例指数曲线方程的 b0=2.1334467752482048E-164、b1=0.1888290231923171.
* 根据输出的方程系数值,即可写出这 11 种曲线。例如指数曲线方程是:
FIT_10:Y=b0*(e**(b1*t)),当 t=2022:.
COMPUTE Y1=2.1334467752482048E-164*(EXP(0.1888290231923171*2022)).
DESCRIPTIVES VARIABLES=Y1 /STATISTICS=MEAN.
* 可见 2022 年的指数曲线方程的预测值是 140.62,与输出结果相同.
*------------------------------------------------.
*12-2. 怎么用SPSS快速同时拟合11种曲线(分享之12-2).
*(2)呈下降趋势的数列(命令中含有“年份 t”),2022年数据未知(即“-1”),待预测:.
DATA LIST FREE /t P.
MISSING VALUE P(-1).
BEGIN DATA.
2008 142.83
2009 79.55
2010 98.76
2011 81.96
2012 69.53
2013 37.51
2014 27.89
2015 28.87
2016 12.38
2017 16.64
2018 26.57
2019 17.25
2020 13.00
2021 12.22
2022 -1
END DATA.
FORMATS t(F4.0).
VARIABLE LABELS t '年份' /P '数值'.
GRAPH /LINE(SIMPLE)=MEAN(P) BY t.
* 快速同时拟合11种曲线:.
CURVEFIT VARIABLES=P WITH t /MODEL=ALL /SAVE=PRED.
FORMATS FIT_1 TO FIT_11(F7.2).
LIST VARIABLES=t P FIT_1 FIT_2 FIT_3 FIT_4 FIT_5 FIT_6.
LIST VARIABLES=t P FIT_7 FIT_8 FIT_9 FIT_10 FIT_11.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_1) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_2) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_3) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_4) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_5) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_6) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_7) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_8) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_9) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_10) BY t.
GRAPH /LINE(MULTIPLE)=MEAN(P, FIT_11) BY t.
*------------------------------------------------.
* 对本例而言,指数曲线 EXP,Y=b0*(e**(b1*t))拟合得最好,因为其“R方”值最大(0.872)、
“F”值最大(81.581)、“Sigf”即 P 值最小(0.000)。
* 本例指数曲线方程的 b0=5.456418542813541E166、b1=-0.1888290231923169.
* 根据输出的方程系数值,即可写出这 11 种曲线。例如指数曲线方程是:
FIT_10:Y=b0*(e**(b1*t)),当 t=2022:.
COMPUTE Y1=5.456418542813541E166*(EXP(-0.1888290231923169*2022)).
DESCRIPTIVES VARIABLES=Y1 /STATISTICS=MEAN.
* 可见 2022 年的指数曲线方程的预测值是 8.28,与输出结果相同.
*------------------------------------------------.
* 注意事项:.
(1) 曲线拟合预测,不能随意外延,一般情况是向前预测1步(one step ahead);
(2) 拟合11 种曲线模型的理论值见下表 FIT_1 至 FIT_11;
(3) 判断哪种曲线拟合较优的方法:“Rsq”值大或“F”值较大、“Sigf”即 P 值较小者,拟合优度较高;
(4) 在“Rsq”值或“F”值差别不大的情况下,要选用较简单、易理解的曲线方程;
(5) 根据输出的方程系数值,即可写出这 11 种曲线方程;
(6) 引用/复制拟合方程的常数项 b0 和其他系数值时,应含足够小数位数,否则算的预测值只能较接近而不相同;
(7) 运算时会输出 11 个拟合图形,为美观计,请把“图表宽高比”设为“1.5”.
例如:拟合呈下降趋势的指数曲线方程(其他曲线输出从略,见附件).