美文网首页数据分析
统计学第一课:统计基础与R入门

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

作者: 阿小哈 | 来源:发表于2020-09-19 18:28 被阅读0次

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

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

    变量

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

    数据

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

    最常用的数据类型有:

    • 矢量
    • 列表
    • 矩阵
    • 数组
    • 因子
    • 数据帧

    相关文章

      网友评论

        本文标题:统计学第一课:统计基础与R入门

        本文链接:https://www.haomeiwen.com/subject/khfyyktx.html