STATA是一个数据统计软件,正如它的名字一样,STATA=statistic+data。STATA软件的功能和matlab类似,也可以用代码实现数据的统计与可视化。但几乎只能进行整行整列的数据处理,且每次只能加载处理一个数据矩阵,灵活性和全面性比不过matlab。那我为什么要用STATA呢?这是因为我选修了这门课,水一下学分。当然,相比matlab,它在数据处理方面,也有一些方便之处。下面记录STATA的一些常用的处理、统计、可视化方法。

基本命令

  STATA命令的语法大部分是这样的:命令(空格)待处理的数据名(逗号)可选的一些参数。

读取软件自带数据集 sysuse

  首先读取STATA自带的样例数据:

sysuse auto, clear

  其中sysuse是一个命令,auto是汽车数据集的名称,clear是在读取数据之前先清空内存中已读取的数据。之后可以在变量窗口看到读取的变量。实际上这里的变量就是excel列表中的列标,每个变量代表一个列标。然后每个列标都有它对应的属性,属性定义了每列数据的类型和一些信息等。如下图:

浏览数据集 br

  用br命令(等同于browse,STATA要弄一个简写让你更方便一些,然而让初学者很烦,可读性很差,弄巧成拙)可以查看所读取的表格:

br

  如下图所示: 

获取数据基本统计信息 sum codebook tabstat

  summarize可以看表格的一些统计信息、codebook则是对表格的各列进行统计。它们后面可以跟着列名,则只显示这几列的信息,否则显示所有列:

summarize price mpg
codebook rep78

  如下图所示:

  tabstat可计算某种统计值,统计值种类比sum和codebook多,当做print来用吧:

tabstat price, by(rep78) stat(std max min)

  以上显示车价格,在rep78的各个条件下的标准差、最大值和最小值。想要其他统计值,用help查看简写方法╮(╯▽╰)╭。

变量生成与替换 gen egen

  gen和egen用于生成变量,gen是一对一生成,egen是一对多生成(比如max()值会赋值到每一行上)。如:

gen test1 = 2*price
egen test2 = max(price)

  replace用于变量的替换,如:

replace test1 = test2 in 1/10

  将test1的前10行数据替换为test2。其中的in在很多其他对行进行操作的命令中也可以使用。

  另外要注意的是,不像matlab,STATA中的操作不能直接使用,必须要进行赋值,也就是用gen等命令生成某列,否则会报错。

基于某列取值下的分析 by

  如果想在某列的各个不同的取值下,对其它列进行分析,可以用by,用法如下:

by foreign, sort: sum price

  表示在foreign的各个取值下,获取price一些基本统计信息(sum就是summarize)。其中,如果by后面的变量没有排序,则必须要加sort,会先对其进行排序,否则会出错(默认排序不就行了?)。

  如果想在某列特定取值下进行分析,可以用if:

sum price if foreign == 0

安装外部命令

  STATA的命令是很分散的,不像python、matlab把相似的命令、处理方法都打包在一块儿。所以有些外部命令没得用,只能一个一个安装。用help查询相关命令,然后进行安装:

help graph3d 

统计命令

  下面的命令使用软件自带的auto数据集。

数量统计tabulate

  统计某列或某两列中不同取值的数量,用法就是后面跟着一个或两个变量:

tabulate mpg
tabulate mpg rep78

  两个以上变量会报错。

相关性分析correlate

  correlate分析变量的相关性,可以输入多个变量,用法如下:

correlate mpg price rep78

  运行结果:

二维可视化twoway

  twoway进行二维可视化,后面每个括号内都能画一个相应的可视化图。如下所示:

twoway (scatter length mpg) (lfit length mpg)

  表示以length为y轴,mpg为x轴,绘制散点图和拟合一元一次方程。可视化结果如下:

  再加by可以在某个变量的各个取值下分别进行可视化:

twoway (scatter length weight) (lfit length weight), by(foreign)

回归regress

基本用法

  使用几列数据对某列数据进行线性回归。比如,使用mpg、rep78、length作为因变量,对price进行回归,用法如下:

regress price mpg rep78 length

  结果:

  我们可以进行一个测试,创建test变量为price、mpg、weight的线性和,然后进行回归:

gen test = price*2+mpg*3+weight*456+789
regress test price mpg weight

  结果:

  可以看出线性回归得到的系数与创建的一模一样。之后还可以使用predict创建回归值和回归偏差:

predict test_hat
predict test_res, res

  结果如下:

二次以上的回归方式

  如果想进行二次回归,可以先创建因变量的平方,然后使用一次、二次变量作为因变量进行回归:

gen weight2 = weight^2
regress mpg weight weight2 foreign
predict mpg_hat
sort weight
twoway (scatter mpg weight) (line mpg_hat weight), by(foreign)

  分别按国内外汽车进行了车重和油耗的二次关系的统计,结果如下:

STATA数据统计软件学习记录的更多相关文章

  1. 大数据kafka视频教程 学习记录【B站尚硅谷 】

    视频地址: https://www.bilibili.com/video/av35354301/?p=1           2019/03/06 21:59 消息队列的内部实现: Kafka基础: ...

  2. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

  3. 大数据学习day34---spark14------1 redis的事务(pipeline)测试 ,2. 利用redis的pipeline实现数据统计的exactlyonce ,3 SparkStreaming中数据写入Hbase实现ExactlyOnce, 4.Spark StandAlone的执行模式,5 spark on yarn

    1 redis的事务(pipeline)测试 Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚.事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到 ...

  4. 大数据学习day33----spark13-----1.两种方式管理偏移量并将偏移量写入redis 2. MySQL事务的测试 3.利用MySQL事务实现数据统计的ExactlyOnce(sql语句中出现相同key时如何进行累加(此处时出现相同的单词))4 将数据写入kafka

    1.两种方式管理偏移量并将偏移量写入redis (1)第一种:rdd的形式 一般是使用这种直连的方式,但其缺点是没法调用一些更加高级的api,如窗口操作.如果想更加精确的控制偏移量,就使用这种方式 代 ...

  5. 【分享】SAS统计分析软件学习教程电子书合集下载

    SAS是著名的统计分析软件,全称为Statistics Analysis System,最早由北卡罗来纳大学的两位生物统计学研究生编制,并于1976年成立了SAS软件研究所,正式推出了SAS软件. 转 ...

  6. Thrift学习记录

    Thrift学习记录 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在C++,Java,Python,PHP,Ruby,Erlang, ...

  7. 我的Spring学习记录(五)

    在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...

  8. 学会C sharp计算机编程语言 轻松开发财务、统计软件

    就像人们用同一种语言才可以顺畅交流一样,语言是计算机编程的根本,是IT世界交流的工具.运用这些计算机语言,人们可以创造出一个美妙的世界.你点击某个网页或是安装一个应用程序软件,这简简单单动作的背后,就 ...

  9. 韩天峰博客 php基础知识学习记录

    http://rango.swoole.com 写好PHP代码真的不容易,给大家几个建议: 慎用全局变量,全局变量不好管理的,会导致你的代码依赖于全局变量,而耦合度太高. 一定不要复制粘贴代码,可重用 ...

  10. Ganlia采样、统计及RRD记录周期(频次、间隔)的配置和更改

    Ganglia & RRD Ganglia是伯克利开发的一个集群监控软件.可以监视和显示集群中的节点的各种状态信息,比如如:cpu .mem.硬盘利用率, I/O负载.网络流量情况等,同时可以 ...

随机推荐

  1. Ubuntu 设置 FTP 服务

    安装 VSFTP 服务 sudo apt install vsftpd 检查配置文件 sudo vim /etc/vsftpd.conf 确保以下配置项正确: #禁止匿名访问 anonymous_en ...

  2. layui的各模块的基本用途是什么?

    Layui 是一个流行的前端UI框架,提供了多个模块,每个模块有不同的功能和用途.以下是 Layui 的一些主要模块以及它们的基本用途: 核心模块(layui): Layui 的核心模块包含了一些核心 ...

  3. MVCC能否解决幻读?

    一.什么是MVCC 多版本控制: 指的是一种提高并发的技术.最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞.引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提 ...

  4. 6.12Web应用漏洞发现探针利用

    已知CMS.开发框架. 思路: 各个页面查看数据包(地址信息),查看框架,上fofa关键字搜索(查看其框架信息如thinkhphp),利用检测工具测试漏洞情况: 网站根目录下的robots.txt文件 ...

  5. vue3项目部署到Github

    此教程适应于以webpack,vue-cli,vite等脚手架构建的vue项目.当然,vue2和vue3都是可以滴. 1. 前提:你的代码库已经提交到Github上 如果没有的话,请到GitHub上新 ...

  6. EF Core – Library use EF

    前言 写 Library 有时候会用到 database, 会想用 EF 来维护. 比如 Identity, IdentityServer, OpenIddict, 这些 Library 都有使用到 ...

  7. ShiftAddAug:基于乘法算子训练的最新无乘法网络方案 | CVPR'24

    不包含乘法的运算符,如移位和加法,因其与硬件的兼容性而日益受到重视.然而,采用这些运算符的神经网络(NNs)通常表现出比具有相同结构的传统NNs更低的准确性.ShiftAddAug利用成本较高的乘法来 ...

  8. Android 常用的性能分析工具详解:GPU呈现模式

    此篇将重点介绍几种常用的Android性能分析工具: 一.Logcat 日志 选取Tag=ActivityManager,可以粗略地知道界面Displaying的时间消耗.当我们打开一个Activit ...

  9. Android Systrace 基础知识 -- 分析 Systrace 预备知识

    1. 正文 1.1 线程状态查看 Systrace 会用不同的颜色来标识不同的线程状态, 在每个方法上面都会有对应的线程状态来标识目前线程所处的状态,通过查看线程状态我们可以知道目前的瓶颈是什么, 是 ...

  10. iOSwkwebView 打开 TXT/PDF 文件乱码的问题

    最近做资料文件下载下来并查看的时候,用 WKWebView 打开office 类型的文件的时候是没问题的,但是打开测试人员上传的一个 TXT/PDF 文件就出现了乱码问题,经过查看,应该是文件的编码问 ...