R建模8大步骤

版权声明:本博客大部分文章均为原创文章,转载请标明出处哟,可以关注我个人公众号获取数据和代码~ https://blog.csdn.net/qq_27056805/article/details/84973199


当我们拿到一堆数据要进行建模预测的时候,往往不知道该怎么处理。尤其是对于学数理统计的同学,往往老师会布置一个大作业,自找数据,自行分析,自行预测。很多时候会一头雾水,不知从何做起。本人也是从这个过程走过,因此这里跟大家分享一下我个人进行数据清洗,分析,建模和预测的经验。本篇文章仅描述一般的过程。后续会根据具体线性回归,分类(KNN,SVM,决策树,随机森林等)实例进行讲解。

数据分析一般可以分为七大部分,包括数据加载,清洗,探索,建模,诊断,预测和评估。以下分别进行讲解。

1.数据加载

数据加载即从本地数据库,txt文件,csv文件,excel文件,RData文件,或者网络上获取数据。主要使用的函数为:
csv文件:read.csv()和read.csv2()函数。前者用于读取小数据量数据(<10000行),后者在读取大数据量数据时有优势。
excel文件:excel文件读取之前需要先安装并加载xlsx包,然后该函数才能够使用。而且该函数需要指定读取excel文件中的第几个表格。参数sheetIndex是从索引1开始,这与python从0开始索引不一样。或者sheetName指定表格名称来选择。两个参数选择一个就可以。

install.packages("xlsx")
library(xlsx)
read.excel("xxx.xlsx",sheetIndex=1,sheetName="sheet1")

RData文件:

#这句是加载该RData文件,但是不会显示里面有什么数据
data=load("xxx.RData")
#str()函数会显示该文件中有哪些数据集
str(data)

text数据:read.table()既可以读取txt文件也可以读取csv文件。

read.table(file)

详细的数据读取函数,参数我会在稍后的文中进行总结。

2.数据清洗

数据清洗主要工作是查看缺失率,处理缺失值(NA),处理共线性强,相关性强,低方差特征变量。有些情况下需要对数据进行归一化处理,以减少单位不同引起的相关问题,并能够加快数据运算与收敛。同时也要观察数据类型,将分类变量(categorical)转化成因子变量(factor),连续型变量转化成numerical,int型变量。

3.数据探索

数据探索主要是通过可视化方式,研究因变量与部分自变量之间是否存在一定的关系(散点图)。也可以研究自变量分布关系(箱线图,直方图,密度曲线图)。数据探索的目的是初步的了解因变量与自变量,自变量与自变量,及自变量自身关系。是数据建模之前对数据的宏观认识。

4.数据建模

数据建模是整个数据分析的核心,模型构建的好与坏直接影响到预测结果的准确度。一般建模过程中并不会拿所有的数据当做训练集,而是按照一定的比例(7:3)将原始数据分成两部分:训练集和测试集。训练集用来训练模型(学习器),测试集用来对训练好的模型进行检验评估。
这里最重要的是采用什么方法对数据进行分割。具体分割方式会在后续中进行讲解。

5.模型诊断

模型诊断主要是针对线性回归而言。因为在进行线性回归分析时,至少要满足四个前提条件:残差均值为0,残差服从正态分布,任意两组样本的残差的方差一致,因变量与自变量之间确实满足线性关系。
这四条前提可以通过模型的残差图和QQ图进行分析,具体分析会在后续中进行详解。

6.数据预测

构建好模型后,需要利用该模型对测试集进行预测,主要利用predict()函数进行预测。

7.预测评估

将预测结果与测试集中的真实结果进行比较,从而评估模型的好坏。分类器主要是通过准确率和ROC图进行评估,回归模型则通过MSE(均方差)进行评估。

8.模型比较

当然,有时候课题的要求是要建立多个模型,然后对这几个模型进行评估,选择一个预测效果最好的模型。
对于线性模型,可以通过赤池信息准则(AIC),贝叶斯准则(BIC),R^2及残差图进行比较。对于嵌套式的两个回归模型(即一个模型的变量包含了另一个预测模型的变量),通过anova(mod1,mod2)先检验两个模型是否有显著性区别(原假设是没有显著性区别),若没有,则选择变量较少,相对简单的那个模型。

欢迎关注我个人公众号:moisiets,一起学习与交流!
moisiets

猜你喜欢

转载自blog.csdn.net/qq_27056805/article/details/84973199