手把手教你相关系数的输出

2017-10-06 徐露露 爬虫俱乐部 爬虫俱乐部

快,关注这个公众号,一起涨姿势~

有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟输入文字输入文字输入文字

最近爬虫君收到了好多来自粉丝的问题求助,感谢大家对爬虫俱乐部的认可,今后我们团队也会为各位提供更加优质高效的服务。话说前几天,一位粉丝给我们发来了邮件,说他的数据是矩阵形式,想要通过能够专门处理矩阵的mata来计算任意两个变量之间的相关系数,从而找出满足条件的变量组合。

其实呀,这种小问题根本就不需要mata来出马,只需要通过简单的嵌套循环就可以做出来,咱们就使用auto这个数据来给您来细细讲解。

01

假设我们的目的是要在price到foreign这11个变量中,两两做相关系数检验,输出相关系数大于0.8小于0.9的变量组合。导入auto数据,有细心的童鞋发现了foreign这一列显示的为字体颜色为蓝色的英文,这是什么原因呢?首先我们键入:

describe

发现foreign其实是有值标签的数值型变量。

接下来我们便着手开始计算相关系数吧,首先我们先试探性地简单计算mpg和weight之间的相关系数

corr mpg weight

得到:

键入:return list,得到相关系数的返回值:

相关系数被保存在r(rho)这个返回值中。

02

如果想要对指定变量进行循环,我们可以使用到foreach这个命令,对于任意一个变量可以表达为foreach i of varlist price-foreign。 

首先我们构建一个大体的框架:

sysuse auto,clear

foreach i of varlist price-foreign{

    foreach j of varlist price-foreign{

        corr `i' `j'

    }

}

当我们运行这段程序时,屏幕输出了全部的结果,这使得我们很难直接找到我们想要的结果。

所以我们需要在这段程序上做一些修改。首先我们想在输出窗口隐去每一个相关系数列表的输出结果,并将对应的变量输出。其次,在输出窗口只输出相关系数大于0.8小于0.9的的变量组合。

针对第一个问题,我们可以在做相关系数检验这条命令前加一个“qui”,表示虽然运行了但是不在屏幕中显示。

针对第二个问题,我们可以再在里面套一个if判断语句,即:

if abs(`r(rho)')>0.8 & abs(`r(rho)')<0.9 {  

di "`i'-`j'"

}

即修改了之后,程序变为:

sysuse auto,clear

foreach i of varlist price-foreign{

    foreach j of varlist price-foreign{

        qui corr `i' `j'

        if abs(`r(rho)')>0.8 & abs(`r(rho)')<0.9{                    

            di "`i'-`j'"

            }

    }

}

运行了之后,结果为:

 输出结果算是基本出来了。

03

眼尖的同学或许发现了里面有重复出现变量组,如mpg-weight与weight-mpg(这两组表示的其实是同一组)。在前面我们提到了对于任意一个变量可以表达为foreach i of varlist price-foreign,那么在这里我们可以把另一个变量改写为foreach j of varlist `i'-foreign,这样就可以避免重复。

所以我们最终修改程序为:

clear

sysuse auto,clear

foreach i of varlist price-foreign{

    foreach j of varlist `i'-foreign{

        qui corr `i' `j'

        if abs(`r(rho)')>0.8 & abs(`r(rho)')<0.9{                    

        di "`i' -`j'"

        }

    }

}

这样,我们对程序的修改就算完成了,屏幕上就简单清晰地输出了我们想要的结果啦。

看不懂的记得戳下方视频哦~


    注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

     应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您 更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                        文字编辑:王    悦

技术总编:刘贝贝



往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3.命令sum2docx输出统计量表到docx文件

4.reg2docx报告你的实证结果吧!

5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件

6.putdocx+wordconvert—将实证结果输出到Word.docx)文档

7.Stata 15Markdown——没有做不到,只有想不到!

8.矩阵和宏的故事

9.shelloutopen anything

10.Putpdf--神奇的转换工具



关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

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

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号