四十六、Stata离散选择模型,时间序列和面板数据

@Author : By Runsen
@Date:2020/5/14

在2020年一月初,也是我大三上的寒假,我开始写书,为什么呢?因为化工原理和化工热力学挂了,我需要重拾自己的自信。

对于一个大学三年,每天往死里干的人,竟然挂了两科。

虽然,我化工专业已经陷入了绝境,大学我主要学习日语,Python,Java和一系列数据分析软件。

所以本专栏数据分析将使用Excel,Powerbi,Python,R,Sql,SPSS,stata以及Tableau,后面还会补充BI。

第五章应该是二月份上完成的。

5、Stata

5.6 离散选择模型

离散选择模型(Discrete Choice Model, DCM)在经济学领域和社会学领域都有广泛的应用。例如,消费者在购买汽车的时候通常会比较几个不同的品牌,如福特、本田、大众,等等。如果将消费者选择福特汽车记为 Y = 1 Y=1 Y=1,选择本田汽车记为 Y = 2 Y=2 Y=2,选择大众汽车记为 Y = 3 Y=3 Y=3;那么在研究消费者选择何种汽车品牌的时候,由于因变量不是一个连续的变量 Y = 1 , 2 , 3 Y=1, 2, 3 Y=1,2,3,使用离散选择模型可以提供一个有效的建模途径。

5.6.1 Logit 模型

Logit模型(Logit model),也译作“评定模型”,“分类评定模型”,又作Logistic regression,“逻辑回归”,是离散选择法模型之一,简单说就是二分类模型。

Stata 提供的 logit 命令可用于 logit 模型。这里,我们使用 Stata 附带的 auto.dta 数据 (1978年美国汽车数据) 来预测汽车产地 (进口= 1;国产= 0)。以 foreign (是否进口车)作为输出变量、以 mpg (每加仑汽油能够行驶的英里数)**、**weight (汽车重量)作为输入变量建立二元 logit 模型。Stata 中的命令和结果如下所示:

. sysuse "auto.dta", clear
(1978 Automobile Data)

. logit foreign mpg weight
Iteration 0:   log likelihood =  -45.03321  
Iteration 1:   log likelihood = -29.238536  
Iteration 2:   log likelihood = -27.244139  
Iteration 3:   log likelihood = -27.175277  
Iteration 4:   log likelihood = -27.175156  
Iteration 5:   log likelihood = -27.175156  
Logistic regression                             Number of obs     =         74
                                                LR chi2(2)        =      35.72
                                                Prob > chi2       =     0.0000
Log likelihood = -27.175156                     Pseudo R2         =     0.3966
------------------------------------------------------------------------------
     foreign |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         mpg |  -.1685869   .0919175    -1.83   0.067    -.3487418     .011568
      weight |  -.0039067   .0010116    -3.86   0.000    -.0058894    -.001924
       _cons |   13.70837   4.518709     3.03   0.002     4.851859    22.56487
------------------------------------------------------------------------------

结果显示 mpg与 weight 的系数值显著为负,表明当控制其他变量不变时,mpg 变量的值增加 1 个单位, 分类成功胜算比 o d d s odds odds将变为原来的 e x p ( − 0.1685 ) = 0.8448 exp(-0.1685)=0.8448 exp(0.1685)=0.8448 倍,表明该车辆是进口车的概率将变小。

拟合logistic回归预测

// 模型预测
. predict foreign_
(option pr assumed; Pr(foreign))

// ROC曲线绘制
. lroc
Logistic model for foreign
number of observations =       74
area under ROC curve   =   0.8934

绘制的ROC曲线,AUC值等于0.8934,说明预测准确率较高,如下图5-100所示。

5.6.2 probit

probit模型是一种非线性模型,服从正态分布。Stata 提供的 probit 命令可用于 probit 模型

我们同样以Stata 附带的 auto.dta数据建立二元probit模型,并绘制ROC曲线

. probit foreign mpg weight
Iteration 0:   log likelihood =  -45.03321  
Iteration 1:   log likelihood = -27.914626  
Iteration 2:   log likelihood = -26.858074  
Iteration 3:   log likelihood = -26.844197  
Iteration 4:   log likelihood = -26.844189  
Iteration 5:   log likelihood = -26.844189  
Probit regression                               Number of obs     =         74
                                                LR chi2(2)        =      36.38
                                                Prob > chi2       =     0.0000
Log likelihood = -26.844189                     Pseudo R2         =     0.4039

------------------------------------------------------------------------------
     foreign |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         mpg |  -.1039503   .0515689    -2.02   0.044    -.2050235   -.0028772
      weight |  -.0023355   .0005661    -4.13   0.000     -.003445   -.0012261
       _cons |   8.275464   2.554142     3.24   0.001     3.269437    13.28149
------------------------------------------------------------------------------


. lroc
Probit model for foreign
number of observations =       74
area under ROC curve   =   0.8951

绘制的ROC曲线,AUC值等于0.8951,说明预测准确率较高,如下图5-101所示。

logit模型服从Logistic分布,probit模型服从正态分布,两个模型都是离散选择模型的常用模型。区别在于,前者logit假设随机变量服从逻辑概率分布,而后者probit假设随机变量服从正态分布。

5.7 时间序列和面板数据

常见的数据形式有时间序列数据( Time series data ),截面数据( Cross-sectional data )和面板数据( Panel data )。

5.7.1 时间序列

从单变量时间序列到多元时间序列模型,从平稳过程到非平稳过程,时间序列分析方法被广泛应用于经济、气象和过程控制等领域。

下面 Stata 自带的 gnp96.dta 数据 (1967年美国国民生产总值数据)使用时间序列分析方法

通过命令sysuse "gnp96.dta", clear导入数据

. sysuse "gnp96.dta", clear
. list in 1/5
     +-----------------+
     |   date    gnp96 |
     |-----------------|
  1. | 1967q1   3631.6 |
  2. | 1967q2   3644.5 |
  3. | 1967q3     3672 |
  4. | 1967q4   3703.1 |
  5. | 1968q1   3757.5 |
     +-----------------+
. des
Contains data from F:\stata\ado\base/g/gnp96.dta
  obs:           142                          
 vars:             2            20 Apr 2018 05:18
                                 (_dta has notes)
---------------------------------------------------------------------
              storage   display    value
variable name   type    format     label      variable label
---------------------------------------------------------------------
date            int     %tq         Date
gnp96           float   %9.0g       * Real Gross National Product
                                    * indicated variables have notes
---------------------------------------------------------------------

. tsset date  // 声明时间序列
        time variable:  date, 1967q1 to 2002q2
                delta:  1 quarter
                               
. tsreport,detail // 检查是否有断点 
Time variable:    date
------------------------
Starting period = 1967q1
Ending period   = 2002q2
Observations    =    142
Number of gaps  =      0

. reg gnp96 L.gnp96 //模型建立
      Source |       SS           df       MS      Number of obs   =       141
-------------+----------------------------------   F(1, 139)       >  99999.00
       Model |   401136223         1   401136223   Prob > F        =    0.0000
    Residual |  299214.001       139  2152.61871   R-squared       =    0.9993
-------------+----------------------------------   Adj R-squared   =    0.9992
       Total |   401435437       140  2867395.98   Root MSE        =    46.396
------------------------------------------------------------------------------
       gnp96 |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       gnp96 |
         L1. |   1.008754   .0023368   431.68   0.000     1.004133    1.013374
             |
       _cons |  -9.948126   14.63537    -0.68   0.498    -38.88486    18.98861
------------------------------------------------------------------------------

. predict gnp_hat  // 样本预测
(option xb assumed; fitted values)
(1 missing value generated)

. list in -5/-1
     +----------------------------+
     |   date    gnp96    gnp_hat |
     |----------------------------|
138. | 2001q2   9436.4   9535.685 |
139. | 2001q3   9405.7   9509.054 |
140. | 2001q4     9538   9478.085 |
141. | 2002q1     9659   9611.543 |
142. | 2002q2   9678.4   9733.603 |
     +----------------------------+

. tsline gnp96 gnp_hat //预测gnp96.dta时间序列图

预测gnp96.dta时间序列图,如下图5-102所示。

在时间序列中,存在比较著名的模型:ARIMA整合移动平均自回归模型、ARCH自回归条件异方差模型、VAR向量自回归模型和VEC向量误差纠正模型、通过help(ARIMA), help(ARCH),help(VAR),help(VEC)查看示例和options]选项,以及命令窗口位置。

5.7.2 面板数据

面板数据,即Panel Data,也叫“平行数据”,是指在时间序列上取多个截面,在这些截面上同时选取样本观测值所构成的样本数据。例如,欲研究影响企业利润的决定因素,我们认为企业规模 (截面维度)和技术进步(时间维度)是两个重要的因素。截面数据仅能研究企业规模对企业利润的影响程度,时间序列数据仅能研究技术进步对企业利润的影响,而面板数据同时考虑了截面和时间两个维度,可以同时研究企业规模和技术进步对企业利润的影响。

正因为面板数据所具有的独特优势,许多模型从截面数据扩展到面板数据框架下。通过 findit panel data 命令可以发现目前Stata已有许多相关面板数据模型命令,包括(不限于):

  • xtreg:普通面板数据模型,包括固定效应与随机效应 `
  • xtabond/xtdpdsys/xtabond2/xtdpdqml/xtlsdvc:动态面板数据模型
  • spxtregress/xsmle: 空间面板数据模型
  • xthreg:面板门限模型
  • xtqreg/qregpd/xtrifreg:面板分位数模型
  • xtunitroot:面板单位根检验
  • xtcointtest/ xtpedroni/xtwest:面板协整检验
  • sfpanel: 面板随机前沿模型
  • xtpmg/xtmg:非平稳异质面板模型

下面以 Kleiber 和 Zeileis (2008) 的Grunfeld.dt数据集为例,Grunfeld.dt数据集是10间公司,说明运用面板数据模型的一般步骤。

. webuse grunfeld,clear

. list in 1/5
     +--------------------------------------------------+
     | company   year   invest   mvalue   kstock   time |
     |--------------------------------------------------|
  1. |       1   1935    317.6   3078.5      2.8      1 |
  2. |       1   1936    391.8   4661.7     52.6      2 |
  3. |       1   1937    410.6   5387.1    156.9      3 |
  4. |       1   1938    257.7   2792.2    209.2      4 |
  5. |       1   1939    330.8   4313.2    203.4      5 |
     +--------------------------------------------------+

. xtset company year,yearly //设置面板数据格式,yearly表示年度数据,详情参考help(xtset)
       panel variable:  company (strongly balanced)
        time variable:  year, 1935 to 1954
                delta:  1 year

在stata中 xtreg 可以方便实现面板固定效应模型,详情参考help(xtreg)

固定效应模型:表示你打算比较的就是你现在选中的这几组。例如,我想比较3种药物的疗效,我的目的就是为了比较这三种药的差别,不想往外推广。这三种药不是从很多种药中抽样出来的,不想推广到其他的药物,结论仅限于这三种药。“固定”的含义正在于此,这三种药是固定的,不是随机选择的。

. xtreg invest mvalue kstock,fe  //fe表示固定效应

Fixed-effects (within) regression     Number of obs     = 200
Group variable: company               Number of groups  = 10
R-sq:                                 Obs per group:
     within  = 0.7668                          min = 20
     between = 0.8194                          avg = 20.0
     overall = 0.8060                          max = 20
     
                                           F(2,188)= 309.01
corr(u_i, Xb)  = -0.1517                   Prob > F= 0.0000
------------------------------------------------------------------------------
      invest |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      mvalue |   .1101238   .0118567     9.29   0.000     .0867345    .1335131
      kstock |   .3100653   .0173545    17.87   0.000     .2758308    .3442999
       _cons |  -58.74393   12.45369    -4.72   0.000    -83.31086     -34.177
-------------+----------------------------------------------------------------
     sigma_u |  85.732501
     sigma_e |  52.767964
         rho |  .72525012   (fraction of variance due to u_i)
------------------------------------------------------------------------------
F test that all u_i=0: F(9, 188) = 49.18                     Prob > F = 0.0000

想了解更多的stata具体的时间序列和面板数据,参考stata官方教程:https://www.stata-press.com/data/r16/ts.html

在学习使用Stata时,我们不需要记忆任何命令,需要在对应的工具栏中找到命令的位置,查看示例,或者使用help(命令),了解命令的使用方法即可。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 多项式Logit模型是一种用于分析多个离散选择之间关系的统计模型。它是一种广义线性模型,用于预测每个选择的概率,并且假设每个选择的概率是由一组解释变量的线性组合来决定的。该模型通常用于市场研究、消费者行为分析和投票行为分析等领域。 ### 回答2: 多项式logit模型是一种广泛运用于分析离散选择数据的模型。在多项式logit模型中,每个个体被认为是从一组有限的可能性中选择出一种结果。例如,在商品购买选择中,一个人可能会选择购买产品A、B或C中的一个,而不是其他商品,这些选择分别被视为不同的类别。多项式logit模型的主要目的是对这些可能选择做出明确的预测和解释。 多项式logit模型的核心概念是选择概率。选择概率是指某个个体对一组可能选择结果的选择概率分布。在多项式logit模型中,通过特定的参数设置,可以计算和预测每个可能选择结果的概率。这些参数通常是从观察到的选择数据中推断出来的。 多项式logit模型的优点是可以同时处理多个选择结果,同时还可以对连续和离散的因素进行建模分析。它还可以解决多重选择与相互依存的问题,并考虑到每个选择结果之间的相关性。然而,它的局限性在于对于大型数据集来说,计算和模型拟合可能相对较慢。 总之,多项式logit模型是一种广泛使用的模型,可以用于分析离散选择数据。虽然它存在一些限制,但由于其适用性广泛,仍然经常被应用在实际数据分析中。 ### 回答3: 多项式逻辑回归模型(Multinomial Logit Model)是一种广义的线性回归模型,常用于分类问题的建模。对于一个具有n个不同类别的分类问题,多项式逻辑回归模型可以通过将其转化成n个二元分类问题来进行建模。因为对于每一个样本,其只能归属于n个类别中的某一个,所以将分类问题转化为二元分类问题是合理的。 多项式逻辑回归模型利用逻辑函数将分类问题转化为概率估计问题。逻辑函数的表达式为: P(y=i|x) = exp(βi×x) / (∑j=1~n exp(βj×x)) 其中y是分类的结果,x是样本的特征向量,β是模型的参数,P(y=i|x)表示当样本特征为x时,其属于第i类的概率。 多项式逻辑回归模型的参数估计可以使用极大似然估计方法,其中对数似然函数的表达式为: log L(β) = ∑i=1~N ∑j=1~n (yij×βj×xij - log(1 + ∑k=1~n exp(βk×xij))) 其中N是样本数,yij表示样本i是否属于类别j,xij是样本i的第j个特征,βj是模型的参数。 多项式逻辑回归模型在分类问题中使用较为广泛,其特点是可以处理多个类别的问题,并且具有较好的可解释性。然而,其也存在一些缺点,如需要较大的样本量和特征数量,模型求解的时间较长等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RunsenLIu

顺便点一个赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值