zoukankan      html  css  js  c++  java
  • 拓端数据tecdat|R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用

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

    原文出处:拓端数据部落公众号

    为什么需要虚拟变量?

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

    例子:性别

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

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

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

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

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

    1.  
       
    2.  
      #真斜率,男性=5,女性=1
    3.  
      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是相当低的。

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

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

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

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

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

    你也可以试试这个。

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

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

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

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

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

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

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

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


    最受欢迎的见解

    1.R语言多元Logistic逻辑回归 应用案例

    2.面板平滑转移回归(PSTR)分析案例实现

    3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

    4.R语言泊松Poisson回归模型分析案例

    5.R语言回归中的Hosmer-Lemeshow拟合优度检验

    6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

    7.在R语言中实现Logistic逻辑回归

    8.python用线性回归预测股票价格

    9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

    ▍关注我们 【大数据部落】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。 ▍咨询链接:http://y0.cn/teradat ▍联系邮箱:3025393450@qq.com
  • 相关阅读:
    【C++】未定义的标识符“_TCHAR*”
    【C++】编写动态库DLL
    【C++】使用SQLite步骤及示例
    【VS】如何查询该项目是什么样工程类型
    新概念英语第一册单词
    地道情景表达一
    日常学习经典口语一
    全国省市区sql脚本
    关于Object.defineProperty
    响应式原理
  • 原文地址:https://www.cnblogs.com/tecdat/p/14948161.html
Copyright © 2011-2022 走看看