楼主: stataxsd
11047 10

[数据管理求助] 如何把三分类变量变成虚拟变量 [推广有奖]

  • 1关注
  • 0粉丝

本科生

71%

还不是VIP/贵宾

-

威望
0
论坛币
20579 个
通用积分
6.0980
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1169 点
帖子
74
精华
0
在线时间
60 小时
注册时间
2019-6-23
最后登录
2023-1-2

楼主
stataxsd 发表于 2020-3-23 08:49:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问如何把辅导班1、辅导班2、辅导班3这三个三分类变量重新变为学校辅导、竞赛辅导、才艺培养这三个虚拟变量。辅导班1至3有三个数字1,2,3;1代表学校辅导,2代表竞赛辅导,3代表才艺培养;学校辅导、竞赛辅导、才艺培养是虚拟变量,1代表是,0代表否。请看实例,个人代码1,辅导班1为1,所以变成虚拟变量的学校辅导,改为1,竞赛辅导、才艺培养没参与,所以变为0.个人代码3,辅导班1为1,说明参与学校辅导,辅导班2为3,说明参与才艺培养,相应的要在虚拟变量下写为1,无竞赛辅导,所以虚拟变量为0.个人代码6,辅导班1为1,说明参与学校辅导,辅导班2为2,说明参与竞赛辅导,相应地在虚拟变量下写为1,无才艺培养,所以虚拟变量为0.个人代码8,辅导班1,2,3均参与,且为1,2,3,相应的虚拟变量都应写为1.请问如何写代码,将已知的辅导班1至3,变换为虚拟变量学校辅导,竞赛辅导,才艺培养。因为我要用probit模型,所以因变量只能是二分类变量是否,而且往年数据都是二分类变量,只有这一年是三分类。不胜感激!
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input byte(个人代码 辅导班1 辅导班2 辅导班3 学校辅导 竞赛辅导 才艺培养)
  4. 1 1 . . 1 0 0
  5. 2 1 . . 1 0 0
  6. 3 1 3 . 1 0 1
  7. 4 3 . . 0 0 1
  8. 5 3 . . 0 0 1
  9. 6 1 2 . 1 1 0
  10. 7 2 . . 0 1 0
  11. 8 1 2 3 1 1 1
  12. 9 2 3 . 0 1 1
  13. end
复制代码



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:虚拟变量 分类变量 generated generate install

回帖推荐

蓝色 发表于8楼  查看完整内容

我也是stata15啊 没有问题

沙发
蓝色 发表于 2020-3-24 16:39:58
  1. gen  学校辅导=(辅导班1==1|辅导班2==1|辅导班3==1)
  2. gen  竞赛辅导=(辅导班1==2|辅导班2==2|辅导班3==2)
  3. gen  才艺培养=(辅导班1==3|辅导班2==3|辅导班3==3)
复制代码

藤椅
stataxsd 发表于 2020-3-25 09:29:54
command gen  学校辅导 is unrecognized, gen  竞赛辅导=(辅导班1==2|辅导班2==2|辅导班3==2), gen  才艺培养=(辅导班1==3|辅导班2==3|辅导班3==3)。所以不行。。。您可以再帮忙想想吗。。。谢谢!

板凳
蓝色 发表于 2020-3-25 09:34:40 来自手机
我这里执行没有问题

报纸
震震果实 发表于 2020-3-25 09:38:37
stataxsd 发表于 2020-3-25 09:29
command gen  学校辅导 is unrecognized, gen  竞赛辅导=(辅导班1==2|辅导班2==2|辅导 ...
更换高版本的stata。15-16均可执行

地板
stataxsd 发表于 2020-3-27 11:17:47
就是stata15,难道我要换成stata16.。。。。

7
蓝色 发表于 2020-3-27 12:17:38
  1. . version
  2. version 15.1

  3. .
  4. . gen  学校辅导=(辅导班1==1|辅导班2==1|辅导班3==1)

  5. . gen  竞赛辅导=(辅导班1==2|辅导班2==2|辅导班3==2)

  6. . gen  才艺培养=(辅导班1==3|辅导班2==3|辅导班3==3)

  7. . list

  8.      +-------------------------------------------------------------------------+
  9.      | 个人代码   辅导班1   辅导班2   辅导班3   学校辅导   竞赛辅导   才艺培养 |
  10.      |-------------------------------------------------------------------------|
  11.   1. |        1         1         .         .          1          0          0 |
  12.   2. |        2         1         .         .          1          0          0 |
  13.   3. |        3         1         3         .          1          0          1 |
  14.   4. |        4         3         .         .          0          0          1 |
  15.   5. |        5         3         .         .          0          0          1 |
  16.      |-------------------------------------------------------------------------|
  17.   6. |        6         1         2         .          1          1          0 |
  18.   7. |        7         2         .         .          0          1          0 |
  19.   8. |        8         1         2         3          1          1          1 |
  20.   9. |        9         2         3         .          0          1          1 |
  21.      +-------------------------------------------------------------------------+
复制代码


我也是stata15啊
没有问题

8
蓝色 发表于 2020-3-27 12:17:57
  1. . version
  2. version 15.1

  3. .
  4. . gen  学校辅导=(辅导班1==1|辅导班2==1|辅导班3==1)

  5. . gen  竞赛辅导=(辅导班1==2|辅导班2==2|辅导班3==2)

  6. . gen  才艺培养=(辅导班1==3|辅导班2==3|辅导班3==3)

  7. . list

  8.      +-------------------------------------------------------------------------+
  9.      | 个人代码   辅导班1   辅导班2   辅导班3   学校辅导   竞赛辅导   才艺培养 |
  10.      |-------------------------------------------------------------------------|
  11.   1. |        1         1         .         .          1          0          0 |
  12.   2. |        2         1         .         .          1          0          0 |
  13.   3. |        3         1         3         .          1          0          1 |
  14.   4. |        4         3         .         .          0          0          1 |
  15.   5. |        5         3         .         .          0          0          1 |
  16.      |-------------------------------------------------------------------------|
  17.   6. |        6         1         2         .          1          1          0 |
  18.   7. |        7         2         .         .          0          1          0 |
  19.   8. |        8         1         2         3          1          1          1 |
  20.   9. |        9         2         3         .          0          1          1 |
  21.      +-------------------------------------------------------------------------+
复制代码


我也是stata15啊
没有问题

9
stataxsd 发表于 2020-3-27 14:35:05
谢谢您!只是我要手动输入才行,离真理千里其实就一步之隔

10
zhangzhehaha 发表于 2021-11-20 13:51:05
其实把三分类设置数值为为1、2、3的一个虚拟变量不太符合逻辑,这样设置基本等同于把这个变量当做1、2、3之间有递进关系的一个连续变量了,违背了分类变量的意义。一般来说这种情况应该设置两个0、1虚拟变量。当回归模型包含截距时,如变量有k个类别,需定义k-1个哑变量来表示这些类别;当回归模型中不包含截距时,k个类别,需定义k个哑变量来表示这些类别。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-31 22:54