网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月13日漏签0天
mba吧 关注:251,905贴子:697,942
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回mba吧
>0< 加载中...

同学,看一看这是不是你的数据处理外卖?

  • 只看楼主
  • 收藏

  • 回复
  • 贴吧用户_77CUX3R
  • 秀才
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
现在的硕士论文是一年比一年要求高,增加实证分析的难度成为了许多大学的不二法宝,于是管理学(工商管理、人力资源管理、技术与经济管理等)纷纷要求学生研究具体问题A对B的影响,不能单纯写个管理创新策略等等的纯文字论述的文章。而其他专业比如经济学、金融学等一看到这个情况就回过头去向自己学生说:这群玩弄笔杆子的人都写模型了, 你们就别在线性回归模型上跳了,都给我加难度,所以基本都是简单的组合模型以及普通回归的拓展(如面板数据等)。最厉害的还是统计学的,统计学导师只说一句话,你们看看现在的研究方法到哪一步了,往前再跨一步。统计学的学生就一句心里话:“我有一句XXX,不知当讲不当讲”。
实证类型的文章多了,不可避免的遇上了研究方向相同的,或者研究方法相同的,但是很多学生在搞研究建模时担心自己哪一步做错了,所以找几个示例研究,比照结果差异。不比不知道,一比吓一跳。
为什么很多人的硕士论文做实证分析的时候,得到的结果并不好,别人的文章也是同样的方法与同样的步骤,但是结果挺好的?
造成自己的实证模型与他人的不同(前提是同样的方法,原始数据差距不大)的原因除了一些无法更正的因素(比如:后期调整输出结果等),也存在自身操作的问题。这个问题就是数据处理步骤的缺失或不完善。
完整的数据分析主要包括了六大步骤,它们依次为:分析设计、数据收集、数据处理、数据分析、数据展现、报告撰写等,所以也叫数据分析六步曲。
个人认为数据处理做不好,得到的结果没有太大意义。所以下面就讲一下数据处理的大致操作。
数据质量处理
1、数据清洗
1.1缺失值
处理缺失值有两种方案分别为缺失值删除与缺失值填补。比较常用的是缺失值整条删除,原因是简单,且大部分情况下数据量是很大的,删除缺失值数据,对结果影响不大。数据量较少,或者数据比较重要以及缺失数据条数太多的情况下就需要用到缺失值填补。
1.1.1 缺失值删除
R语言中,用于缺失值的整条删除的方法有两种。一种是令data = na.omit(原始data),
这个是单纯的对原始数据集进行删除缺失值数据的操作。此外,另一种方法是在建模时增加设置na.action=na.omit,举个例子就是
lm1=lm(y~.,data,na.action=na.omit),
这个是不对原始数据集做修改,但是建模时针对模型调用数据做调整。
1.1.2缺失值填补
缺失值的填补就比较麻烦了,因为众口难调的原因,这方面的分歧还是比较大的。
普通的方法有均值插值,中位数插值,众数插值以及随机数插值等,这种方法看名字也知道如何操作,所以这里不做过多的解释了。
稍微复杂一点点的方法有回归插补、K近邻插补法等。
回归插补就是对缺失变量和已观测变量建立回归方程,用缺失变量的预测值对缺失值进行插补,比如:
Lm1=lm(y~.,data)
Data$x[which(!complete.cases(data))]=as.vector(predict(lm,newdata=data[!complete.cases(data),])),K近邻插补就是根据样本观测值之间的相关性,利用欧氏距离寻找与缺失观测最相似的k个样本中的观测,填补缺失值。比如
library(DMwR)
newdata=knnInputation(data,k=10)
new$col=c(‘imputation’,’notNA’)[complete.cases(data[,1:2])+1]
2、数据转换
R的程序跑多了的人就知道很多程序函数,对输入数据的类型是有要求的。此外,一个浅显的例子,分类问题,两个种类A和B,需要转换为0和1进行逻辑回归等。
数据转换包括转换数据格式、数据分箱、数据标准化等。
2.1 数据标准化
数据标准化是最重要的,也是最常用的数据处理方法,他的目的是消除变量之间的量纲(简单来说,就是说数据的单位;有些数据是有量纲的,比如身高,而有些数据是没有量纲的,例如,男女比例。无量纲化,是指去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或者量级的指标能够进行和加权)影响,让不同的变量经过标准化后可以有平等分析和比较的基础。
具体方法函数有scale()对矩阵或数据框按列对数据进行标准化,比如:
scale(data, center = TRUE, scale = TRUE)
此外还有caret包的preProcess()函数方法,比如:
preProcess(data, method = 'range')
2.2 转换数据格式
这个就直接上例子了,比如:
as.numeric(data)#转换为数值型
as.matrix(data)#转换为矩阵
as.character(data)#转换为字符型
as.data.frame(data)#转换为数据框
as.factor(data)#转换为因子型
as.logical(data)#转换为逻辑性
2.3 数据分箱
举个例子,一个班学生的成绩,按照0-59划分为不及格,60-79为一般,80-100为优秀。这就是分箱。
R语言在可以通过cut()函数实现,比如:
cut(data,10)#指的是将data数据划分10个箱
3、数据抽样
数据抽样一般在选择训练集与测试集时需要用到,比如iris数据集做分类预测,原始数据集的数据是先50个山鸢尾数据,50个变色鸢尾数据,50个维吉尼亚鸢尾数据,我们在划分训练集与预测集时如果不对他进行抽样,那么我们很难得到正确的结果。
3.1 随机抽样
随机抽样是数据抽样中比较常用的简单的抽样方法。其代码为:
sample(data,n,replace=T)
其中data是数据集,n为抽多少个数,replace为是否重复抽取,T为是,F为否。
3.2 分层抽样
我们获取的数据很少能够达到完美平衡的情况,平衡指的就是两类数据的条数差不多。如果对不平衡数据采取随机抽样,那么我们得到的拟合结果不一定对(误差大)。
以iris数据集为例进行分层抽样示例:
Index=sample(x=1:nrow(dataB),size=nrow(dataA),replace = T)
dataB.train=dataB[index,]
train=rbind(dataA,dataB.train)
3.3 等比抽样
当面对多分类数据时,我们会采用等比抽样的方法,实现快速得到与原始数据集有比例关系的抽样数据。
R语言中实现这一功能的是caret包中的createDataPartition()函数,形式如下:
createDataPartition(x,time,p,list=F/T,groups=min(5,length(x)))
x是包含了多分类信息的向量,time表示需要进行抽样的次数,p表示需要从数据中抽取的样本比例,list表示结果是否是为list形式,默认为T,groups表示如果输出变量是数值型数据,则默认按分位数分组进行取样。
4、数据去重
数据去重的应用比较少,也不是数据处理的必要步骤,而且硕士论文的实证分析的数据量本来就不多,一做去重数据量更少了。但是生活中我们用到的数据可能在一个数据表格里出现大量重复的问题,这种情况下如果想把重复的保存为一条,那么就用到了这个。
数据去重常用命令为unique或duplicated,下面是示例:
unique(data)#或者
duplicated(data)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回mba吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示