命令tips(三):变量的“进化”

2016-10-02 尹兴强 爬虫俱乐部 爬虫俱乐部

祖国妈妈过生日啦~爬虫俱乐部祝祖国繁荣富强,也祝读者宝宝们节日快乐!在这个特殊的节日里,朋友圈旅行摄影大赛开始了,不知道小伙伴们有没有参赛?不过在大家各种浪的时候,爬虫酱要提醒大家不要忘记我们厉害的stata哥!今天,我们要分享给大家两个很实用的命令——CenterSuest


1Center 标准化与中心化处理


有时模型中的变量经过偏相关系数表(或vif检验),我们会发现其存在多重共线(尤其是引入多变量的交叉项时)。对于这种情况,其中一个解决方案便是将存在共线的变量进行重新定义,center便是一种重新定义变量的方法。其具体的定义及处理过程参见help center(再次强烈推荐查看code本身的help)。

. ssc install center   //安装外部命令

. help center


. sysuse auto,clear

  • 单个变量的中心化

. center mpg,gen(c_mpg)   //括号中的名字可自行设置

  • 多变量中心化

. center mpg price weight   //自动生成前缀带c_var的新变量。

  • 按特定要求中心化(诸如经常使用的年度行业:bysort year ind:center

. bysort rep78: center mpg price weight, replace      //可以与上述结果比较

  • 变量的标准化

. center mpg price weight, prefix(z_) standardize     // 其与单纯中心化的区别


. sum *mpg,d     //比较中心化与标准化的差异

中心化处理后的c_var与原变量除均值不同外,其他基本一致,而标准化后的z_var还会改变变量的偏度、峰度及其分布。





2Suest


大家平常跑数据时,不管是控制变量还是主变量,最希望看到的就是“满天星”。但是有时候“满天星”并非是我们最期望的结果,我们可能希望通过某个主变量分组后,一个显著(较大的系数+较强的显著性),一个不显著(较小的系数+较小的显著性或不显著),但这种完美的结果大都难以实现,此时回归模型中某一变量系数的差异性检验就显得尤为重要(因为前期很少接触该命令,大抵是自己的回归结果都比较幸运还不需要它),下面简单得介绍一下该检验。因为笔者也是初次学习,如有错误请同仁批评指正!

首先,help suest,看看命令的具体作用如下(在这也借此机会提醒stata的使用者help功能很强大,一般的命令如何操作,先help自行学习,实在不明白时再提问,既有助于相互交流、共同学习,还利于提高自学能力及答疑效率):


下面具体以以下几个例子进行讲解(大都来自其官方的example改编):

Example 1: A Hausman test(注意其与suest的区别,Description中有介绍哦)

. webuse sysdsn4

. mlogit insure age male

. estimates store m1, title(all three insurance forms)

. mlogit insure age male if insure != "Uninsure":insure

. estimates store m2, title(insure != "Uninsure":insure). mlogit insure age male if insure != "Prepaid":insure

. estimates store m3, title(insure != "Prepaid":insure). hausman m2 m1, alleqs constant


注意原假设(H0):系数不存在显著性差异,如果拒绝原假设则认为系数是存在明显差异的。由结果可知m1m2是不存在明显的差异。

. hausman m3 m1, alleqs constant 


提示需要用suest进行进一步的test

Example 2: Do coefficients vary between groups? ("Chow test")

. webuse income 

. regress inc edu exp if male

. estimates store Male

. regress inc edu exp if !male

. estimates store Female
. suest Male Female ,vce(cluster famid)   //vce 部分可加可不加,具体参见help。

. test [Male_mean = Female_mean]   //尤其注意标红部分的名称需与储存统一。

Example 3: A nonlinear Hausman-like test(注意回归方法和因变量都是不同的哦!)

. webuse income

. probit promo edu exp

. estimates store Promo

. regress inc edu exp

. estimates store Inc


. suest Promo Inc

. testnl [Promo_promo]edu/[Promo_promo]exp = [Inc_mean]edu/[Inc_mean]exp


Example 4: Using suest with survey data, the svy prefix(调查数据)

. webuse nhanes2f

. svyset psuid [pw=finalwgt], strata(stratid) //suest之前的svyset处理(参见help)

. svy:ologit health female black age age2 //有序回归

. estimates store H5 

. gen health3 = clip(health,2,4)  //分段函数的操作,详情help clip

. svy: ologit health3 female black age age2

. estimates store H3

. suest H5 H3

. test [H5_health=H3_health3]

. test ([H5_cut2]_cons=[H3_cut1]_cons) ([H5_cut3]_cons=[H3_cut2]_cons)


今天,我们推送了两个很实用的数据处理命令,小伙伴们快实践看看,把实践结果po图到票圈儿参加摄影大赛,绝对秒杀全场!最后,再次祝大家节日快乐,爬虫俱乐部陪您欢度国庆!

我们团队原来的微信公众号是“数据处理援助中心”,现在正式搬家到“爬虫俱乐部”,欢迎关注。新的公众号开始,我们推出有问必答栏目,对您提出的问题,我们会尽力回答,并通过推文的形式进行发布。我们也欢迎各位粉丝向公众号投稿。

(编辑 @强宇曦)


欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:xueyuan19920310@163.com 

投稿要求:

1)必须原创,禁止抄袭;

2)必须准确,详细,有例子,有截图;

注意事项:

1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名。

2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。

3)如果大家遇到关于stata处理分析数据的问题,也可以给该邮箱写邮件,邮件名称为“提问”+“问题名称或者关键词”,我们会在后期的推文里给予解答。


长按二维码关注公众号

微信扫一扫
关注该公众号