R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用

article/2025/11/3 7:01:24

最近我们被客户要求撰写关于线性回归的研究报告,包括一些图形和统计输出。

为什么需要虚拟变量?

大多数数据都可以用数字来衡量,如身高和体重。然而,诸如性别、季节、地点等变量则不能用数字来衡量。相反,我们使用虚拟变量来衡量它们。

例子:性别

让我们假设x对y的影响在男性和女性中是不同的。

对于男性y=10+5x+ey=10+5x+e

对于女性y=5+x+ey=5+x+e。

其中e是随机效应,平均值为零。因此,在y和x的真实关系中,性别既影响截距又影响斜率。

首先,让我们生成我们需要的数据。


#真斜率,男性=5,女性=1
ifelse(d$性别==1, 10+5*d$x+e,5+d$x+e)

首先,我们可以看一下x和y之间的关系,并按性别给数据着色。 

plot(data=d)

很明显,y和x之间的关系不应该用一条线来描绘。我们需要两条:一条代表男性,一条代表女性。

如果我们只将y回归到x和性别上,结果是

x的估计系数不正确。

正确的设置应该是这样的,这样可以使性别同时影响截距和斜率。

或者使用下面的方法,添加一个虚拟变量。

该模型表示,对于女性(性别=0),估计的模型是y=5.20+0.99x;对于男性(性别=1),估计的关系是y=5.20+0.99x+4.5+4.02x,也就是y=9.7+5.01x,相当接近真实关系。

接下来,让我们尝试两个虚拟变量:性别和地点

性别和地点的虚拟变量

性别并不重要,但地点很重要

让我们获取一些数据,其中性别不重要,但地点会很重要。

绘制查看x和y之间的关系,按性别给数据着色,并按地点分开。

plot(d,grid~location)

 性别对Y的影响似乎是显著的。但当你比较芝加哥的数据和多伦多的数据时,截距不同,斜率也不同。

如果我们忽略了性别和地点的影响,模型将是

R-squared是相当低的。

我们知道性别并不重要,但我们还是把它加进去,看看是否会有什么不同。 

正如预期,性别的影响并不显著。

现在让我们来看看地点的影响

位置的影响是很大。但我们的模型设置基本上是说,位置只会改变截距。

如果位置同时改变了截距和斜率呢?

你也可以试试这个。

性别并不重要,而地点会改变截距和斜率。

性别并不重要,而地点会改变截距和斜率

现在让我们获取一些性别和地点都很重要的数据。让我们从两个地点开始。

ifelse(d$性别=="0" & d$地点=="多伦多", 1+1*d$x+e,
+                    ifelse(d$性别=="1" & d$地点=="芝加哥", 20+2*d$x+e,
+                           ifelse(d$性别=="0" & d$地点=="芝加哥", 2+2*d$x+e,NA))))
plot(d,x,y,color=性别~地点)

性别和地点都很重要,5个地点

最后,让我们尝试一个有5个地点的模型。

+                    ifelse(d$性别=="1" & d$地点=="芝加哥", 2+10*d$x+e,
+                           ifelse(d$性别=="0" & d$地点=="芝加哥", 2+2*d$x+e,
+                                  ifelse(d$性别=="1" & d$地点=="纽约",3+15*d$x+e,
+                                         ifelse(d$性别=="0" & d$地点=="纽约",3+5*d$x+e,
+                                                ifelse(d$性别=="1" & d$地点=="北京",8+30*d$x+e,
+                                                       ifelse(d$性别=="0" & d$地点=="北京",8+2*d$x+e,
+                                                              ifelse(d$性别=="1" & d$地点=="上海",
plot( x,y,color=性别 ~地点)

所以,如果你认为某些因素(性别、地点、季节等)可能会影响你的解释变量,就把它们设置为虚拟变量。



http://chatgpt.dhexx.cn/article/7PalT2sB.shtml

相关文章

《计量经济学》学习笔记之虚拟变量及滞后变量模型

导航 上一章:放款基本假定的模型 文章目录 导航经典单方程计量 经济学模型:专门问题5.1虚拟变量模型一、虚拟变量的引入二、虚拟变量的设置原则 5.2滞后变量模型一、滞后变量模型二、分布滞后模型的参数估计三、自回归模型的参数估计四、格兰杰因果检验…

R语言使用虚拟变量(Dummy Variables) 回归分析工资影响因素

最近我们被客户要求撰写关于虚拟变量(Dummy Variables) 回归的研究报告,包括一些图形和统计输出。 简介 本文与以下两个问题有关。你应该如何添加虚拟变量?你应该如何解释结果? 如果使用一个例子,我们可能会更容易理解这些问题。…

虚拟变量在模型中的作用

虚拟变量是什么 实际场景中,有很多现象不能单纯的进行定量描述,只能用例如“出现”“不出现”这样的形式进行描述,这种情况下就需要引入虚拟变量。例如即将到来的女生节,每年的这个时候毛绒玩具的销量都会上升,说明女生…

R 回归 虚拟变量na_互助问答第30期:工具变量、GARCH模型操作和多项选择效信度...

问题1:用截面数据研究var1对y1 与y2 的影响,由于y1是0-1型的变量、y2为连续变量,因此分别用probit与tobit模型做了回归,首先做了基础回归,之后做了工具变量回归,但工具变量回归的结果(系数的绝对值)却远远大于原回归系数的绝对值,|-2.006|>|-0.046|,为何工具变量回归…

多元线性回归及虚拟变量(哑变量)设置

1.多元线性回归SPSS分析 四步搞定SPSS多元线性回归视频教程(含详细操作及结果解读)_哔哩哔哩_bilibili订阅陈老师B站送福利!订阅后加陈老师QQ1622275006送数据分析教程及软件福利哟~关注微信公众号:杏花开医学统计,免…

虚拟变量陷阱原理及算例

文章目录 1.虚拟变量2.虚拟变量陷阱3.虚拟变量陷阱例子及分析4.总结5.参考资料 1.虚拟变量 直接在回归模型中加入定性因素(比如类别因素:男或女)存在困难,因此可以考虑把定性因素量化,使定性因素与定量因素在回归模型…

机器学习(时间序列):线性回归之虚拟变量 dummy variables

1 前言 当预测变量是分类变量时,我们可以引入虚拟变量,作为回归的虚拟变量虚拟变量也可用于解释数据中的异常值。 虚拟变量不会忽略异常值,而是消除其影响。 在这种情况下,虚拟变量对该观察值取值为 1,而在其他任何正…

虚拟变量的方法介绍及python实现方式

虚拟变量的定义作用 计量经济学中对虚拟变量给出了定义、作用及使用场景,进一步的深入了解可以系统性学习。 定义:虚拟变量 ( Dummy Variables) ,用以反映无法定量度量的因素,譬如性别对收入的影响,是量化了的质变量&…

【计量经济学】虚拟变量

虚拟变量–潘登同学的计量经济学笔记 文章目录 虚拟变量--潘登同学的计量经济学笔记 对定性信息的描述只有一个虚拟变量的情形虚拟变量系数的解释虚拟变量的作用效果检验工资性别歧视因变量为对数形式的情况 多个虚拟变量的情形虚拟变量系数的解释使用虚拟变量包含序数信息虚拟…

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;点积是输入向量中每个对应元素的乘积之和。 本文重点…