【计量经济学】虚拟变量

article/2025/11/3 7:02:55

虚拟变量–潘登同学的计量经济学笔记

文章目录

    • 虚拟变量--潘登同学的计量经济学笔记
  • 对定性信息的描述
  • 只有一个虚拟变量的情形
    • 虚拟变量系数的解释
    • 虚拟变量的作用效果
    • 检验工资性别歧视
    • 因变量为对数形式的情况
  • 多个虚拟变量的情形
    • 虚拟变量系数的解释
    • 使用虚拟变量包含序数信息
    • 虚拟变量的交互作用
      • 虚拟变量与其他变量交互
    • 检验不同组之间回归函数上的差别
      • 邹至庄检验
      • 稍作改进
  • 二值因变量
    • 系数解释
    • 几点注意

对定性信息的描述

定性信息通常以二值形式出现,我们可以通过定义一个二值变量(0-1变量)来刻画,在计量经济学中二值变量通常被称为虚拟变量

只有一个虚拟变量的情形

考虑一个决定小时工资的简单模型

w a g e = β 0 + β 1 f e m a l e + β 2 e d u c + u wage = \beta_0 + \beta_1 female + \beta_2 educ + u wage=β0+β1female+β2educ+u

其中 f e m a l e female female就是一个虚拟变量,女性则为1,男性则为0

虚拟变量系数的解释

对于上式来说,参数 β 1 \beta_1 β1的含义是:在教育程度与误差项相同的情况下,男性与女性在小时工资上的差异;

如果 β 1 < 0 \beta_1<0 β1<0,那么意味着在其他条件相同的情况下,女性工资要低于男性(就有可能存在性别歧视)

虚拟变量的作用效果

可以对男性和女性的模型分开来写

  • 女性
    w a g e = β 0 + β 1 + β 2 e d u c + u wage = \beta_0 + \beta_1 + \beta_2 educ + u wage=β0+β1+β2educ+u
  • 男性
    w a g e = β 0 + β 2 e d u c + u wage = \beta_0 + \beta_2 educ + u wage=β0+β2educ+u
    可以发现,虚拟变量的系数变成了截距项,如果将两个模型分别画在图上,就会发现这是两条互相平行的线,只是截距有所不同

在这里插入图片描述

检验工资性别歧视

方法很简单,还是跟之前那样

  • 先用OLS来估计模型
  • 使用t统计量来检验系数的显著性水平

因变量为对数形式的情况

观察如下回归结果

log ⁡ ( w a g e ) ^ = 0.417 − 0.297 f e m a l e + 0.080 e d u c + 0.029 e x p e r − 0.00058 e x p e r 2 + 0.032 t e n u r e − 0.00059 t e n u r e 2 \hat{\log(wage)} = 0.417 - 0.297 female+ 0.080 educ + 0.029 exper -0.00058 exper^2 + 0.032 tenure - 0.00059 tenure^2 log(wage)^=0.4170.297female+0.080educ+0.029exper0.00058exper2+0.032tenure0.00059tenure2

female的系数表示: 在educ、exper、tenure的相同水平上,女性比男性约少挣29.7%

如果我们想得到更精确的估计,计算女性与男性工资差异的比例
d i f f e r e n t = w a g e F ^ − w a g e M ^ w a g e M ^ = e x p { log ⁡ w a g e F ^ w a g e M ^ } − 1 = e x p { − 0.297 } − 1 ≈ − 0.257 different = \frac{\hat{wage_F}-\hat{wage_M}}{\hat{wage_M}} = exp\{\log \frac{\hat{wage_F}}{\hat{wage_M}}\} - 1 = exp\{-0.297\}-1 \approx -0.257 different=wageM^wageF^wageM^=exp{logwageM^wageF^}1=exp{0.297}10.257

更准确的估计意味着,一个女性的工资比一个与她相当的男性的工资低大约25.7%

多个虚拟变量的情形

虚拟变量有4个: 已婚男性、已婚女性、单身男性、单身女性,选择以单身男性为基组,回归结果如下

log ⁡ ( w a g e ) ^ = 0.321 + 0.213 m a r r m a l e − 0.198 m a r r f e m − 0.110 s i n g f e m + 0.079 e d u c + 0.027 e x p e r − 0.00054 e x p e r 2 + 0.029 t e n u r e − 0.00053 t e n u r e 2 \hat{\log(wage)} = 0.321 + 0.213 marrmale - 0.198 marrfem - 0.110 singfem + 0.079 educ + 0.027 exper - 0.00054 exper^2 + 0.029 tenure - 0.00053 tenure^2 log(wage)^=0.321+0.213marrmale0.198marrfem0.110singfem+0.079educ+0.027exper0.00054exper2+0.029tenure0.00053tenure2

虚拟变量系数的解释

我们选择了单身男性作为基组,三个虚拟变量系数的估计值表示: 与单身男性相比,小时工资的差异

举例说明

  • 在保持受教育程度、工作经历和现职任期不变的情况下,已婚男性比单身男性多挣21.3%

  • 除了比较其他各组与基组的差异,也可以比较任意两组的差异,在保持受教育程度、工作经历和现职任期不变的情况下,单身女性比已婚女性多挣8.8%(0.198-0.110=0.088)

注意我们只将4个变量中的3个加入模型,如果我们再加入一个单身男性的虚拟变量,将会导致完全共线性,即
m a r r m a l e + m a r r f e m + s i n g f e m + s i n g m a l e = 1 marrmale + marrfem + singfem + singmale = 1 marrmale+marrfem+singfem+singmale=1

使用虚拟变量包含序数信息

我们想估计城市信用等级对地方政府债券利率MBR的影响,假设等级的范围是 { 0 , 1 , 2 , 3 , 4 } \{0,1,2,3,4\} {0,1,2,3,4},0为最低信用等级,4为最高信用等级。我们不能将这五个值放到一个值中,我们能知道4级比3级好,但4级比3级好的程度是否与3级比2级好的程度一样就不一定,所以可以包括4个虚拟变量

M B R = β 0 + β 1 C R 1 + β 2 C R 2 + β 3 C R 3 + β 4 C R 4 + β 5 C R 5 + 其 他 因 素 MBR = \beta_0 + \beta_1 CR_1 + \beta_2 CR_2 + \beta_3 CR_3 + \beta_4 CR_4 + \beta_5 CR_5 + 其他因素 MBR=β0+β1CR1+β2CR2+β3CR3+β4CR4+β5CR5+

虚拟变量的交互作用

如果采用交互项的形式,也能刻画前面那个婚姻、性别的模型,模型的回归结果如下

log ⁡ ( w a g e ) ^ = 0.321 − 0.110 f e m a l e + 0.213 m a r r i e d − 0.301 f e m a l e ∗ m a r r i e d + 0.079 e d u c + 0.027 e x p e r − 0.00054 e x p e r 2 + 0.029 t e n u r e − 0.00053 t e n u r e 2 \hat{\log(wage)} = 0.321 - 0.110 female + 0.213 married - 0.301 female*married + 0.079 educ + 0.027 exper - 0.00054 exper^2 + 0.029 tenure - 0.00053 tenure^2 log(wage)^=0.3210.110female+0.213married0.301femalemarried+0.079educ+0.027exper0.00054exper2+0.029tenure0.00053tenure2

上式也包含了性别、婚姻各种组合之间工资差异的一种不同方法。实际上,他并没有什么优势;前面的那个还能很好的反映任何一组与单身男性组(基组)之间的差异

虚拟变量与其他变量交互

观察一下模型

log ⁡ ( w a g e ) = ( β 0 + β 1 f e m a l e ) + ( β 2 + β 3 f e m a l e ) e d u c + u \log(wage) = (\beta_0+\beta_1 female) + (\beta_2 + \beta_3 female)educ + u log(wage)=(β0+β1female)+(β2+β3female)educ+u

一旦虚拟变量与其他变量交互了,之前说的相互平行、截距不同的结论就不适用了,因为educ前的系数是 ( β 2 + β 3 f e m a l e ) (\beta_2 + \beta_3 female) (β2+β3female) f e m a l e female female取0或1时,对系数会产生不同的结果

检验不同组之间回归函数上的差别

原假设 H 0 : H_0: H0:两个总体或两个组具有同一个回归函数

备择假设 H 1 : H_1: H1:各组之间有一个或多个斜率是不同的

举例说明
c u m g p a = β 0 + β 1 s a t + β 2 h s p e r c + β 3 t o t h r s + u cumgpa = \beta_0 + \beta_1sat + \beta_2hsperc + \beta_3tothrs+u cumgpa=β0+β1sat+β2hsperc+β3tothrs+u

如果我们想检验男女之间是否存在差异: 就必须允许该模型的截距和斜率对两组而言都不相同
c u m g p a = β 0 + δ 0 f e m a l e + β 1 s a t + δ 1 f e m a l e ∗ s a t + β 2 h s p e r c + δ 2 f e m a l e ∗ h s p e r c + β 3 t o t h r s + δ 3 f e m a l e ∗ t o t h r s + u cumgpa = \beta_0 + \delta_0 female + \beta_1 sat + \delta_1 female * sat + \beta_2 hsperc + \delta_2 female * hsperc + \beta_3 tothrs + \delta_3 female * tothrs +u cumgpa=β0+δ0female+β1sat+δ1femalesat+β2hsperc+δ2femalehsperc+β3tothrs+δ3femaletothrs+u

原假设 H 0 : δ 0 = 0 , δ 1 = 0 , δ 2 = 0 , δ 3 = 0 H_0:\delta_0=0,\delta_1=0,\delta_2=0,\delta_3=0 H0:δ0=0,δ1=0,δ2=0,δ3=0

注意,原假设是一个联合假设,需要去掉所有female及其交互项,得到约束模型,计算F统计量,最终得出结果(拒绝原假设)

邹至庄检验

对上面一个问题的检验可以使用邹至庄检验,邹至庄检验是用来可以测试两组不同数据的线性回归系数是否相等,对于上面问题来说就是男女数据,假设组1不包含虚拟变量及交互项,组2包括,记为 g = 1 , g = 2 g=1,g=2 g=1,g=2,将模型写成
y = β g , 0 + β g , 1 x 1 + β g , 2 x 2 + ⋯ + β g , k x k + u y = \beta_{g,0} + \beta_{g,1} x_1 + \beta_{g,2} x_2 + \cdots + \beta_{g,k} x_k + u y=βg,0+βg,1x1+βg,2x2++βg,kxk+u

  • 两组间每个 β \beta β都相同,产生k+1个约束
  • 组2还包括虚拟变量及截距项,自由度为n-2(k+1)(其中一个k+1是上句话,其中一个k+1是(各个虚拟变量及交互项前)参数个数)

计算步骤

  • 计算 S S R 1 SSR_1 SSR1:表示第一组的残差平方和( n 1 n_1 n1个观测)
  • 计算 S S R 2 SSR_2 SSR2:表示第二组的残差平方和( n 2 n_2 n2个观测)
  • 计算无约束模型的残差平方和 S S R u r = S S R 1 + S S R 2 SSR_{ur} = SSR_1 + SSR_2 SSRur=SSR1+SSR2
  • 将两组数据混在一起,计算约束模型的残差平方和 S S R p SSR_p SSRp
  • 计算F统计量:
    F = S S R p − S S R u r S S R u r ⋅ n − 2 ( k + 1 ) k + 1 F = \frac{SSR_p-SSR_{ur}}{SSR_{ur}} \cdot \frac{n-2(k+1)}{k+1} F=SSRurSSRpSSRurk+1n2(k+1)

其中,n为总观测次数,这个特定的F统计量,被称为邹至庄统计量(注意因为邹至庄检验本质是F检验,所以只有在同方差下才是有效的,特别是在原假设下,两组的误差方差必须相等)

稍作改进

邹至庄检验的原假设是各组间不存在任何差异,如果允许组间的截距不同,然后再来检验斜率的话,只需要将k+1改为k即可
F = S S R p − S S R u r S S R u r ⋅ n − 2 ( k + 1 ) k F = \frac{SSR_p-SSR_{ur}}{SSR_{ur}} \cdot \frac{n-2(k+1)}{k} F=SSRurSSRpSSRurkn2(k+1)

二值因变量

y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β k x k y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_k x_k y=β0+β1x1+β2x2++βkxk

与多元回归模型类似,只不过y是一个二值变量,要么是0,要么是1;

如果我们假定MLR.4成立,即 E ( u ∣ x 1 , … , x k ) = 0 E(u|x_1,\ldots,x_k) = 0 E(ux1,,xk)=0,那么
E ( y ∣ x ) = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β k x k E(y|x) = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_k x_k E(yx)=β0+β1x1+β2x2++βkxk

值得注意的是,当y是一个取值为0和1的二值变量时, E ( y ∣ x ) = P ( y = 1 ∣ x ) E(y|x)=P(y=1|x) E(yx)=P(y=1x) 表示y=1的概率,也被称为响应概率,因此二值因变量的多元线性回归模型也被称为线性概率模型(LPM)

系数解释

用概率来解释系数: 当其他条件不变是,x变化一个单位使得响应概率变化 β \beta β
△ P ( y = 1 ∣ x ) = β j △ x j \triangle P(y=1|x) = \beta_j \triangle x_j P(y=1x)=βjxj

几点注意

由于二值的特性,所以LPM违背了一个高斯-马尔科夫假定MLR.5( v a r ( u ∣ x ) = σ 2 var(u|x)=\sigma^2 var(ux)=σ2),当y是一个二值变量时,其以x为条件的方差为
V a r ( y ∣ x ) = p ( x ) [ 1 − p ( x ) ] p ( x ) = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β k x k Var(y|x)=p(x)[1-p(x)]\\ p(x) = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_k x_k \\ Var(yx)=p(x)[1p(x)]p(x)=β0+β1x1+β2x2++βkxk

这意味着,除非概率与任何一个自变量都不相关,否则LPM就会存在异方差性。但我们知道MLR.5的违背不影响无偏性…


http://chatgpt.dhexx.cn/article/HEf2Ypo6.shtml

相关文章

php读取文件名称,php如何获取文件名

php获取文件名的方法&#xff1a;可以用basename()函数来获取文件名&#xff0c;例如&#xff1a;【basename($full_name)】。还可以使用pathinfo()函数来获取文件名。 PHP中获取文件名的方式 1、直接用basename&#xff1a;<?php $full_name c:\wamp\php\php.ini; $base…

python获取当前系统的日期_python怎么获取当前系统时间

python获取当前系统时间&#xff0c;包括年月日&#xff0c;时分秒&#xff0c;主要通过Python中的datetime模块来实现。 下面我们就通过具体的代码示例&#xff0c;给大家详细介绍Python获取当前时间日期的实现方法。 代码示例如下&#xff1a;import datetime now datetime.…

mysql如何获取当前时间_mysql怎么获取当前时间

mysql获取当前时间的方法&#xff1a;可以通过执行【select now();】语句来获取当前时间。还可以通过执行【select current_timestamp, current_timestamp();】语句来获取。 获得当前日期时间(date time)函数&#xff1a;now()mysql> select now(); --------------------- …

如何通过php获取今天的时间,如何使用php获取当前时间和日期

如何使用php获取当前时间和日期&#xff1f;在php中我们可以使用date()函数来获取当前时间和日期&#xff0c;也可以在PHP> 5.2的 版本中使用DateTime PHP类来获取日期和时间&#xff0c;下面我们就来看看具体的内容。 使用date()函数输出当前日期和时间。它将使用php.ini中…

php如何获取当前日期时间函数,php如何使用date()函数获取当前时间

php如何使用date()函数获取当前时间?本篇文章就给大家介绍具体介绍PHP使用date()函数获取当前时间的方法,希望对你们有所帮助。 date()函数可以将获取到的时间戳转换为更易读的日期和时间格式。当date()函数中不自定义一个时间戳时,将使用当前日期和时间。 下面我们来看看使…

PHP 获取当前访问的URL

<?php /** * 获取当前访问的完整url * return string * date 2020/7/23 */ function getUrl() {// 判断当前页采用的协议是HTTP还是HTTPS // 443端口&#xff1a;即网页浏览端口&#xff0c;主要用于HTTPS服务&#xff0c;是提供加密和通过安全端口传输的另一种HTTP。 $url…

python之点积

数学中点积也就是内积&#xff0c;是指两个向量各自对应位相乘后求和&#xff0c;比如x (x1,x2),y(y1,y2),则x与y的内积结果为x1*y1x2*y2,因此 python中一维数组之间的点积&#xff0c;即为数组各个位乘积之和&#xff0c;如&#xff1a; x1 np.arange(0,9) print(x1) y1 …

点积、叉积、内积、外积

点积、叉积、内积、外积 点积内积 &#xff08;结果标量&#xff09; 叉积外积 (结果矢量) 点积&#xff08;内积、数量积&#xff09;&#xff1a; matlab or python&#xff1a;dot() / np.dot() 数学符号&#xff1a;A.B<a,b> 相乘相加 物理意义&#xff1a; 向量…

点积和叉积在计算机图形学的应用

点积和叉积在计算机图形学中&#xff0c;是最为基础且重要的概念&#xff0c;初学者弄清它的概念的应用&#xff0c;是很重要的。最后一节&#xff0c;是为了加强理解记录&#xff0c;如果不看也是可以的&#xff0c;大家选择观看&#xff0c;有兴趣可以去看原视频&#xff0c;…

线性代数【18】点积和对偶性

前言&#xff1a; 本节&#xff0c;尝试通过线性变换来理解&#xff0c;或者说来表述点积。 在尝试理解的过程中&#xff0c;我们发现了线性变换&#xff0c;尤其是从多维空间到一维空间的线性变换&#xff0c;一定有某个严格的1x2的向量和他对应&#xff0c;这种微妙的而自然…

【Python】详解Numpy中的点积运算

1. 引言 根据数学家的说法&#xff0c;点积是一种运算&#xff0c;它取两个等长的向量作为输入&#xff0c;然后返回一个数字&#xff08;标量&#xff09;。向量A与向量B的点积用符号表示为A•B。在线性代数中&#xff0c;点积是输入向量中每个对应元素的乘积之和。 本文重点…

cuda点积运算

最近在研究并行运算的规约算法&#xff0c;在看《GPU高性能编程CUDA实战》这本书中点积运算时&#xff0c;有些问题想了很久&#xff0c;记录下来&#xff1b; 注点积公式&#xff1a;&#xff08;dot(A,B)a1*b1a2*b2...an*bn&#xff09; 书上例子算点积运算时分为了以下几步…

Unity3D C#数学系列之点积

文章目录 1 定义2 几何意义3 向量a向量b xaxbyaybzazb4 应用案例4.1 求两向量的夹角4.2 判断两向量是否垂直4.3 判断NPC是否在攻击范围内4.4 已知入射光线和表面法线求反射光线 5 项目 1 定义 可知&#xff0c;点积得到的是一个标量&#xff0c;这个标量代表什么呢&#xff1f…

内积、点积和坐标

内积是一个纯数学概念&#xff0c;在向量空间中&#xff0c;只要满足一定的性质&#xff08;正性、定性、可加性、齐性和共轭对称性&#xff09;的函数运算就可以成为内积&#xff0c;因此具体的内积具有很多种形式。 点积是定义在空间上的一种内积&#xff0c;具体的形式为&am…

点积与投影的关系

点积与投影的关系 一个向量在另一个单位向量上的投影长度&#xff0c;等于这两个向量的点积。 怎么理解 a、b、c分别为三个向量&#xff0c;如果有abc&#xff0c;那么c在某个向量上的投影值等于a和b分别在该向量上的投影值相加(反方向的投影为负值) i&#xff0c;j分别是向…

防抖与节流的个人理解及其对应的应用场景

什么是防抖和节流&#xff0c;他们的应用场景有哪些 防抖 (debounce) 防抖&#xff0c;顾名思义&#xff0c;防止抖动&#xff0c;以免把一次事件误认为多次&#xff0c;敲键盘就是一个每天都会接触到的防抖操作。 想要了解一个概念&#xff0c;必先了解概念所应用的场景。在…

JS防抖和节流

欢迎学习交流&#xff01;&#xff01;&#xff01; 持续更新中… 文章目录 防抖节流二者区别应用场景 防抖和节流都是为了项目优化而出现的&#xff0c;官方没有具体定义的&#xff0c;他们的出现主要是为了解决一些短时间内连续执行的事件带来性能上的不佳和内存的消耗巨大等…

手写防抖节流

文章目录 手写前端常用技巧-防抖节流防抖节流1. 首节流2. 尾节流3. 首尾节流 总结 手写前端常用技巧-防抖节流 防抖&#xff1a;当持续触发事件时&#xff0c;一定时间内没有再触发事件&#xff0c;才会在一段时间之后触发事件处理函数。 节流&#xff1a;当持续触发事件时&am…

防抖和节流

1. 什么是防抖 防抖策略&#xff08;debounce&#xff09;是当事件被触发后&#xff0c;延迟 n 秒后再执行回调&#xff0c;如果在这 n 秒内事件又被触发&#xff0c;则重新计时。 1.2. 防抖的应用场景 用户在输入框中连续输入一串字符时&#xff0c;可以通过防抖策略&…

lodash节流

滚动条事件优化 可以用 lodash节流 npm i -S lodash Lodash 简介 | Lodash 中文文档 | Lodash 中文网