问 题
在进行实证研究中,很多时候我们要在回归中加入一些交叉项,当要生成的交叉项比较少时,我们通常可以通过gen来解决问题;但如果要生成比较多的交叉项时,这种方法就会显得比较麻烦。defg
方 法
genicv命令可以一键生成很多交叉变量
1.在使用这个命令之前,首先要安装一下这个命令:
ssc install genicv
2.genicv的命令格式为:
其中,有几个option需要注意:
(1) sepvars(chars)选项:在默认情况下,我们生成的交叉项的名称中间是用”_”分隔的,
当我们使用了这个选项之后中间的分隔符就会变成“chars”,但是这个“chars”只能是大小写的英文字母,不能是数字、及一些特殊符号(* , ;等),可以从下面看出差别:
① 英文字母,可以正常运行:
② 数字,会出现错误:
③ 特殊符号,也会出现错误:
(2) x(chars)选项:与上面的选项类似,这个是决定生成变量的标签名称中间的分隔符,在默认情况下为“*”:
使用了这个选项之后分隔符为“chars”,这个“chars”包括以下几种:
① 英文字母:
genicv length weight foreign,x(X)
genicv length weight foreign,x(chars)
② 数字
genicv length weight foreign,x(0)
③ 特殊符号
genicv length weight foreign,x(;)
可以看到的是,标签名中间的分隔符可以随意定义,而变量名却不可以,这是因为stata中对变量定义的限制,如不可以包含特殊符号等。
例 子
我们以stata自带的auto数据为例,看看究竟如何生成交叉变量。
假如我想生成length weight foreign这几个变量的交叉变量,我可以这样进行:
sysuse auto,clear
genicv length weight foreign
这样之后就可以生成四个交叉变量
然后我可以利用其中的一个或者多个交叉变量进行回归分析:
reg price length weight length_weight
原本要生成四个交叉变量,用gen命令我可能要写四行代码,有了genicv之后,不管要生成多少个交叉变量,我都可以用一行代码解决。但是这个命令有一个弊端就是可能会生成我们并不需要的交叉变量,这是我们需要解决的问题。
我们之前的推文——朝花夕拾|生成交叉变量和非线性关系,也有给大家分享直接在回归中加入交叉变量,而不用先生成交叉变量的一种方法,大家有兴趣的可以去温习一下~
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~
文字编辑:高娜娜
技术总编:刘贝贝
往期推文推荐:
7.一言不合就用stata写邮件(Outlook/Foxmail)
9.I have a Stata, I have a python
10.I have a Stata, I have a Python之二——pdf转word
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。
欢迎关注爬虫俱乐部
微信扫一扫
关注该公众号