统计学第一课:统计基础与R入门

学习数据分析有很多种方式,但是统计学是必须要掌握的一门学科。统计学研究各领域数据,是一套获取、分析、得出结论的一套科学方法,在任何一个科学领域和工业/商业领域,通都可以过统计学方法进行数据研究。

进入统计学前,必须要知道的名词

变量

描述观察对象的统一称谓。身高、企业的销售额、色子的点数等都可以称为变量。

数据

变量的观测结果就是数据。身高的观测结果有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对象的数据类型变为变量的数据类型。

最常用的数据类型有:

  • 矢量
  • 列表
  • 矩阵
  • 数组
  • 因子
  • 数据帧
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356