精华内容
下载资源
问答
  • 2021-10-08 11:19:50

    目录

    按类别求均值,然后创建一个新的变量

    缩尾处理

    日期处理

    连续变量处理成虚拟变量

    按条件删除数据


    按类别求均值,然后创建一个新的变量

    bysort year industry: egen meanvariable=mean(variable)
    
    //year industry :分组的类别
    //meanvariable  :新变量的名称
    //variable      :均值变量
    
    //如表所示的样例
    bysort category: egen mean_variable=mean(variable)
    variablecategorymean_variable
    10110.5
    11110.5
    22222
    31332
    32332
    33332

    缩尾处理

    处理常见的异常值

    winsor wage, gen(wage_w) p(0.025)
    
    //默认为双尾处理
    //wage :需处理的变量
    //wage_w : 处理后的新变量
    //0.025:处理的百分位,即98.5%以上取%98.5%位置的值,2.5%以下取2.5%位置的值
    //通常情况下,对所有连续变量做上下1%的缩尾(winsor)处理
    
    winsor wage, gen(wage_wh) p(0.025) lowonly    //左侧缩尾
    winsor wage, gen(wage_wh) p(0.025) highonly   //右侧缩尾
    
    histogram wage_wh,  ylabel(, angle(0)) xtitle("wage_wh") //可以作图显示结果
    
    

    日期处理

    提取日期中的年份

    //日期为日期格式
    gen year = year(日期)
    
    //日期为字符串格式
    gen year = substr(日期, 1, 4)
    destring year, replace force //字符转换成数值

    连续变量处理成虚拟变量

    gen dummy_variable = 0
    replace dummy_variable = 1 if continuous_variable > 1
    
    //dummy_variable:新生成的虚拟变量
    //continuous_variable: 处理的连续变量

    变量重新命名

    ren var1 var123 // 把var1重新命名为var123

    按条件删除数据

    drop if category == 16
    
    //删除类别为16的数据

    多个判断条件

    replace modresp=1 if (modality==1 & response==1) 

    常用函数

    abs(x) 绝对值
    
    exp(x) 指数函数
    
    log(x) 自然对数
    
    log10(x) 常用对数
    
    sqrt(x) 平方根
    
    uniform(x) 生成(0,1)内均匀分布的伪随机数
    
    length(x) 计算长度
    
    substr(s,n1,n2) 获得从S的n1个字符开始的n2个字符组成的字符串
    
    real(x) 将字符串s转换为数值函数
    
    trim(x) 去除字符串前面和后面的空格
    
    int(x) 去掉x的小数部分,得到整数
    
    sum(X) 求和
    
    max(x) min(x) 最大值最小值
    
    _n 当前观察值的位置
    
    _N 观察值的总个数
    
    

    结果输出

    esttab m1 m2 m3 using Table1-satisfaction.rtf, title(Table1) mtitle(control main moderating) ///
                  drop(*industry_id *Year) b(3) star(* 0.1 ** 0.05 *** 0.01) ///
    			  se pr2 aic bic scalar(N  industry year ll ll_0) ///
    			  append nogaps compress nobase
    
    b(3):系数为三位小数
    se:  报告标准误
    pr2: 伪R方
    ll:  likelihood

    更多相关内容
  • 我是个stata小白!啥也不懂!想问问各位大神,在Excel中直接先取好对数,直接导入stata,但是对于原始数值为负数不能取对数要怎么处理呢?可以空着吗?或者用0或1表示?
  • 数据标准处理

    千次阅读 2021-11-06 17:19:22
    数据的标准(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和

    一、为什么进行标准化处理

    在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理。

    数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。

    二、有哪些常用方法呢?

    1. 规范化方法

    min-max标准化(Min-maxnormalization)也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

    2. 正规化方法

    • 这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。
    • z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
    • spss默认的标准化方法就是z-score标准化。
    • 用Excel进行z-score标准化的方法:在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。

    步骤如下:
    1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;
    2.进行标准化处理:
    zij=(xij-xi)/si
    其中:zij为标准化后的变量值;xij为实际变量值。
    3.将逆指标前的正负号对调。
    标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

    3. 归一化方法

    4. 其他

    log函数转换通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:看了下网上很多介绍都是x*=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。

    atan函数转换用反正切函数也可以实现数据的归一化:使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。而并非所有数据标准化的结果都映射到[0,1]区间上,其中最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法:z-score 标准化(zero-meannormalization)也叫标准差标准化,经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

    PS 对数化处理

    一、 为什么要进行对数化处理

    1. 缩小数据的绝对数值,方便计算。

    例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了;在实证模型中,缩小值之后相关系数数值会更大一些(原值可能需要四到五位有效数字)。

    2. 取对数后,可以将乘法计算转换称加法计算。

    3. 某些情况下,在数据的整个值域中的在不同区间的差异带来的影响不同。

    从log函数的图像可以看到,自变量x的值越小,函数值y的变化越快,还是前面的例子,同样是相差了300,但log500-log200>log800-log500,因为前面一对的比后面一对更小。也就是说,对数值小的部分差异的敏感程度比数值大的部分的差异敏感程度更高。这也是符合生活常识的,例如对于价格,买个家电,如果价格相差几百元能够很大程度影响你决策,但是你买汽车时相差几百元你会忽略不计了。

    4. 取对数之后不会改变数据的性质和相关关系,但压缩了变量的尺度。

    例如800/200=4, 但log800/log200=1.2616,数据更加平稳,也消弱了模型的共线性、异方差性等。

    5. 且所得到的数据易消除异方差问题。

    6. 在经济学中,常取自然对数再做回归,这时回归方程为 lnY=a lnX+b ,两边同时对X求导,1/Y*(DY/DX)=a*1/X, b=(DY/DX)*(X/Y)=(DY*X)/(DX*Y)=(DY/Y)/(DX/X) 这正好是弹性的定义。

    当然,如果数据集中有负数当然就不能取对数了。实践中,取对数的一般是水平量,而不是比例数据,例如变化率等。

    二、在进行对数化处理的过程中为什么要加1

    如果在原始数据中,有一些数为0,在进行对数化的过程中可能会造成数据的缺失。+1不会让有效样本量变少

    展开全文
  •  作者:连玉君 | 杨柳 ( 知乎 | 简书 | 码云 )   注:该文已发表在《郑州航空工业管理学院学报》, 2018, Vol.... ……Stata 现场培训报名中……   事倍功半 vs. 事半功倍 当...

    在这里插入图片描述

    作者:连玉君 | 杨柳 ( 知乎 | 简书 | 码云 )

    注:该文已发表: 连玉君, 杨柳.《郑州航空工业管理学院学报》, 2018, 36(2): 90-103. 【 -点击下载-】

    点击查看完整推文列表

    Stata连享会   计量专题 || 精品课程 || 简书推文 || 公众号合集

    连享会内生性专题……

    事倍功半 vs. 事半功倍
    当需要控制公司个体效应、面对成千上万家公司的数据资料时,你会如何处理?或许你会首先想到对每家公司生成虚拟变量,但是这种做法的工作量实在是太大了!那么,有没有事半功倍的方法呢?下面,小编就带你学习Stata软件中因子变量的使用方法。

    1. 问题背景

    实证分析中,我们经常需要在模型中加入反映类别的虚拟变量,以便控制不可观测的组间差异。而在另一些分析中,为了刻画调节效应,尚需在模型中加入变量的交乘项平方项。传统的做法是,预先生成虚拟变量或交乘项,进而将它们加入模型。然而,当虚拟变量或交乘项的数目较多时,上述方法就显得尤为不便,不但浪费计算机内存,也会严重降低我们的工作效率。

    在Stata中,我们可以使用因子变量(Factor Variable)简化操作步骤、快捷地在回归模型中加入虚拟变量交乘项平方项高次项。更为重要的是,由于引入交乘项或平方项后,解释变量对被解释变量的边际影响不再是常数,而是某个变量(调节变量)的函数,在有些模型设定下,这种关系可能是非线性的。此时,若使用因子变量,并配合Stata中的marginsmarginsplot命令,可以非常便捷、直观地分析关键变量的边际效应

    2. 什么是因子变量

    因子变量(Factor Variable)是对现有变量的延伸,是从类别变量中生成虚拟变量、设定类别变量之间的交乘项、类别变量与连续型变量之间的交乘项或连续变量之间的交乘项(或多项式)。在Stata中的大多数回归命令和回归后的估计命令中都可以使用这些因子变量[1]

    因子变量的五种运算符及其含义如下表1所示:

    表1 因子变量的运算符及含义在这里插入图片描述

    以研究妇女工资的决定因素为例,使用Stata软件自带的数据文件 nlsw88.dta。该数据包含了1988年采集的2246个美国妇女的资料,包括:小时工资wage、每周工作时数hours、种族race、职业occupation、年龄age、是否大学毕业collgrad、当前职业的工作年限tenure、是否结婚married、是否居住在南部地区south、合计工作年限ttl_exp等变量。其中,小时工资wage、每周工作时数hours、年龄age、当前职业的工作年限tenure、合计工作年限ttl_exp为连续型变量;种族race为类别变量(1代表白种人white,2代表黑种人black,3代表其他人种other)、职业occupation为类别变量(13个职业类别);是否大学毕业collgrad、是否结婚married、是否居住在南部地区south为虚拟变量。

    在这份数据中有一个表示种族的类别变量race,取值为1、2、3,分别对应白人黑人其他人种。假设我们想在模型中加入一个反映种族的虚拟变量black,当某个妇女是黑人时,black取值为1,否则为0。则传统的做法如下[3]

    . sysuse "nlsw88", clear
    . gen black=1
    . replace black=0 if race!=2
    . reg wage black
    

    若延续这一思路,但使用因子变量来生成black变量,则命令为:

    . gen black = 2.race
    

    只需要一条命令,而且含义非常明确。这里2.race本质上是一个条件判断语句:判断某一行观察值中的race变量取值是否为2,若是,则返回1到变量black中,否则返回0

    然而,在多数情况下,我们的目的只是希望得到虚拟变量black的估计系数,而不希望生成或存储这个变量[4]。Stata中的因子变量语法完全注意到了这个问题。使用因子变量的标准做法如下:

    . sysuse "nlsw88.dta", clear
    . reg wage 2.race
    

    注意,我们无需预先生成black变量,而是直接在回归模型中加入了2.race因子变量。有些读者注意到,race变量有三个取值,因此,我们可以在模型中放入两个虚拟变量,此时可以书写如下命令:

    . reg wage i.race
    

    回归结果如下所示:

    (部分回归结果省略)
    ------------------------------------------------------------------------------
            wage |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
            race |
          black  |     -1.238      0.276    -4.48   0.000       -1.781      -0.696
          other  |      0.468      1.133     0.41   0.680       -1.754       2.690
                 |
           _cons |      8.083      0.142    57.06   0.000        7.805       8.361
    ------------------------------------------------------------------------------
    
    

    从上述结果中可以看到,回归模型中加入了black虚拟变量和other虚拟变量,分别对应race变量的第二个和第三个类别,而第一个类别white被Stata默认作为基准组,目的在于防止完全共线性。black变量的系数值为-1.238,表示黑人的平均工资比白人低1.238个单位,并在统计上显著;other变量的系数值为0.468,表示其他人种的平均工资比白人高0.468个单位,但是在统计上不显著。

    在实证分析中,有时会根据研究内容的需要改变基准组的设定,此时可使用ib.b.的前缀,具体写法如下表2中所描述:

    表2 基准组的运算符及含义
    在这里插入图片描述

    在实证分析中,变量的交乘项高次项往往是重要的解释变量。以研究妇女工资的决定因素为例,若我们想在模型中加入黑人每周工作时数的变量,则传统做法是预先生成一个虚拟变量 black 代表是否黑人,再生成一个新变量 black_x_hours 表示黑人与每周工作时数的交乘项,然后再将这个新变量放入回归模型中。Stata命令为:

    . gen black=1
    . replace black=0 if race!=2
    . gen black_x_hours = black * hours
    . reg wage black_x_hours
    

    若在Stata中使用因子变量实现上述过程,则命令十分简洁:

    . reg wage 2.race#c.hours
    

    下面,我们介绍如何在Stata中使用因子变量表示变量的交乘项高次项。我们以研究妇女工资的决定因素为例进行说明。

    (1) 两个类别变量的交乘项:
    在回归模型中加入种族race和职业类别occupation交乘项,Stata命令为:

    . reg wage i.race#i.occupation
    

    若在回归模型中既要放入种族race和职业类别occupation虚拟变量,又需要同时放入这两个变量的交乘项,则在回归命令中使用i.race##i.occupation,相应的命令为:

    . reg wage i.race##i.occupation
    

    (2) 类别变量与连续变量的交乘项:
    在回归模型中加入种族race和每周工作时数hours的交乘项,Stata命令为:

    . reg wage i.race#c.hours
    

    需要注意的是,在上例中,由于我们把hours变量视为连续变量,因此,需要在其前面加上c.符号以便告知Stata该变量是连续变量

    (3) 连续变量与连续变量的交乘项(高次项):
    在回归模型中加入年龄age变量,以及其平方项,Stata命令如下:

    . reg wage c.age##c.age
    

    上述命令中c.age表示年龄age变量被当成连续型变量。如果我们在Stata命令中使用i.age,则年龄age变量被当成类别变量处理,此时,类别的个数为年龄age变量中不同取值的个数。

    连享会计量方法专题……

    3. 常用回归模型的因子变量表述

    3.1 范例1:邹氏检验 (Chow test)

    由于不同组别之间可能会存在差异(截距项或斜率项存在差异),因此,我们需要检验这些差异在统计上是否显著。这时,我们可以使用邹氏检验。以研究妇女工资的影响因素为例,我们可以使用chowtest命令检验工会成员与非工会成员两个样本组中工资影响因素是否存在差异(或称之为存在结构变化),Stata命令如下:

    . global xx "hours age tenure ttl_exp married"
    . chowtest wage $xx, group(union) detail
    

    事实上,我们也可以使用因子变量的语法,在回归模型中加入分组变量其他控制变量交乘项,然后再联合检验分组变量的系数以及所有交乘项的系数是否都等于0。此时,即使我们不使用chowtest命令,也可以轻松实现邹氏检验,Stata命令如下:

    . global xx "hours age tenure ttl_exp married"
    . reg wage $xx i.union i.union#c.($xx)
    . testparm i.union i.union#c.($xx)
    

    3.2 范例2:双向固定效应模型

    在实证分析过程中,经常需要在模型中加入反映年度、公司或行业特征虚拟变量。当虚拟变量的数目众多时,采用手动输入变量的方式会非常耗时。例如,下述模型(1)是文献中广泛应用的双向固定效应模型
    y i t = α i + λ t + x i t ′ β + ε i t (1) {{y}_{it}}={{\alpha }_{i}}+{{\lambda }_{t}}+{{x}_{it}}^{'}\beta +{{\varepsilon }_{it}} \tag{1} yit=αi+λt+xitβ+εit(1)
    上式等价于
    y i t = ∑ i = 1 N D i ⋅   α i + ∑ t = 2 T W t ⋅   λ t + x i t ′ β + ε i t (2) {{y}_{it}}=\sum\limits_{i=1}^{N}{{{D}_{i}}\cdot }\ {{\alpha }_{i}}+\sum\limits_{t=2}^{T}{{{W}_{t}}\cdot }\ {{\lambda }_{t}}+{{x}_{it}}^{'}\beta +{{\varepsilon }_{it}} \tag{2} yit=i=1NDi αi+t=2TWt λt+xitβ+εit(2)
    其中, D i D_i Di 是对应于每家公司的虚拟变量,对于公司 i i i D i = 1 D_i=1 Di=1,否则 D i = 0 D_i=0 Di=0。对于一个有 N = 1000 N=1000 N=1000 家公司的面板数据而言,共有 1000 个虚拟变量。 W t W_t Wt T − 1 T-1 T1 个年度虚拟变量[5], 定义方式与 D i D_i Di 相似。

    若使用因子变量,则语法很简单[6]

    . reg y x1 x2 x3 i.id i.year
    

    其中,i.id 表示 N-1 个公司虚拟变量(Stata 会默认将一家公司作为基准组),即(1)式中的 α i {{\alpha}_{i}} αi

    当然,我们也可以用 xtreg 命令自带的 fe 选项来控制个体效应 ,同时使用 因子变量 来加入年度虚拟变量 ,命令如下:

    . xtreg y x1 x2 x3 i.year, fe
    

    3.3 范例3:倍分法 DID 模型

    在实证分析中,常常需要分析政策实施后带来的效果。这时,我们就需要采集实验组控制组两组样本(实验组的样本代表政策实施前后的情况,控制组的样本代表不实施政策的情况),再把这两组样本合并为一份数据后进行回归分析。在建模时,我们需要设定一个是否为实验组或控制组的处理虚拟变量 Treat 放入模型,还需要设定一个反映政策实施时间前与实施后的时间虚拟变量 Time 放入模型,此外,还需要在模型中加入 Treat 变量与 Time 变量的交乘项,该交乘项的系数估计值 a 3 {{a}_{3}} a3 就是政策实施后带来的效果,即实验组在政策实施后与假设未实施政策的差异。回归模型如下式(3)所示:
    y = a 0 + a 1 T r e a t + a 2 T i m e + a 3 T r e a t × T i m e + x ′ β + ε (3) y={{a}_{0}}+{{a}_{1}} {Treat}+{{a}_{2}} {Time}+{{a}_{3}} {Treat}\times {Time}+{{x}^{'}}\beta +\varepsilon \tag{3} y=a0+a1Treat+a2Time+a3Treat×Time+xβ+ε(3)

    在 Stata 中的命令写法如下:

    . reg y Treat Time Treat#Time x1 x2 x3
    *-或者写为
    . reg y Treat##Time x1 x2 x3
    

    在多期 DID 分析中,我们常常需要加入年度虚拟变量处理变量交乘项来检验共同趋势假设(common trend)以及政策效果。例如,在 Acemoglu and Angrist(2001) 文中,作者采集了1988年至1997年的人口调查数据,将样本分为残疾人与非残疾人,使用多期DID模型研究了1992年美国对残疾人工作保护法案(ADA)的实施效果。文中模型设定如下(pp.925):

    y i t = a 0 + x i t ′ ⋅ γ + p i t ′ ⋅ η + x i t ′ ⋅ p i t ⋅ β + d i t ′ ⋅ δ + d i t ′ ⋅ p i t ⋅ α t + ε i t ) (4) {{y}_{it}}={{a}_{0}} + {{x}_{it}}^{'}\cdot {\gamma} + {{p}_{it}}^{'}\cdot {\eta} + {{x}_{it}^{'}}\cdot {{p}_{it}}\cdot {\beta}+ {{d}_{it}^{'}}\cdot \delta+ {{d}_{it}^{'}}\cdot {{p}_{it}}\cdot {{\alpha}_{t}}+{{\varepsilon}_{it}} \tag{4}) yit=a0+xitγ+pitη+xitpitβ+ditδ+ditpitαt+εit)(4)

    其中, i i i 为残疾人个体; t t t 为年份; y i t {{y}_{it}} yit 为工作周数或周平均工资; x i t ′ {{x}_{it}^{'}} xit 为一系列控制变量, p i t {{p}_{it}} pit 为时间趋势项; d i t {{d}_{it}} dit 为是否残疾,其系数为 δ \delta δ α t \alpha_t αt 为随年份变化的实施 ADA 与未实施 ADA 对残疾人工作保护效应的系数。当 t ≥ 1992 t\ge1992 t1992 年时, α t \alpha_t αt 量化了实施ADA之后对残疾人工作保护的效果(使用非残疾人作为控制组);当 t < 1992 t<1992 t<1992 年时, α t \alpha_t αt 检验了实施 ADA 之前的各年份中残疾人和非残疾人的工作周数或周平均工资是否在统计上具有显著差异,相当于同时进行了DID模型的 “共同趋势假设” 的检验,若 α t \alpha_t αt 系数在1992年之前不显著,表明存在**“共同趋势”**。Stata 命令如下[7]

    . use "ABA_JPE2001.dta", clear
    . global controls "i.age_G i.edu_G i.race_G i.region"
    . reg wkswork1 i.year##($controls) i.disabled##i.year
    

    Stata回归结果如下:

    (部分回归结果省略)
    -----------------------------------------------------------------------------------
             wkswork1 |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    ------------------+----------------------------------------------------------------
    ------------------|----------------------部分回归结果省略----------------------------
                      |
        disabled#year |
         Disabl#1988  |  -.6873656   .7197987    -0.95   0.340    -2.098154    .7234227
         Disabl#1989  |  -.5385104   .7056609    -0.76   0.445    -1.921589    .8445682
         Disabl#1990  |  -2.289956   .6945586    -3.30   0.001    -3.651274   -.9286372
         Disabl#1991  |  -2.158817   .6916205    -3.12   0.002    -3.514376    -.803257
         Disabl#1992  |  -1.386539   .6873483    -2.02   0.044    -2.733725   -.0393526
         Disabl#1993  |  -2.743325   .6953003    -3.95   0.000    -4.106097   -1.380553
         Disabl#1994  |  -3.917873   .7198205    -5.44   0.000    -5.328704   -2.507042
         Disabl#1995  |  -3.702671    .748066    -4.95   0.000    -5.168863    -2.23648
         Disabl#1996  |  -4.472484   .7373381    -6.07   0.000    -5.917649   -3.027319
                      |
                _cons |   41.05231   .4546278    90.30   0.000     40.16125    41.94337
    -----------------------------------------------------------------------------------
    

    3.4 范例4:超越对数生产函数

    很多文献使用超越对数生产函数估计生产效率,模型中会包含投入要素 KL 的高阶项,包括平方项和二者的交乘项[8]。例如在 Kumbhakar(1989) 中,作者通过在模型中加入二次项来捕捉要素的交互影响和潜在的非线性关系,模型如下式(5)所示。

    l n y = α + ∑ k = 1 k β k ⋅ l n x k + 1 2 ∑ k = 1 k ∑ m = 1 m γ k m ⋅ l n x k ⋅ l n x m (5) {ln{y}}={\alpha} + {\sum_{k=1}^{k}} {{\beta} _{k}} \cdot {ln{x}_{k}} + {\frac {1}{2}} {\sum_{k=1}^{k}} {\sum_{m=1}^{m}} {{\gamma} _{km}}\cdot {ln{x}_{k}} \cdot {ln{x}_{m}} \tag{5} lny=α+k=1kβklnxk+21k=1km=1mγkmlnxklnxm(5)

    此时,使用因子变量会让Stata中的命令变得异常简洁,如下所示:

    . webuse frontier1.dta, clear  
    . global y "lnoutput"            // y
    . global x "lnlaborlncapital"    // x1 x2
    *-超越对数生产函数
    . sfcross $y c.($x)##c.($x)      // Eq.(5)
    

    4. 边际效应分析和图形化呈现

    一些实证研究的文献中常常加入变量的交乘项以反映可能存在的调节效应,例如 Faulkender and Wang(2006)戴魁早和刘友金(2016)张苏和高扬(2012) [9],此时最重要的是分析 xy边际效应

    y = α 1 + x β 1 + z β 2 + ( x ⋅ z ) β 3 + ε (6) {y} = {{\alpha} _{1}} + {x}{{\beta}_{1}} + {z}{{\beta} _{2}} + ({x}\cdot {z}){{\beta}_{3}} + {\varepsilon} \tag{6} y=α1+xβ1+zβ2+(xz)β3+ε(6)

    xy 的边际影响为:

    ∂ y ∂ x = β 1 + z β 3 \frac{\partial {y}}{\partial {x}} = {{\beta}_{1}} + {z} {{\beta} _{3}} xy=β1+zβ3

    显然,xy 的边际影响取决于 z 的取值。这种边际效应分析若是采用手动计算会非常繁琐,而后续的图形呈现则更为复杂。然而,若是借助因子变量,并配合Stata中的marginsmarginsplot命令,对于包含交乘项的模型中的边际效应的分析和图形化展示都变得异常轻松。

    下面,我们以研究妇女工资的决定因素为例进行说明。使用Stata软件的自带数据nlsw88.dta(1988年美国妇女小时工资),以wage(妇女的小时工资)作为被解释变量,以race(种族类别)collgrad(是否大学毕业)race与collgrad的交乘项作为解释变量建立线性回归模型,Stata中的命令如下:

    . sysuse "nlsw88.dta", clear
    . reg wage i.race##collgrad
    

    回归结果如下所示:

    (部分回归结果省略)
    -------------------------------------------------------------------------------------
                   wage |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    --------------------+----------------------------------------------------------------
                   race |
                 black  |     -1.442      0.297    -4.85   0.000       -2.026      -0.859
                 other  |     -0.380      1.348    -0.28   0.778       -3.024       2.263
                        |
               collgrad |
          college grad  |      2.981      0.312     9.54   0.000        2.368       3.593
                        |
          race#collgrad |
    black#college grad  |      2.502      0.676     3.70   0.000        1.177       3.827
    other#college grad  |      1.678      2.297     0.73   0.465       -2.826       6.182
                        |
                  _cons |      7.318      0.158    46.25   0.000        7.008       7.629
    -------------------------------------------------------------------------------------
    

    我们使用margins命令来计算种族(race)与是否大学毕业(collgrad)的交乘项的各个类别妇女小时工资(wage)预测边际值,Stata命令和结果如下所示:

    . margins i.race#collgrad
    

    计算结果如下所示:

    Adjusted predictions                            Number of obs     =      2,246
    Model VCE    : OLS
    
    Expression   : Linear prediction, predict()
    
    -----------------------------------------------------------------------------------------
                            |            Delta-method
                            |     Margin   Std. Err.      t    P>|t|     [95% Conf. Interval]
    ------------------------+----------------------------------------------------------------
              race#collgrad |
    white#not college grad  |   7.318251   .1582176    46.25   0.000     7.007983     7.62852
        white#college grad  |   10.29895   .2693243    38.24   0.000     9.770797     10.8271
    black#not college grad  |   5.875918   .2519298    23.32   0.000     5.381878    6.369958
        black#college grad  |   11.35861    .543853    20.89   0.000      10.2921    12.42512
    other#not college grad  |   6.938195   1.338677     5.18   0.000     4.313019    9.563371
        other#college grad  |   11.59678   1.839835     6.30   0.000     7.988818    15.20474
    -----------------------------------------------------------------------------------------
    

    使用marginsplot命令将计算结果用图的形式表示,Stata命令和结果如下所示:

    . marginsplot
    

    图1 种族与是否大学毕业交乘项各类别的妇女小时工资的预测边际值

    在这里插入图片描述

    从图1中可以直观的看到,不论种族类别,大学毕业的妇女的平均工资高于非大学毕业的妇女,该结果符合我们的一般认知;另外,我们从图中还发现一个有趣的结果,非大学毕业的白人妇女的平均工资高于非大学毕业的黑人妇女,而大学毕业的白人妇女的平均工资低于大学毕业的黑人妇女。

    下面,我们使用margins命令附加atmeans选项来计算当其他变量取均值不同种族类别的妇女小时工资的预测边际值,Stata命令和结果如下所示:

    . margins i.race, atmeans
    *-或者写为
    . margins race, atmeans
    

    计算结果如下所示:

    Adjusted predictions                            Number of obs     =      2,246
    Model VCE    : OLS
    
    Expression   : Linear prediction, predict()
    at           : 1.race          =    .7288513 (mean)
                   2.race          =    .2595726 (mean)
                   3.race          =    .0115761 (mean)
                   0.collgrad      =    .7631345 (mean)
                   1.collgrad      =    .2368655 (mean)
    
    ------------------------------------------------------------------------------
                 |            Delta-method
                 |     Margin   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
            race |
          white  |   8.024276    .136558    58.76   0.000     7.756482    8.292069
          black  |   7.174578    .231424    31.00   0.000      6.72075    7.628406
          other  |   8.041653   1.110659     7.24   0.000     5.863625    10.21968
    ------------------------------------------------------------------------------
    

    使用marginsplot命令将计算结果用图的形式表示,Stata命令和结果如下所示:

    . marginsplot
    

    图2 不同种族类别的妇女小时工资的预测边际值

    在这里插入图片描述

    从图2中可以直观的看到,白人与其他种族的妇女的平均工资高于黑人妇女。

    两个连续变量交乘项对被解释变量的边际效应也可以使用margins命令来计算。我们仍以研究妇女工资的决定因素为例进行说明。在回归模型中加入tenure(当前职业的工作年限)及其平方项,并将hours(每周工作时数)age(妇女年龄)married(是否结婚)south(是否居住在南部地区)race(种族类别)作为控制变量,Stata命令如下所示:

    . global xx "hours age married south i.race"
    . reg wage c.tenure##c.tenure $xx
    

    回归结果如下:

    (部分回归结果省略)
    -----------------------------------------------------------------------------------
                 wage |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    ------------------+----------------------------------------------------------------
               tenure |   .3015859   .0704148     4.28   0.000        .1635    .4396718
                      |
    c.tenure#c.tenure |  -.0076366   .0037758    -2.02   0.043    -.0150411   -.0002321
                      |
                hours |   .0749604   .0115722     6.48   0.000     .0522669    .0976539
                  age |  -.0850009   .0388991    -2.19   0.029    -.1612832   -.0087185
              married |  -.4619864   .2544385    -1.82   0.070     -.960949    .0369761
                south |  -1.283751   .2493374    -5.15   0.000     -1.77271   -.7947914
                      |
                 race |
               black  |  -1.221256   .2870854    -4.25   0.000    -1.784241   -.6582719
               other  |   .3129332   1.098312     0.28   0.776    -1.840893     2.46676
                      |
                _cons |   8.183759   1.632092     5.01   0.000     4.983171    11.38435
    -----------------------------------------------------------------------------------
    

    由于在模型中加入了 tenure 的平方项,因此,tenurewage 的边际效应将会受到 tenure 取值的影响。上述Stata命令对应的模型设定如下:

    w a g e = α + t e n u r e β 1 + ( t e n u r e ⋅ t e n u r e ) β 2 + x 3 β 3 + ⋯ + x 8 β 8 + ε (7) {wage}={\alpha} + {tenure}{{\beta} _{1}} + ({tenure}\cdot {tenure}){{\beta} _{2}} + {{x}_{3}}{{\beta} _{3}} +\cdots + {{x}_{8}}{{\beta} _{8}} + {\varepsilon} \tag{7} wage=α+tenureβ1+(tenuretenure)β2+x3β3++x8β8+ε(7)

    tenurewage 的边际影响为:

    ∂ w a g e ∂ t e n u r e = β 1 + 2 ⋅ t e n u r e ⋅ β 2 \frac{\partial {wage}}{\partial {tenure}} = {{\beta} _{1}} + 2\cdot {tenure}\cdot {{\beta} _{2}} tenurewage=β1+2tenureβ2

    显然,当 tenure 取值不同时,tenurewage 的边际效应是不相同的。因此,需要先使用描述性统计分析的命令(如sum tenure)查看 tenure 取值的范围,然后再计算当 tenure 取不同的值所对应的边际效应,Stata命令如下:

    . preserve
    . keep if e(sample)
    . sum tenure
    . restore
    . margins, dydx(tenure) at(tenure=(0 1(3)25 25.9))
    

    计算结果如下所示:

    Average marginal effects                        Number of obs     =      2,227
    Model VCE    : OLS
    
    Expression   : Linear prediction, predict()
    dy/dx w.r.t. : tenure
    
    1._at        : tenure          =           0
    2._at        : tenure          =           1
    3._at        : tenure          =           4
    4._at        : tenure          =           7
    5._at        : tenure          =          10
    6._at        : tenure          =          13
    7._at        : tenure          =          16
    8._at        : tenure          =          19
    9._at        : tenure          =          22
    10._at       : tenure          =          25
    11._at       : tenure          =        25.9
    ------------------------------------------------------------------------------
                 |            Delta-method
                 |      dy/dx   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    tenure       |
             _at |
              1  |   .3015859   .0704148     4.28   0.000        .1635    .4396718
              2  |   .2863127   .0632764     4.52   0.000     .1622256    .4103998
              3  |   .2404932   .0427222     5.63   0.000     .1567136    .3242728
              4  |   .1946737   .0259414     7.50   0.000     .1438016    .2455457
              5  |   .1488542   .0233928     6.36   0.000     .1029801    .1947282
              6  |   .1030346   .0380523     2.71   0.007     .0284127    .1776566
              7  |   .0572151   .0580967     0.98   0.325    -.0567145    .1711447
              8  |   .0113956   .0795548     0.14   0.886    -.1446141    .1674053
              9  |  -.0344239   .1015342    -0.34   0.735    -.2335359    .1646881
             10  |  -.0802434   .1237575    -0.65   0.517    -.3229361    .1624492
             11  |  -.0939893   .1304534    -0.72   0.471    -.3498129    .1618343
    ------------------------------------------------------------------------------
    

    使用marginsplot命令将计算结果用图的形式表示,Stata命令和结果如下所示:

    . marginsplot, xlabel(,format(%3.1f) angle(60))
    

    图3 工作年限对妇女工资的平均边际效应
    在这里插入图片描述

    Stata中的多数命令都支持marginsmarginsplot命令。因此,即使对于非线性模型,如logit, tobit等,我们仍然可以借助这两个命令很方便地分析边际效应。

    5. 输出回归结果时的问题及解决办法

    以研究妇女工资的决定因素为例。wage(妇女的小时工资)作为回归模型的被解释变量,race(种族类别)collgrad(是否大学毕业)race与collgrad的交乘项作为解释变量,并将回归结果输出到Excel中,Stata命令和结果如下:

    . sysuse "nlsw88.dta", clear
    . reg wage i.race##collgrad
    . est store R1
    . esttab R1 using D:/Table_factor_1.csv, nogap replace
    

    表3 1988年美国妇女工资模型结果
    在这里插入图片描述

    我们发现在表3中有很多变量的系数值为 0,并缺失 t 统计量。造成这种情况的原因有二:一方面是由于有些虚拟变量作为了基准组,例如:1.race0.collgrad1.race#0.collgrad,Stata默认将它们作为基准组,所以就缺失这些基准组的估计系数值和标准误;另一方面是由于有些交乘项中的其中一个因子变量是基准组,其它变量与这个作为基准组的因子变量交乘后的交乘项就被忽略了,所以其估计系数值和标准误就会缺失,例如:1.race#1.collgrad2.race#0.collgrad3.race#0.collgrad。此时,可以使用esttab命令的drop()选项来屏蔽这些系数的显示,还可以使用nobasenoomit的选项,Stata命令和结果如下所示:

    *-输出结果(不显示基准组和忽略组的系数,使用drop选项)
    . esttab R1 using D:/Table_factor_2.csv, nogap      ///
    	     drop(1.race 0.collgrad 1.race#0.collgrad   ///
             1.race#1.collgrad 2.race#0.collgrad        ///
             3.race#0.collgrad) replace
    *-输出结果(不显示基准组和忽略组的系数,使用nobase与noomit选项)
    . esttab R1 using D:/Table_factor_3.csv, nogap nobase noomit replace
    

    表4 1988年美国妇女工资模型结果(删除缺失估计系数值的变量)
    在这里插入图片描述

    6. 小结

    本文介绍了Stata中因子变量产生虚拟变量交乘项的使用方法,以常用经典回归模型为例,提供了它们的Stata命令,并进一步提供了因子变量marginsmarginsplot命令相配合分析边际效应的示例。在Stata中的大多数命令中都可以使用因子变量的表述方法。该方法可以使Stata命令更加简洁,并能够大幅度提高实证分析的效率,但需要注意分析使用因子变量表述方法后得到的模型设定结构

    连享会计量方法专题……

    参考文献:

    • Acemoglu, D., J. D. Angrist, 2001, Consequences of Employment Protection? The Case of the Americans with Disabilities Act, Journal of Political Economy, 109 (5): 915-957. [PDF]
    • Altunbas, Y., M.-H. Liu, P. Molyneux, R. Seth, 2000, Efficiency and Risk in Japanese Banking, Journal of Banking & Finance, 24 (10): 1605-1628. [PDF]
    • Faulkender, M., R. Wang, 2006, Corporate Financial Policy and the Value of Cash, Journal of Finance, 61 (4): 1957-1990. [PDF]
    • Kumbhakar, S. C., 1989, Estimation of Technical Efficiency Using Flexible Functional Form and Panel Data, Journal of Business and Economic Statistics, 7 (2): 253-258. [PDF]
    • Wang, E. C., 2007, R&D Efficiency and Economic Performance: A Cross-Country Analysis Using the Stochastic Frontier Approach, Journal of Policy Modeling, 29 (2): 345-360. [PDF]
    • 戴魁早, 刘友金, 2016, 要素市场扭曲与创新效率——对中国高技术产业发展的经验分析, 经济研究, (7): 72-86.
    • 王德祥, 李建军, 2009, 我国税收征管效率及其影响因素——基于随机前沿分析(SFA)技术的实证研究, 数量经济技术经济研究, (4): 152-160.
    • 张苏, 高扬, 2012, 大学生学习行为与国家竞争力关联关系的实证研究, 管理世界, (4): 175-176.

    注释:
    [1] 详情参阅Stata帮助文件help fvvarlist
    [2] 详情参见Stata帮助文件help varlist
    [3] 为了便于说明,后续多数回归命令中都省略了控制变量。
    [4] 事实上,只要你的数据中存储了race变量,我们只需要保存好dofile文件,就无需生成black这个中间变量。
    [5] 之所以加入T - 1 个年度虚拟变量,是为了防止完全共线性。
    [6] 此处设定i.year会自动加入 T 个年度虚拟变量,但Stata会自动删除一个,以防完全共线性。
    [7] 文中实证分析所用的原始数据和相关程序可以从作者主页上下载:http://economics.mit.edu/faculty/acemoglu/data/aa2001。
    [8] 例如,Altunbas, Liu, Molyneux and Seth(2000) 使用超越对数成本函数估算了日本银行的效率和风险;Wang(2007) 则使用超越对数生产函数研究30个国家R&D效率;王德祥和李建军(2009) 基于超越对数生产函数估算了我国的税收流失率。
    [9] Faulkender and Wang(2006) 检验了由公司融资约束对现金持有边际市场价值的影响。戴魁早和刘友金(2016) 研究发现了要素市场扭曲对创新效率的影响存在着企业差异,企业规模在规避要素市场扭曲对创新效率的抑制效应中具有积极作用。张苏和高扬(2012) 的实证研究发现学生来源于城市或农村地区对国家竞争力的影响作用受到每周上网时间的影响,如果上网时间在每周8小时以下,城市大学生的学习行为落入“增进国家竞争力导向”上高效率区域而不是低效率区域的概率比农村大学生要高,否则要低。

    关于我们

    • 「Stata 连享会」 由中山大学连玉君老师团队创办,定期分享实证分析经验, 公众号:StataChina
    • 公众号推文同步发布于 CSDN简书知乎Stata专栏。可在百度中搜索关键词 「Stata连享会」查看往期推文。
    • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
    • 欢迎赐稿: 欢迎赐稿。录用稿件达 三篇 以上,即可 免费 获得一期 Stata 现场培训资格。
    • E-mail: StataChina@163.com
    • 往期推文:计量专题 || 精品课程 || 简书推文 || 公众号合集

    点击此处-查看完整推文列表


    在这里插入图片描述

    展开全文
  • Stata: 日收益转周\月\季\年度数据

    万次阅读 2018-12-25 10:19:24
      作者:朱红兵 (南京大学)   责编:王俊 (中山大学) ...使用 ascol 日收益率数据转换为**周\月\季\年 度数据; 使用 mtoq 数据转换为季度数据;   1 两种收益率的计算 例如 我们有下述股票的日度价格...

    作者:朱红兵 (南京大学)

    责编:王俊 (中山大学)

    Stata 连享会: 知乎 | 简书 | 码云 | CSDN

    连享会计量方法专题……

    本文要点

    • 解释简单收益率和对数收益率的差异;
    • 使用 ascol 将日收益率数据转换为**周\月\季\年 度数据;
    • 使用 mtoq 将月数据转换为季度数据;


    1 两种收益率的计算

    例如 我们有下述股票的日度价格序列:

    股票id日期价格
    12018010115
    12018010219
    12018010317
    12018010416
    12018010520
    12018010618
    12018010719

    根据简单收益率和对数收益率计算公式:

    简单算术收益率 EQ1

    (1) S i m p l e R e t u r n i , t = P r i c e i , t − P r i c e i , t − 1 P r i c e i , t − 1 SimpleReturn_{i,t}=\frac{Price_{i,t}-Price_{i,t-1}}{Price_{i,t-1}} \tag{1} SimpleReturni,t=Pricei,t1Pricei,tPricei,t1(1)

    连续对数收益率 EQ2

    (2) S i m p l e R e t u r n i , t = l n ( P r i c e i , t P r i c e i , t − 1 ) SimpleReturn_{i,t}=ln(\frac{Price_{i,t}}{Price_{i,t-1}}) \tag{2} SimpleReturni,t=ln(Pricei,t1Pricei,t)(2)

    我们可以计算出简单收益率和对数收益率如下:

    股票id日期简单收益率对数收益率1+简单收益率
    1201801020.26670.23641.2667
    120180103-0.1053-0.11120.8947
    120180104-0.0588-0.06060.9412
    1201801050.25000.22311.2500
    120180106-0.1000-0.10540.9000
    1201801070.05560.05411.0556

    2 区间内收益率的计算

    在实证研究中,很多时候我们希望得到周收益率或者月度收益率,那么如何根据日度收益率得到这些指标呢?

    可能很多同学会想当然地认为:直接加总日收益率即可!为题在于:直接对简单收益率进行加总得到的周(月)收益率等于对数日收益率的加总吗?我们可以用上述数据来测试看一下(计算 2018 年 1 月 2 日至 2018 年 1 月 7 日的持有期收益率):

    • 简单收益率的加总:

    0.2667 − 0.1053 − 0.0588 + 0.2500 − 0.1000 + 0.0556 = 0.3082 0.2667-0.1053-0.0588+0.2500-0.1000+0.0556=0.3082 0.26670.10530.0588+0.25000.1000+0.0556=0.3082

    • 对数收益率的加总:

    0.2364 − 0.1112 − 0.0606 + 0.2231 − 0.1054 + 0.0541 = 0.2364 0.2364-0.1112-0.0606+0.2231-0.1054+0.0541=0.2364 0.23640.11120.0606+0.22310.1054+0.0541=0.2364

    • 两者差异:

    0.3082 − 0.2364 = 0.0718 0.3082-0.2364=0.0718 0.30820.2364=0.0718

    问题: 为什么两者会相差 0.0718 呢?哪种计算方法才能准确反应投资者在 2018 年 1 月 2 日至 2018 年 1 月 7 日 期间内的持有收益呢?


    答案对数日收益率的加总,即下式 (EQ3):

    (3) R e t u r n i , [ t t 0 , t T ] = ∑ t = t 0 T L o g R e t u r n i , t Return_{i,[t_{t0},t_{T}]}=\sum_{t=t0}^T{LogReturn_{i,t}} \tag{3} Returni,[tt0,tT]=t=t0TLogReturni,t(3)

    因为,区间内简单日收益率的加总意味着投资者每天都在进行交易,而非在区间内买入并持有至末期。当然,我们也可以通过简单算术日收益率计算区间内的持有期收益,但是需要采用下述方法:

    持有期收益率 (EQ4):

    (4) R e t u r n i , [ t t 0 , t T ] = P r i c e i , T − P r i c e i , t t 0 P r i c e i , t t 0 Return_{i,[t_{t0},t_{T}]}=\frac{Price_{i,T}-Price_{i,t_{t0}}}{Price_{i,t_{t0}}} \tag{4} Returni,[tt0,tT]=Pricei,tt0Pricei,TPricei,tt0(4)

    或者采用 (EQ5):

    (5) R e t u r n i , [ t t 0 , t T ] = ∏ t = t 0 T ( 1 + S i m p l e R e t u r n i , t ) − 1 Return_{i,[t_{t0},t_{T}]}=\prod_{t=t0}^T{(1+SimpleReturn_{i,t})}-1 \tag{5} Returni,[tt0,tT]=t=t0T(1+SimpleReturni,t)1(5)

    3 Stata命令介绍:ascol

    3.1 安装 ascol

    在 Stata 命令框中输入下述命令并回车,即可实现安装:

    ssc install ascol, replace
    

    3.2 如何调用该命令进行收益率计算?

    ascol 的完整语法格式如下:

    ascol varname, returns([simple | log]) ///
          prices ///
          keep([all | vars]) ///
          frequency_options  ///
          timevar(varname) panelvar(varname) ///
          generate(newvar)
    

    其中:

    • varname 主要是收益率序列或者价格序列。
    • returns() 中可选择 simplelog。其中,simple 表明 varname 是简单收益率;log 代表对数收益率。若 varname 设定的是价格序列,则这里的选择会指导具体收益率序列的计算方式。
    • prices 指定了 varname 中序列的类型是否为价格序列,如果是收益率序列则无需填写。
    • keep 选项可保留计算后的重复数据,例如日收益率转换为月收益率后,在相同月会出现多个相同的收益率观测,如果选择了 keep 命令则保留了相同的观测,反之则只每个时间点上保留一个观测,剔除了重复观测
    • frequency_options 中可设定 toweektomonthtoquarter, toyear,即由日收益率转换为不同频率 (周,月,季,年) 的收益率。
    • timevar()panelvar() 选项可设定数据的时间变量和截面变量。
    • generate() 可设定新生产的收益率序列的名称。

    3.3 Stata 范例

    下述代码来源于 ascol 的官方帮助文档,读者可自行前往查看

    /*生产收益率序列*/
    clear
    set obs 1000
    gen date=date("1/1/2012" , "DMY")+_n
    format %td date
    tsset date
    gen pr=10
    replace pr=pr[_n-1]+uniform() if _n>1
    gen simpleRi=(pr/l.pr)-1
    gen logRi = ln(pr/l.pr)
    save "stocks.dta", replace
    
    /*Example 1: From Daily to weekly -  simple returns*/
    use stocks, clear
    ascol simpleRi, toweek returns(simple)
    
    /*Example 2: From Daily to weekly -  log returns*/
    use "stocks", clear
    ascol logRi, toweek returns(log)
    
    /* Example 3: From Daily to monthly -  prices*/
    use "stocks", clear
    ascol pr, tomonth price
    

    3.4 补充一个新命令 mtoq

    前文介绍的 ascol 命令虽然可以将日收益率转换为其他频率的收益率,但是有些时候我们下载的收益率月度收益率,那如何将其转换为季度收益率呢?我们写了一个新的命令 mtoq 来实现这一功能。

    Step1 安装 mtoq
    /* 1. 没有安装 github 命令的请先通过下述命令进行安装 */
    net install github, from("https://haghish.github.io/github/")  replace
    
    /* 2. 安装过 github 命令的同学可忽略上述命令,直接进行下述安装 */
    github install zhbsis/mtoq
    
    Step2 调用 mtoq

    mtoq 命令的语法非常简洁,如下:

    mtoq varlist, by(string) [Statistics(string)]
    

    其中,

    • varlist 中填写对数收益率序列,可同时填写多个序列。
    • by 选项中填写个体和时间截面的id,例如股票类数据可填写 stkcd(股票代码) ym(年月时间标记)
    • Statistics 选项中可填写 Stata 官方命令 egen 中的常见 option ,例如 mean、sum 等,默认为 mean 处理,在月度收益率转换为季度收益率的时候通常填写 sum 选项。

    Tipsmtoq 命令可以有更为广泛的用途。上面的例子是对收益率序列进行转换,但 mtoq 也可以转换其他变量,如 换手率 (TurnOver)。若想通过加总月度换收益率得到季度的换手率,可输入:

    mtoq TurnOver, by(stkcd ym) s(sum)
    


    关于我们

    • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
    • 公众号推文同步发布于 CSDN-Stata连享会简书-Stata连享会知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。
    • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
    • Stata连享会 精品专题 || 精彩推文

    联系我们

    • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。您也可以从 连享会选题平台 → [002_备选主题] 中选择感兴趣的题目来撰写推文。
    • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
    • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
    • 联系邮件: StataChina@163.com

    往期精彩推文

    连享会计量方法专题……


    欢迎加入Stata连享会(公众号: StataChina)

    展开全文
  • Impute数据无量纲化数据归一---MinMaxScaler示例 概述 数据挖掘的五大步骤 数据获取 数据预处理 数据预处理是从数据中检测,纠正或删除损坏,不准确或不适用于模型的记录的过程 可能面对的问题有:数据类型不同,...
  • f的临界值在stata中怎么输入命令计算stata怎么用命令计算有几个变量 dis `c(k)'可以看到数据中含有的变量的个数。 不过这个命令会把“股票代码”和“日期”也包含在内。如何用stata命令计算某一行数据的均值和标准差...
  • 方法一:规范方法也叫离差标准,...A的原始值x使用z-score标准到x’。z-score标准方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。spss默认的标准方法就是z-score标准...
  • 数据处理进阶 ##以下代码为stata程序 *------------------------ *-2.1 创建变量的更多技巧 *------------------------ * ==本节目录== * 2.1.1 _n 和 _N * 2.1.1.1 _n 与 _N * 2.1.1.2 _n 与 _N 的应用 ...
  • 数据的归一与标准

    千次阅读 2018-02-15 02:35:34
    机器学习中常见数据的归一(normalization)和标准(standardization),其实这二者的作用和处理方法都很相似,本文作简单介绍。 两者的基本作用是消除不同变量之间量纲的影响,方便数据处理。在机器学习中的...
  • 很多检验都要求样本满足正态分布,就连对样本分布要求最低的回归分析,如果解释变量无法很好的解释被解释变量的偏度和峰度,在...其实stata软件,短短一句代码便可以解决9种转化,而且还可以可视。非常的方便。...
  • 编译:李琼琼 (山东大学)Stata 连享会: 知乎 | 简书 | 码云 | CSDN点击查看完整推文列表2020寒假Stata现场班北京, 1月8-17日,连玉君-江艇主讲2020寒假Stata现场班2020连享会-文本分析与爬虫-现场班(西安, 3月26-29...
  • 回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。 回归分析的任务: 通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进而达到通过X去预测Y的...
  • 极大似然估计的思想,就是在给定样本值的情况下,构建未知参数的函数,寻找能够使得观测到样本数据的可能性最大的估计参数。
  • 回归分析(stata实例详细解答过程)

    万次阅读 多人点赞 2021-09-02 11:33:47
    请对所给数据进行以下方面的分析,要求最终的分析不仅仅有益于 商家,更有益于宝妈们为宝贝选择适合自己的奶粉。 (1)以评价量为因变量,分析其它变量和评价量之间的关系。 (2)以评价量为因变量,研究影响评价量...
  • 本文分析2007-2018年的工业指数(DJIA)。工业指数(DIJA)是一个股市指数,表明位于30家大型上市公司的价值。工业指数(DIJA)的价值基于每个组成公司的每股股票价格之和。
  • 正文**调整变量格式:format x1 %10.3f //x1的列宽固定为10,小数点后取三位format x1 %10.3g //x1的列宽固定为10,有效数字取三位format x1 %10.3e //x1的列宽固定为10,采用科学计数法format x1 %10.3fc //...
  • stata进行空间计量分析

    万次阅读 多人点赞 2018-12-30 20:25:51
    stata进行空间计量分析第一步,打开是stata14,安装xsmle(本文使用的是面板数据);第二步,打开要分析的文件;首先,单击file—import—选择导入的文件形式(本文导入的是.xls)然后,点击Browse,找到所需要的文件,...
  • Stata:边际效应分析

    万次阅读 多人点赞 2018-05-31 14:44:16
    作者:连玉君 | 杨柳 ( 知乎 | 简书 | 码云 )   Stata 现场培训报名中…… (点击下方【阅读原文...此时,麻辣火锅有助于有一个好心情,它对心情的边际效应是正值;当你们吃到一半时,手机上收到了一条消息...
  • 普林斯顿Stata教程 - Stata编程

    万次阅读 2018-06-04 11:47:17
    译者:谢作翰 | 连玉君 | (知乎 | 简书 | 码云)   原文链接:Princeton Stata 在线课程 (Princeton University - Stata Tutorial ) ...普林斯顿Stata教程 - Stata数据管理 普林斯顿Stata教程 ...
  • 在本文中,我们简要讨论了广义矩量法(GMM)框架下面板VAR模型的模型选择、估计和推断,并介绍了一套Stata程序来方便地执行它们。 一、简介 时间序列向量自回归 (VAR) 模型起源于宏观计量经济学文献,作为多元联...
  • stata 应用回归分析

    千次阅读 2020-12-12 05:04:39
    1. stata软件概述 时间:2020-2-25 窗口介绍 do-flie editor data editor(可编辑) data browser(不可编辑) 功能按钮 graphics statistics 功能介绍 数据处理和绘图 统计分析和检验 方差分析 多变量方差...
  • 作者:李琼琼 (山东大学) Stata 连享会: 知乎 | 简书 | 码云 | CSDN | StataChina公众号连享会-知乎推文列表Note: 助教招聘信息请进入「课程主页」查看。 因果推断-内生性 专题 ⌚ 2020.11.12-15 主讲:王存同 ...
  • 【统计学】基本Stata使用手册:合集

    万次阅读 多人点赞 2020-07-30 18:54:35
    经过一个星期把这个基本Stata使用手册的合集更新完毕了。本篇是把之前的命令做了一个合集,如果需要单独的可以点到超链接中查看专题~
  • 数据的读取与查看读取数据集:use 路径(.dta)读取Stata系统中的数据:sysuse 文件名清除上一个数据集:clear查看数据集:browse(表格形式)/list(清单形式)查看从第a行到第b行的数据:list in a/b查看符合某一...
  • Stata基础(一)

    万次阅读 多人点赞 2020-08-11 17:39:51
    Stata 概述 ...(1)Stata数据处理功能强大、快捷,提供了大量的函数。 (2)Do-files 非常便利,帮助一次性执行多条命令,使实证分析工作具有可重复性。 (3)绘图精美。 (4)更新快、平台宽。 ...
  • VAR模型Stata实例操作

    千次阅读 2022-04-20 23:10:13
    如图所示,很明显不是平稳的时间序列(有增加趋势) 三个变量取对数差分后,再画出时序图,如图所示:(此时经济变量意义改变) 这个时候可能是平稳的时间序列了,对它进行平稳性检验:(用的单位根检验) dfuller ...
  • 第11章Stata回归诊断与应对

    千次阅读 2021-07-06 16:09:08
    在上以讲中,简要介绍了最小二乘线性回归,这种方法可以满足大部分的研究需要。但是这种分析方法的有效性建立在变量无异方差、无自相关、无多重线共线性的基础之上。显示生活中很多数据是不满足这些条件的 ...
  • 基于面板数据的熵值法

    千次阅读 多人点赞 2021-09-17 18:23:09
    基于MATLAB,对含年份、城市、指标的面板数据使用熵值法为各指标进行客观赋权,得出各城市的综合得分
  • Stata中因子变量的使用方法

    万次阅读 2018-06-26 18:07:35
    作者:连玉君 | 杨柳 ( 知乎 | 简书 | 码云 )   注:该文已发表在《郑州航空工业管理学院学报》, 2018, Vol. 36, No.2, pp.90-103.... ……Stata 现场培训报名中……   事倍功半 vs. 事半功倍 当需...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 351
精华内容 140
关键字:

stata如何将数据对数化