查看原文
其他

如何随机生成满足特定数据特征的新变量?

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:赵一帆,中南财经政法大学金融学院

本文编辑:刘子艳

技术总编:李婷婷

Stata&Python云端课程来啦!

好雨知时节,当春乃发生。为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》。关于Stata,爬虫俱乐部推出了系列课程,内容包括字符串函数、正则表达式、爬虫专题和文本分析,可以随心搭配,价格美丽,物超所值,更多信息可查看Stata系列推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程》等。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!

导读

     在我们日常科研工作或者写论文的过程中,通常会使用自己从各大数据库和网站等搜集整理的数据,但是诸位是否知道如何快速生成满足特定数据结构的变量呢?今天我们就来介绍Stata中的两个创建其他变量的小命令——corr2data命令&drawnorm命令。这两个命令可以实现哪些功能,又有什么区别呢?下面我们来一起看看吧~

1

corr2data命令介绍

先我们来看看corr2data命令,它的全称是 Create dataset with specified correlation structure,我们可以使用这个命令生成具有指定数据结构的数据集。另外,它属于内部命令,不需要进行下载即可使用。

1.1

命令语法

 corr2data newvarlist [, options]

1.2

选项介绍

Options

1.clear:清除之前的数据集。

2.double:表示生成的变量类型是双精度浮点型,表示数据的时候比较准确一些。默认选项是单精度的数据类型(float)。

3.n(#) :表示生成观测值的数量,默认是当前的数量。

4.sds(vector)  :表示生成变量的标准差。

5.corr(matrix|vector):表示生成变量的相关系数矩阵,默认为正交数据。

6.cov(matrix|vector) :表示生成变量的协方差矩阵,默认为正交数据。

7.cstorage(full) :表示生成变量的相关矩阵或协方差矩阵的结构是一个对称的k*k矩阵。

8.cstorage(lower) :表示生成变量的相关矩阵或协方差矩阵的结构是一个下三角矩阵。

9.cstorage(upper) :表示生成变量的相关矩阵或协方差矩阵的结构是为一个上三角矩阵。

10.forcepsd :要求生成变量的协方差/相关矩阵为正定或半正定矩阵。

11.means(vector):表示生成变量的均值;默认是意味着(0)

12.seed(#) :种子随机数生成器

注意

(1)  选项sds()不能与cov()一起指定。(2)  如果没有指定corr()cov()选项,默认为正交数据。(3)  cstorage (full|lower|upper)的作用是指定corr()cov()中相关矩阵或协方差矩阵结构的存储模式。支持以下存储方式:full指定相关矩阵或协方差矩阵为一个对称的k*k矩阵;lower指定相关矩阵或协方差矩阵为下三角矩阵;upper指定相关矩阵或协方差矩阵为上三角矩阵。

2

drawnorm命令介绍

我们再来看看drawnorm命令,它的全称是Draw sample from multivariate normal distribution,即我们可以从指定的多元正态分布中抽取样本。

2.1

命令语法

drawnorm newvarlist [, options]

2.2

选项介绍

与corr2data命令的选项一致,在此不作赘述。

3

案例分析

  上面我们分别介绍了corr2data和drawnorm命令,它们似乎都与创建一个新的变量数据有关,那我们应该如何区分然后正确使用呢?

3.1 如果是要产生一个具有指定数据结构的总体——使用corr2data命令

比如我们需要产生一个有1000个观测值的总体,其两变量x和y的均值分别为2和3,标准差分别为1和2,变量x与y的相关系数矩阵为(1 0.2\0.2 1), 并把相关系数矩阵设置为一个对称的k*k矩阵,则命令为:

clearcorr2data x y, clear n(1000) means(2 3) sds(1 2) corr(1 0.2\0.2 1) cstorage(full) //生成具有指定数据结构的变量sum //描述性统计分析 pwcorr x y, sig //显示变量间的相关系数

运行结果为:

这时,就生成了含有x和y变量的数据集,而且如上图所示,两个变量的观测值均为1000,均值分别为2和3,标准差分别为1和2。

同时,两个变量间的相关系数矩阵为(1 0.2\0.2 1) 。3.2  如果从一个给定的正态总体中抽取一个有1000个观测值的样本——使用drawnorm命令举个例子,已知总体数据是呈现正态分布,两变量x和y的均值分别为2和3,标准差分别为1和2,且这两变量的相关系数矩阵为(1 0.2\0.2 1),并把相关系数矩阵设置为一个对称的k*k矩阵, 则具体代码为:
cleardrawnorm x y, n(1000) means(2 3) sds(1 3) corr(1 0.2\0.2 1) cstorage(full) //从正态总体中抽取有1000个观测值的样本sum //描述性统计分析pwcorr x y, sig //显示变量间的相关系数  运行结果为:

  如图所示,我们的观测值样本均值为1.994498和2.91034;标准差分别为1.016045和2.991129。

  如图所示,两个变量的相关系数矩阵为(1 0.2138\0.2138  1)。  我们发现:观测值的均值、标准差和相关系数等统计特征与正态总体的接近但不完全等于,因为这1000个观测值是从这个正态总体随机抽取的样本。   以上就是今天对于corr2data和drawnorm命令的介绍啦,大家快动手试一试呀!

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。

期待您的点赞、评论、转发哟~


对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!

往期推文推荐   

爬取无法翻页网页——自然科学基金项目及可视化

爬取京东评论数据进行情感分类

Stata与音乐之间的酷炫连接

这些年,爬虫俱乐部走出的博士们!
         看这里,近五年各校高被引论文上榜名单!

高校经管类核心期刊发文排行榜

疯狂的科研创新加速器——Stata!

  可盐可甜,“粽”有所爱,快来pick你最爱的粽子吧!

  好玩有趣的手绘图形库——cutecharts

  爬虫实战|摩尔庄园微博话题讨论

  一季度财报出炉,哪些公司最烧钱?

  一季度财报出炉,哪些公司最赚钱?

  技能篇 | 图片合并大法

  批量空气质量数据文件合并分析

  Stata17之日期时间新功能

  Stata17之Lasso新功能

        爱奇艺视频弹幕爬取之《小舍得》         数据可视化利器——Matplotlib

  从第七次人口普查看中国人口变化|Stata与Python交互绘图

  200万投资者关注!!哪家公司这么牛?

  
带你领略一天天气之变化

  利用pyecharts看微博粉丝地区分布

  零值太多怎么办?解锁Stata17新命令ziologit

  Stata17新功能之Python API  小罗肥归升级啦|解锁Stata17之新命令xtmlogit  
速度大比拼之Stata17有多快?

初识PyStata

辞旧迎新——Stata17之Do-file编辑器优化

Stata17新亮点——解放表格输出生产力

关于我们 


微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。



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

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


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存