学习数据分析有很多种方式,但是统计学是必须要掌握的一门学科。统计学研究各领域数据,是一套获取、分析、得出结论的一套科学方法,在任何一个科学领域和工业/商业领域,通都可以过统计学方法进行数据研究。
进入统计学前,必须要知道的名词
变量
描述观察对象的统一称谓。身高、企业的销售额、色子的点数等都可以称为变量。
数据
变量的观测结果就是数据。身高的观测结果有167、180,销售额的观测结果有20000、309000,一个色子的点数的观测结果有:2、4、5、6。
因为观测结果也就是说数据的不同,变量还可以分为:类别变量和数值变量。
类别变量
顾名思义,有的变量的数据描述了变量的属性特征,比如性别变量的观测结果是男性、女性;还有的变量的数据描述了变量的性质特征,比如销售业绩的观测结果是高、中、低。所以这种取值为属性、类别、或者区间值的变量统称为类别变量,有的地方也叫分类变量或定性变量。我们统一将类别变量的取值称为类别数据或分类数据。
由于类别变量的特殊性,还可以继续细分为:无序类别变量和有序类别变量。销售业绩的高、中、低就是一个有序类别变量。可见,取值可排序就是有序类别变量了,反之就是无序类别变量。
数值变量
数值变量的取值用数字表示,它的取值可以称为数值数据或定量数据。根据取值的特性,数值变量可以分为离散变量和连续变量。
离散变量的取值是有限的,每一个值都可以一一列举出来。例如企业销售额、产品生产数量。
连续变量是在一个或多个区间中任意取值的变量,取值过程连续不断导致无穷尽,所以不能一一列举。比如年龄、温度。
所以你会发现,如果离散变量的取值非常多时,其实也可以为连续变量。
观测数据
所有用于分析的社会上的可以获取到的数据都是观测数据。
实验数据
在实验的目的下,针对实验对象进行收集的数据是实验数据。
截面数据
在相同或相近的时间点上收集的数据,比如2020年中国粮食产量。
时间序列数据
观察某对象在时间下的变化的数据,比如1990年到2020年的中国粮食产量。
总体和样本
总体也可以称为母群体,是一个不太能量化的全体的总称,比如人类的身高,这是一个总体。要研究人类的身高必然需要抽取部分人的数据,这个部分人的数据就是样本,样本可以是任何元素,构成样本的成为样本量。
统计学有很多方法可以带我们对总体进行抽样,在日后会慢慢了解。
R语言是什么?
我把R成为牛逼的计算器,对于没有编程基础的你不要害怕。
不同于Python、SQL的计算,R是目前世界上公认的最专业的统计编程语言,它的逻辑编排、包的设计、参数等更适合统计学、数学学科对海量数据的分析和处理。所以,在不考虑工程化而只作为数据分析的层面上说R语言是做合适不过了。
如何安装
第一步:下载R语言Terminal,下载地址https://www.r-project.org/,按提示安装后即可使用,但编程的交互体验较差,如果你不喜欢,可以进入到第二步;
第二步:下载R Studio,这是一个交互编程工具,我认为对新手来讲更友好一些,下载地址https://rstudio.com/products/rstudio/download/,同样按提示安装后即可使用。
(网上太多细节,所以度娘即可获取方法)
R语言基本语法(入门)
赋值符号是<-
如果你想对某个对象进行赋值,请使用<-连接
# 将Tom赋值给name对象
name <- Tom
# 打印输出name对象结果,print是一种函数命令,后面用()写入函数作用的对象
print(name)
获取帮助说明
R语言内部都有各类函数和包的解释说明,对于英文好的人来说非常方便。你想问什么东西,就在这个东西前面写个英文问号
# 打开print的帮助页面,直接回车后,print的帮助说明自动弹出
?print
包
R语言内部都有非常多的函数和数据的集合,这就是包。默认安装R程序后,本机已经带有了一些包,但有时候是不够用的。可以根据自己的统计需求,来选择下载和安装。
# 利用install.packages函数进行安装,可以一次装一个包,也可以一次装多个包
install.packages("car")
install.packages(c("car","vcd"))
# 在某些统计编程开始时要用到某类包的函数或者数据,需要先把包进行加载而后使用
# 函数内无需用双引号,
library(car)
加载数据
读取R格式文件
load("此处填写文件路径.RData")
读取CSV格式文件
#路径名,文档是否包含标题
read.csv("此处填写文件路径.csv",header=FALSE)
读取Excel格式文件
#先安装包xlsx,再加载包
install.packages("xlsx")
library(xlsx)
# 路径名,sheet表名,是否作为数据框否则转化成列表
read.xlsx("此处填写文件路径.xlsx",sheetName ="人数",as.data.frame = TRUE)
链接MySQL数据库读取数据
# 安装包文件
install.packages("RMySQL","DBI")
library(RMySQL)
library(DBI)
# 尝试连接数据库
con<-dbConnect(MySQL(),dbname="yourdatabasename",user="root",password="yourpassword",host="localhost")
# 查看table
dbListTables(con)
# 查看table字段
dbListFields(con,"member")
# 解决乱码关键,设置数据库读取编码格式为utf-8
dbSendQuery(con,'SET NAMES utf8')
# 读取表格
dbReadTable(con,"dept")
dbReadTable(con,"records_display")
# 用函数dbGetQuery进行数据查询:选择链接对象,输入查询语句
dbGetQuery(con,"select * from cd_txn_info")
#断开当前连接
dbDisconnect(con)
特殊值
R支持四种特殊值:Inf(正无穷)、-Inf(负无穷)、NaN和NA。
NaN是“不是一个数”(not-a-number)的缩写,它说明:“当前的计算没有数学意义或无法正确执行”。
NA是“不可用”(not available)的缩写,它是缺失值的意思。在我们日常分析中进场可以看到NA,同时在计算过程中涉及一个缺失值的计算,所得结果也是NA。
逻辑值
TRUE、FALSE、NA是R语言的三个逻辑值。其中TRUE、FALSE、NA不可以作为对象或变量出现。由于原始数据中经常出现空值的情况,所有NA在此会出现,不要太诧异。
#正确的做法
true <- 1
#错误的做法
TRUE <- 1
在R中有三个向量化逻辑运算符:
- !代表非操作
- &代表与操作
- |代表或操作
类
R语言的所有变量都有类的概念(你可以理解为类型)。类分为:numeric数值类、logical逻辑类、integer整数类、complex复数类、character字符类、factor因子类。
利用class函数可以找到类型,利用c函数可以创建向量,向量后文会有补充。
class(c(TRUE,TRUE))
class(1)
#i代表虚部,z=a+bi(a,b均为实数)的数称为复数
class(3+2i)
#L后缀可以把数字变成整数类型,注意数字不可以为小数
class(300L)
#这是错误的
class(300.09L)
class(c("eggs","balls"))
# 创建因子赋值给gender变量
gender<-factor(c("unknow","male","female","male","unknow"))
# 查看gender因子的标签,也就非重复的标签是什么,称之为查看因子的水平。
# 注意因子水平的输出结果,默认按照字母顺序排列,第一个并不是unknow,是female
levels(gender)
# 查看gender因子的水平的个数,也就是有几个标签
nlevels(gender)
# 因子在底层存储的时,通过整数进行对应,可通过as.integer函数查看因子对应的整数
as.integer(gender)
向量
利用c函数可以创建向量,创建后得到的序列为一个矢量
# 使用c函数可以创建向量,其中:的意思是从几到几,默认步长为1
c(1:5)
# 下面是创建向量后输出的结果
[1] 1 2 3 4 5
有的函数可以指定步长来创建序列,比如seq.int是一个可以指定步长的函数
seq.int(1, 6, 2)
不论向量和序列,都有长度的概念,长度是一个非零正整数
# 向量1到5的长度是5
c(1:5)
# 包含了字符串向量的变量circular的长度是2
circular <- c("eggs","balls")
length(circular)
矩阵与数组
数组中可以存放多维数据,这个多维数据中:行长度一致、列长度一致(矩阵是二维数组)。
利用array函数创建数组。传入两个向量(值、维度)
数据类型
R语言的数据类型非常多,值得注意的是R语言与其他编程语言(如java)相反,变量不会声明数据类型。变量分配有R对象,R对象的数据类型变为变量的数据类型。
最常用的数据类型有:
- 矢量
- 列表
- 矩阵
- 数组
- 因子
- 数据帧
网友评论