虚拟变量的定义作用

计量经济学中对虚拟变量给出了定义、作用及使用场景,进一步的深入了解可以系统性学习。

定义:虚拟变量 ( Dummy Variables) ,用以反映无法定量度量的因素,譬如性别对收入的影响,是量化了的质变量,通常取值为0或1。

另外一些名字:又称哑变量、虚设变量、名义变量、属性变量、双值变量、定性变量、二院型变量等

作用:引入哑变量可使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到两个方程的作用,而且接近现实

简单点说,如果有一个数据字段“性别”,里面只有两个元素“男”、“女”,那么转换成为0(男)、1(女)的量化方式,并将每个元素形成一列,便是虚拟变量。譬如:

虚拟变量模型

模型定义

引入到模型有两种基本方式:



虚拟变量的设置原则

若定性因素有m个相互排斥的类型或属性,只能引入(m-1)个虚拟变量,否则会陷入"虚拟变量陷阱",产生完全共线性。(如果f(x)没有截距项,应引入m个虚拟变量)

一般情况,虚拟变量取“0”值代表比较的基准

虚拟变量在单一方程中,可以作为解释变量,也可以作为被解释变量





python的几种实现方式

准备工作,载入相关的包,准备数据集

import pandas as pd
import numpy as np
from sklearn.preprocessing import OneHotEncoder,LabelEncoder
oenc=OneHotEncoder(sparse=False)
lenc=LabelEncoder()
store=pd.DataFrame({'gender':[0.0,11.0,'unknow']})

方式1:通过pandas中的get_dummies生成,

dummies = pd.get_dummies(store['gender'], prefix='gender' )
df=pd.concat([store,dummies],axis=1)
print(df)


# 通过apply自己构建
df1=store.copy()
for col_feat in df1.gender.unique():add_col='gender_{}'.format(col_feat)df1[add_col]=df1['gender'].apply(lambda x:1 if x==col_feat else 0)
print(df1)

# one-hot 先序列化,然后再做独热编码
arr=np.array(store[['gender']].astype(str)).ravel()
lenc_code=lenc.fit_transform(arr)
oenc_code=oenc.fit_transform(lenc_code.reshape(-1,1))
add_col=list(map(lambda x:'gender_{}'.format(x),np.unique(arr)))
df_onehot=pd.concat([store,pd.DataFrame(oenc_code,columns=add_col)],axis=1)
print(df_onehot)

参考《计量经济学:虚拟变量模型》

虚拟变量的方法介绍及python实现方式相关推荐

  1. 气象数据分析之EMD方法介绍及python的实现

    文章目录 前言 一.EMD方法介绍 二.在python中的实现 1.引入库 2.生成一个随机的信号 3.做EMD分解,提取IMF和res 4.可视化 最后 前言 经验模态分解(Empirical Mo ...

  2. stata质别变量赋值_【STATA学习笔记】虚拟变量的生成

    生成虚拟变量的方法,一共3种. gen 和 replace 命令一起用. 首先,用[codebook qa301]查看原数据中,"现在的户口状况"赋值情况. 然后,用gen对&qu ...

  3. 因果推断1--基本方法介绍(个人笔记)

    目录 一.因果推断介绍 1.1 什么是因果推断 1.2为什么研究因果推断 1.3因果推断阶梯 1.4因果推断问题分类 二.因果推断理论框架 2.1 定义(这些定义后面会经常用到) 2.2 Assump ...

  4. 【计量经济学导论】13. 虚拟变量与双重差分

    文章目录 虚拟变量与双重差分 虚拟变量的模型设定 虚拟变量的回归分析 虚拟变量的综合应用 结构变化分析 交互效应分析 双重差分模型 双重差分模型的优点 虚拟变量与双重差分 虚拟变量的模型设定 首先我们 ...

  5. python加号换行,Python字符串拼接六种方法介绍

    Python字符串拼接的6种方法: 1.加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用"+"来连接两个字符串: prin ...

  6. python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  7. python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  8. 第八章 Python类中常用的特殊变量和方法

    上章花了近三十章节介绍类的知识,本章估计内容也比较多,讲完这些,其实还有更多.为什么这么多类有关的知识呢,这是因为在Python里面一切皆对象,就连整型.浮点数.字符串这些比较常规的类型都是作为类来实 ...

  9. python 定义函数方法_Python动态定义函数的方法介绍

    本篇文章给大家带来的内容是关于Python动态定义函数的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 基于 MIT 许可协议 在 Python 中,没有可以在运行时简化函数 ...

最新文章

  1. 【 FPGA 】设置伪路径
  2. PHP中全局变量$_POST[]和$_GET[]
  3. golang中的http conn实现分析
  4. ASP.NET Core微服务(四)——【静态vue使用axios解析接口】
  5. OCA第5部分中的Java难题
  6. 一文读懂架构整洁之道(附知识脉络图)
  7. 检查电脑是否被安装木马三个小命令
  8. SpringBoot之获取配置文件中的数据
  9. python卸载旧版本后依旧残余的问题
  10. 【干货】华为组织成长的动力机制.pdf(附下载链接)
  11. 青岛大学计算机科学技术学院图灵班,北京大学第三届图灵班(2018级)开班仪式举行...
  12. 计算机网络课程设计报告
  13. 改进的自适应中值滤波算法 去除椒盐噪声 python 代码实现
  14. 阅读《经济学人》,学会这样查词典,从此英语学习不求人
  15. linux 查看已安装软件
  16. unity当前项目里面AssetBundle和加载的方法总结
  17. Linux 使用for循环结构
  18. Synchronized解析——一层一层剥开洋葱的心
  19. 自动控制原理笔记(5)——线性系统的根轨迹法
  20. [机缘参悟-30]:鬼谷子-内揵篇-同理心,站在对方的立场,拉近与对方的心理距离

热门文章

  1. 16进制 两位两位转换
  2. 起点小说字体加密python TTFont解析流
  3. 日常英语单词 - 动物
  4. 第六章 Linux 文件与目录配置
  5. angularjs radio 默认选中
  6. (转)能根据文字生成图片的 GAN,深度学习领域的又一新星
  7. Firefox建议用户禁用McAfee插件
  8. 输入姓名,程序输出欢迎信息。用 substring() 和 length() 获得名字的子串和长度分别输出姓和名字。
  9. java bean生成_Java Bean 生成器
  10. 5611BH一位数码管及SMA420354L四位数码管引脚图