知识库 > 数学方法 > 回归分析

非线性回归    

  • 有些非线性模型是可以通过对应的函数变化将之线性化的,如下:
    倒数模型:

    只要令,则有
    k阶多项式模型

    ,则有
    对数模型

    ,则有
    可间接线性化的模型
    生产函数:

    将两边取对数我们得到

    Logistic新产品生命周期模型:

    两边求倒,再减1,取对数,我们可以得到:

    当然大部分的非线性不可以线性化,可以给定其其一般形式为

    其中,个解释变量;为参数的集合,且解释变量与参数的维数没必要相等。为非线性函数,运用前面的方法,显然已经不可以将模型转化为标准化的线性模型。
    非线性最小二乘:

    处达到最小,这样称为参数的非线性最小二乘估计值。非线性没有现成的公式可以套用,只能通过初值设置反复迭代,且求出的只是一定精度下的近似解。

    定义:Regress_NLM(string:func,array():x,array():y,array():Initial):array();
    说明:采用麦夸特方法求多元非线性方程的最小二乘回归系数。
    参数:
    Func:回归方程,为字符串类型;
    x : 解释变量矩阵,为二维数组类型,每一列为一个解释变量;
    y : 被解释变量序列,为一维数组类型;
    Initial:估计参数初始值,一维数字数组;

    例:我国居民消费支出(参见平台下的Regress_NLM_Demo函数)
    年份消费价格指数CPIX1(以1978年为100)人均可支配收入X2(元)上年人均消费支出X3(元)人均消费支出Y(元)
    1993273.1002577.4001671.7302110.810
    1994339.0003496.2002110.8102851.340
    1995396.9004283.0002851.3403537.570
    1996429.9004838.9003537.5703919.470
    1997441.9005160.3003919.4704185.640
    1998438.4005425.1004185.6404331.600
    1999432.2005854.0204331.6004615.900
    2000434.0006280.0004615.9004998.000
    2001437.0006859.6004998.0005309.000
    2002433.5007702.8005309.0006029.880
    2003438.7008472.2006029.8806510.940
    2004455.8009421.6006510.9407182.100
    2005464.00010493.0007182.1007942.880
    2006471.00011759.5007942.8808696.550
    2007493.60013785.8008696.5509997.470

    数据如表所示,通过散点图和数据拟合分析与比较,模型的最终形式确定为指数型,有如Coubb-Douglas函数形式:

    用线性模型模型方法估计及其经济分析结果

    data:=array(
      (273.1,2577.4, 1671.73, 2110.81),
      (339, 3496.2, 2110.81, 2851.34),
      (396.9,4283,2851.34, 3537.57),
      (429.9,4838.9, 3537.57, 3919.47),
      (441.9,5160.3, 3919.47, 4185.64),
      (438.4,5425.1, 4185.64, 4331.6),
      (432.2,5854.02,4331.6, 4615.9),
      (434, 6280, 4615.9,4998),
      (437, 6859.6, 4998, 5309),
      (433.5,7702.8, 5309, 6029.88),
      (438.7,8472.2, 6029.88, 6510.94),
      (455.8,9421.6, 6510.94, 7182.1),
      (464,10493,7182.1,7942.88),
      (471, 11759.5,7942.88, 8696.55),
      (493.6,13785.8,8696.55,9997.47));
    Y:=data[:,3];
    Y1:=log(Y);
    X:=data[:,0:2];
    X1:=log(X);
    return Regression(y1,x1);

    这时的最小二乘估计结果的T检验通不过。
         
    return Regress_VIF(x1);输出X的多重共线性检验,
    return Regress_Stepwise(Y1,X1,0.05,0.1);进行逐步回归,

    不难看出,我国居民消费支出增加决定因素包括两方面。一是消费价格指数CPI,对应的弹性为0.137,经济含义是,消费价格指数CPI每增加1个百分点,我国居民消费支出增加0.137个百分点,这与实际经济实情吻合,因为物价上涨,居民维持不变的实物消费,所支付的货币将随之增加。
    我国居民消费支出增加的另一决定因素是:人均可支配收入,对应的弹性为0.884,经济含义是,人均可支配收入每增加1个百分点,我国居民消费支出增加0.884个百分点,这与宏观经济学中居民消费行为假说基本吻合,随着人均可支配收入增加,消费价格指数CPI维持不变下,居民的实物消费随之增加,所支付的货币将随之增加。
    在模型估计过程中,发现上年人均消费支出在模型中不够显著,说明我国居民的当年消费,整体而言与上年的消费关系不大,某种程度上说明我国目前的消费还处在低端消费,耐用消费所占比例不大。
    用非线性普通最小二乘法直接估计模型
    x:=x[:,0:1];
    return Regress_NLM('Demo_Regress_NLM.NLM_CallBack',x,y,array(-0.2,0.2, 0.8));
    为解释变量,不同初值下的迭代估计结果如下:
    的初值为时,


    的初值为时,

    经过反复迭代,模型参数的估计值均收敛于1.19,0.09,0.884,说明模拟结果较为合理。一方面,与经济预期也较为吻合,消费价格指数CPI和人均可支配收入的弹性系数分别为0.09和0.884。另一方面,参数估计值与前面线性模型模型估计结果基本一致,间接证明非线性最小二乘法NLS的结果比较合理。
内容