• 用SAS代写进行泊松,零膨胀泊松和有限混合Poisson模型分析


    原文链接:http://tecdat.cn/?p=6145

     

    泊松模型

     
    proc fmm data = tmp1 tech = trureg;
    
      model majordrg = age acadmos minordrg logspend / dist = truncpoisson;
    
     
      probmodel age acadmos minordrg logspend;
    
     
    /*
    
    Fit Statistics
    
     
    
    -2 Log Likelihood             8201.0
    
    AIC  (smaller is better)      8221.0
    
    AICC (smaller is better)      8221.0
    
    BIC  (smaller is better)      8293.5
    
     
    
    Parameter Estimates for 'Truncated Poisson' Model
    
      
    
                                    Standard
    
    Component  Effect     Estimate     Error  z Value  Pr > |z|
    
     
    
            1  Intercept   -2.0706    0.3081    -6.72    <.0001
    
            1  AGE         0.01796  0.005482     3.28    0.0011
    
            1  ACADMOS    0.000852  0.000700     1.22    0.2240
    
            1  MINORDRG     0.1739   0.03441     5.05    <.0001
    
            1  LOGSPEND     0.1229   0.04219     2.91    0.0036
    
     
    
    Parameter Estimates for Mixing Probabilities
    
      
    
                             Standard
    
    Effect       Estimate       Error    z Value    Pr > |z|
    
     
    
    Intercept     -4.2309      0.1808     -23.40      <.0001
    
    AGE           0.01694    0.003323       5.10      <.0001
    
    ACADMOS      0.002240    0.000492       4.55      <.0001
    
    MINORDRG       0.7653     0.03842      19.92      <.0001
    
    LOGSPEND       0.2301     0.02683       8.58      <.0001
    
    */
    
     
    
    *** HURDLE POISSON MODEL WITH NLMIXED PROCEDURE ***;
    
    proc nlmixed data = tmp1 tech = trureg maxit = 500;
    
      parms B1_intercept = -4 B1_age = 0 B1_acadmos = 0 B1_minordrg = 0 B1_logspend = 0
    
            B2_intercept = -2 B2_age = 0 B2_acadmos = 0 B2_minordrg = 0 B2_logspend = 0;
    
     
    
      eta1 = B1_intercept + B1_age * age + B1_acadmos * acadmos + B1_minordrg * minordrg + B1_logspend * logspend;
    
      exp_eta1 = exp(eta1);
    
      p0 = 1 / (1 + exp_eta1);
    
      eta2 = B2_intercept + B2_age * age + B2_acadmos * acadmos + B2_minordrg * minordrg + B2_logspend * logspend;
    
      exp_eta2 = exp(eta2);
    
      if majordrg = 0 then _prob_ = p0;
    
      else _prob_ = (1 - p0) * exp(-exp_eta2) * (exp_eta2 ** majordrg) / ((1 - exp(-exp_eta2)) * fact(majordrg));
    
      ll = log(_prob_);
    
      model majordrg ~ general(ll);
    
    run;
    
    /*
    
    Fit Statistics
    
     
    
    -2 Log Likelihood                 8201.0
    
    AIC (smaller is better)           8221.0
    
    AICC (smaller is better)          8221.0
    
    BIC (smaller is better)           8293.5
    
     
    
    Parameter Estimates
    
      
    
                              Standard
    
    Parameter      Estimate      Error     DF   t Value   Pr > |t|
    
     
    
    B1_intercept    -4.2309     0.1808    1E4    -23.40     <.0001
    
    B1_age          0.01694   0.003323    1E4      5.10     <.0001
    
    B1_acadmos     0.002240   0.000492    1E4      4.55     <.0001
    
    B1_minordrg      0.7653    0.03842    1E4     19.92     <.0001
    
    B1_logspend      0.2301    0.02683    1E4      8.58     <.0001
    
    ============
    
    B2_intercept    -2.0706     0.3081    1E4     -6.72     <.0001
    
    B2_age          0.01796   0.005482    1E4      3.28     0.0011
    
    B2_acadmos     0.000852   0.000700    1E4      1.22     0.2240
    
    B2_minordrg      0.1739    0.03441    1E4      5.05     <.0001
    
    B2_logspend      0.1229    0.04219    1E4      2.91     0.0036
    
    */

    零膨胀泊松模型

    *** ZERO-INFLATED POISSON MODEL WITH FMM PROCEDURE ***;
    
    proc fmm data = tmp1 tech = trureg;
    
      model majordrg = age acadmos minordrg logspend / dist = poisson;
    
     
      probmodel age acadmos minordrg logspend;
    
    run;
    
    /*
    
    Fit Statistics
    
     
    
    -2 Log Likelihood             8147.9
    
    AIC  (smaller is better)      8167.9
    
    AICC (smaller is better)      8167.9
    
    BIC  (smaller is better)      8240.5
    
     
    
    Parameter Estimates for 'Poisson' Model
    
      
    
                                    Standard
    
    Component  Effect     Estimate     Error  z Value  Pr > |z|
    
     
    
            1  Intercept   -2.2780    0.3002    -7.59    <.0001
    
            1  AGE         0.01956  0.006019     3.25    0.0012
    
            1  ACADMOS    0.000249  0.000668     0.37    0.7093
    
            1  MINORDRG     0.1176   0.02711     4.34    <.0001
    
            1  LOGSPEND     0.1644   0.03531     4.66    <.0001
    
     
    
    Parameter Estimates for Mixing Probabilities
    
      
    
                             Standard
    
    Effect       Estimate       Error    z Value    Pr > |z|
    
     
    
    Intercept     -1.9111      0.4170      -4.58      <.0001
    
    AGE          -0.00082    0.008406      -0.10      0.9218
    
    ACADMOS      0.002934    0.001085       2.70      0.0068
    
    MINORDRG       1.4424      0.1361      10.59      <.0001
    
    LOGSPEND      0.09562     0.05080       1.88      0.0598
    
    */
    
     
    
    *** ZERO-INFLATED POISSON MODEL WITH NLMIXED PROCEDURE ***;
    
    proc nlmixed data = tmp1 tech = trureg maxit = 500;
    
      parms B1_intercept = -2 B1_age = 0 B1_acadmos = 0 B1_minordrg = 0 B1_logspend = 0
    
            B2_intercept = -2 B2_age = 0 B2_acadmos = 0 B2_minordrg = 0 B2_logspend = 0;
    
     
    
      eta1 = B1_intercept + B1_age * age + B1_acadmos * acadmos + B1_minordrg * minordrg + B1_logspend * logspend;
    
      exp_eta1 = exp(eta1);
    
      p0 = 1 / (1 + exp_eta1);
    
      eta2 = B2_intercept + B2_age * age + B2_acadmos * acadmos + B2_minordrg * minordrg + B2_logspend * logspend;
    
      exp_eta2 = exp(eta2);
    
      if majordrg = 0 then _prob_ = p0 + (1 - p0) * exp(-exp_eta2);
    
      else _prob_ = (1 - p0) * exp(-exp_eta2) * (exp_eta2 ** majordrg) / fact(majordrg);
    
      ll = log(_prob_);
    
      model majordrg ~ general(ll);
    
    run;
    
    /*
    
    Fit Statistics
    
     
    
    -2 Log Likelihood                 8147.9
    
    AIC (smaller is better)           8167.9
    
    AICC (smaller is better)          8167.9
    
    BIC (smaller is better)           8240.5
    
     
    
    Parameter Estimates
    
      
    
                              Standard
    
    Parameter      Estimate      Error     DF   t Value   Pr > |t|
    
     
    
    B1_intercept    -1.9111     0.4170    1E4     -4.58     <.0001
    
    B1_age         -0.00082   0.008406    1E4     -0.10     0.9219
    
    B1_acadmos     0.002934   0.001085    1E4      2.70     0.0068
    
    B1_minordrg      1.4424     0.1361    1E4     10.59     <.0001
    
    B1_logspend     0.09562    0.05080    1E4      1.88     0.0598
    
    ============
    
    B2_intercept    -2.2780     0.3002    1E4     -7.59     <.0001
    
    B2_age          0.01956   0.006019    1E4      3.25     0.0012
    
    B2_acadmos     0.000249   0.000668    1E4      0.37     0.7093
    
    B2_minordrg      0.1176    0.02711    1E4      4.34     <.0001
    
    B2_logspend      0.1644    0.03531    1E4      4.66     <.0001
    
    */

    两类有限混合Poisson模型

    *** TWO-CLASS FINITE MIXTURE POISSON MODEL WITH FMM PROCEDURE ***;
    
    proc fmm data = tmp1 tech = trureg;
    
      model majordrg = age acadmos minordrg logspend / dist = poisson k = 2;
    
     
    run;
    
    /*
    
    Fit Statistics
    
     
    
    -2 Log Likelihood             8136.8
    
    AIC  (smaller is better)      8166.8
    
    AICC (smaller is better)      8166.9
    
    BIC  (smaller is better)      8275.7
    
     
    
    Parameter Estimates for 'Poisson' Model
    
      
    
                                    Standard
    
    Component  Effect     Estimate     Error  z Value  Pr > |z|
    
     
    
            1  Intercept   -2.4449    0.3497    -6.99    <.0001
    
            1  AGE         0.02214  0.006628     3.34    0.0008
    
            1  ACADMOS    0.000529  0.000770     0.69    0.4920
    
            1  MINORDRG    0.05054   0.04015     1.26    0.2081
    
            1  LOGSPEND     0.2140   0.04127     5.18    <.0001
    
            2  Intercept   -8.0935    1.5915    -5.09    <.0001
    
            2  AGE         0.01150   0.01294     0.89    0.3742
    
            2  ACADMOS    0.004567  0.002055     2.22    0.0263
    
            2  MINORDRG     0.2638    0.6770     0.39    0.6968
    
            2  LOGSPEND     0.6826    0.2203     3.10    0.0019
    
     
    
    Parameter Estimates for Mixing Probabilities
    
      
    
                             Standard
    
    Effect       Estimate       Error    z Value    Pr > |z|
    
     
    
    Intercept     -1.4275      0.5278      -2.70      0.0068
    
    AGE          -0.00277     0.01011      -0.27      0.7844
    
    ACADMOS      0.001614    0.001440       1.12      0.2623
    
    MINORDRG       1.5865      0.1791       8.86      <.0001
    
    LOGSPEND     -0.06949     0.07436      -0.93      0.3501
    
    */
    
     
    
    *** TWO-CLASS FINITE MIXTURE POISSON MODEL WITH NLMIXED PROCEDURE ***;
    
    proc nlmixed data = tmp1 tech = trureg maxit = 500;
    
     
            B2_intercept = -8 B2_age = 0 B2_acadmos = 0 B2_minordrg = 0 B2_logspend = 0
    
     
     
    
      eta1 = B1_intercept + B1_age * age + B1_acadmos * acadmos + B1_minordrg * minordrg + B1_logspend * logspend;
    
      exp_eta1 = exp(eta1);
    
      prob1 = exp(-exp_eta1) * exp_eta1 ** majordrg / fact(majordrg);
    
      eta2 = B2_intercept + B2_age * age + B2_acadmos * acadmos + B2_minordrg * minordrg + B2_logspend * logspend;
    
      exp_eta2 = exp(eta2);
    
      prob2 = exp(-exp_eta2) * exp_eta2 ** majordrg / fact(majordrg);
    
      eta3 = B3_intercept + B3_age * age + B3_acadmos * acadmos + B3_minordrg * minordrg + B3_logspend * logspend;
    
      exp_eta3 = exp(eta3);
    
      p = exp_eta3 / (1 + exp_eta3);
    
      _prob_ = p * prob1 + (1 - p) * prob2;
    
      ll = log(_prob_);
    
      model majordrg ~ general(ll);
    
    run;
    
    /*
    
    Fit Statistics
    
     
    
    -2 Log Likelihood                 8136.8
    
    AIC (smaller is better)           8166.8
    
    AICC (smaller is better)          8166.9
    
    BIC (smaller is better)           8275.7
    
     
    
    Parameter Estimates
    
      
    
                              Standard
    
    Parameter      Estimate      Error     DF   t Value   Pr > |t|
    
     
    
    B1_intercept    -2.4449     0.3497    1E4     -6.99     <.0001
    
    B1_age          0.02214   0.006628    1E4      3.34     0.0008
    
    B1_acadmos     0.000529   0.000770    1E4      0.69     0.4920
    
    B1_minordrg     0.05054    0.04015    1E4      1.26     0.2081
    
    B1_logspend      0.2140    0.04127    1E4      5.18     <.0001
    
    ============
    
    B2_intercept    -8.0935     1.5916    1E4     -5.09     <.0001
    
    B2_age          0.01150    0.01294    1E4      0.89     0.3742
    
    B2_acadmos     0.004567   0.002055    1E4      2.22     0.0263
    
    B2_minordrg      0.2638     0.6770    1E4      0.39     0.6968
    
    B2_logspend      0.6826     0.2203    1E4      3.10     0.0020
    
    ============
    
    B3_intercept    -1.4275     0.5278    1E4     -2.70     0.0068
    
    B3_age         -0.00277    0.01011    1E4     -0.27     0.7844
    
    B3_acadmos     0.001614   0.001440    1E4      1.12     0.2623
    
    B3_minordrg      1.5865     0.1791    1E4      8.86     <.0001
    
    B3_logspend    -0.06949    0.07436    1E4     -0.93     0.3501
    
    */

    如果您有任何疑问,请在下面发表评论。

  • 相关阅读:
    Blob
    MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法 (转)
    事务--存储过程
    JDBC-Mysql-编译预处理(占位符)
    socket
    GUI---深度复制
    串行化--深度复制
    RESTful理解
    django中文和时区的配置
    redis-server报错
  • 原文地址:https://www.cnblogs.com/tecdat/p/11401013.html
Copyright © 2020-2023  润新知