53-R语言中缺失值处理方法

Python08

53-R语言中缺失值处理方法,第1张

缺失值被认为是预测建模的首要障碍,尽管一些机器学习算法声称能够从根本上解决这个问题,但是谁又能知道究竟在“黑盒子”里能解决得多好。

缺失值填补方法的选择,在很大程度上影响了模型的预测能力。一般处理方法是直接删除相关行,但这样并不好,因为会造成信息丢失。

Hmice是一个多用途的软件包,可用于数据分析、高级图形、缺失值处理、高级表格制作、模型拟合和诊断(线性回归、 Logit模型和cox回归)等。 该软件包包含的功能范围广泛,它提供了两个强大的函数,用于处理缺失值。分别为 impute ()和 aregImpute ()。

impute()函数使用用户定义的统计方法(中间值,最大值,平均值等)来估算缺失值。 默认是使用中位数。另一方面,aregImpute()允许使用加性回归、自举和预测平均匹配进行填补(additive regression, bootstrapping, and predictive mean matching)。

bootstrapping对替代原始数据的样本拟合了一个柔性可加模型(非参数回归方法) ,并利用非缺失值(自变量)对缺失值(因变量)进行了预测。然后,使用预测均值匹配(缺省值)来估算缺失值。

使用平均值填充:

使用随机值填充:

同样,还可以使用min,max,median来估算缺失值。

aregImpute ()自动识别变量类型并相应地处理它们:

输出显示预测缺失值的 R 2 值, 数值越高,预测的数值越好。还可以使用以下命令查看估算值:

画个好看一点的图:

估算缺失值:

pmm:预测均值匹配(PMM)-用于数值变量

logreg: (Logit模型)-二元变量

polyreg(Bayesian polytomous regression):因子变量(>=2个水平)

polr:Proportional odds model(ordered, >= 2 levels)

查看估算的缺失值

由于生成有5个输入数据集,您可以使用 complete ()函数选择任何数据集:

还可以使用5个数据集构建模型,最后将结果合并:

对比一下:

使用生成的6个数据集合并后的回归系数与原始数据的回归系数还是非常接近的。

par()函数是R里有关绘图的重要函数之一,以下是对par()函数说明内容的一些整理。描述:par函数用于设定或询问绘图参数。参数设定可通过par(参数名=取值)或par(赋值参数列表)的形式进行。用法:par(,no.readonly=FALSE)函数变量:“参数名=取值”或“赋值参数列表”形式的变量。no.readonly逻辑变量。如=TRUE且没有其他变量,则返回当前绘图设备下已设定好的绘图参数。参数:参数分为三类:一、仅仅用于询问不能被设定的参数:cin,cra,csi,cxy,dim。二、仅能通过par()设定参数:ask,fig,fin,lheight,mai,mar,mex,mfcol,mfrow,mfg,new,oma,omd,omi,pin,plt,ps,pty,usr,xlog,ylog。三、除了par(),也能在其他高级绘图函数中设定的参数。应用中,涉及这三类参数最多的是第三类,最少的是第一类。查看当前参数的赋值用par("参数名")第三类参数:adj调整函数text,mtext,title里文本串的位置。=0:文本串左对齐;=0.5(缺省):文本串居中;=1:文本串右对齐。ann=FALSE:不进行绘图解释标记(例如横轴标题等)。bg设置绘图区背景色。缺省为bg="transparent"。bty设置绘图边框的形式。="o"(缺省):四周边框;="l":左下边框;="7":右上边框;="c":上左下边框;="u":左下右边框;="]":上右下边框;="n";无边框。cex设置文本和符合的尺度。缺省为cex=1。cex.axis相对于当前的cex设置,放大坐标标记(坐标轴标记的数字)。缺省为cex.axis=1。cex.lab相对于当前的cex设置,放大坐标轴标题。缺省为cex.lab=1。cex.main相对于当前的cex设置,放大图标题。缺省为cex.main=1。cex.sub相对于当前的cex设置,放大图副标题。缺省为cex.sub=1。col设置绘图颜色。缺省为col="black"。col.axis设置坐标标记颜色。缺省为col.axis="black"。col.lab设置坐标轴标题颜色。缺省为col.lab="black"。col.main设置图标题颜色。缺省为col.main="black"。col.sub设置图副标题颜色。缺省为col.sub="black"。crt缺省为crt=0。err期望的错误报告程度(像该参数目前在R中未生效)。缺省为err=0。family设置文本字体字体族。缺省为family=""。fg设置前景色,主要用于坐标轴,边框,图形等,对坐标标记与坐标轴标题等外围无影响。缺省为fg="black"。font设置文本字体。=1(缺省):普通字体;=2:粗体;=3:斜体;=4:粗斜体;。font.axis设置坐标标记字体。font.lab设置坐标轴标题字体。font.main设置图标题字体。font.sub设置图副标题字体。lab设置坐标轴刻度数,lab=c(x,y,len)形式,目前len的设置在R中未生效。缺省为lab=c(5,5,7)。las设置坐标标记显示方向。=0(缺省):平行于坐标轴;=1:平行于x轴;=2:垂直于坐标轴;=3:平行于y轴。lend设置线结束端的形状(只有把线画很粗才能看出来)。=0(缺省):圆形;=1:“短”方形;=2:“长”方形。ljoin设置线交接处的性质(只有把线画很粗才能看出来)。=0(缺省):圆角;=1:方角;=2:切方角顶角。lmitre设置ljoin里方角向切方角顶角过渡的程度。缺省为lmitre=10。lty设置线的类型。=0:空白;=1:(缺省)实线;=2:短线虚线;=3:点虚线;=4:短线点虚线;=5:长线虚线;=6:长短线虚线。lwd设置线宽。缺省为lwd=1。mgp设置坐标轴标题,坐标标记和坐标轴边界宽度。mgp[1]影响坐标轴标题,mgp[2,3]影响坐标标记和坐标轴。缺省为mgp=c(3,1,0)。pch设置点的类型。缺省为pch=1。srt逆时针选择字符串,单位为°,只用于text函数。缺省srt=0。tck设置坐标刻度线长与方向(与图宽和高的较小者成比例)。缺省为tck="NA"。tcl设置坐标刻度线长与方向(与文本行高成比例)。缺省为tcl=-0.5。xaxs,yaxs设置坐标轴的范围。="r"(缺省):先将数据范围向双边扩大4%,然后绘图;="i":在原始数据范围内绘图。xaxt,yaxt设置坐标轴样式。="s"(缺省):标准样式;="n":不绘坐标轴。第二类函数:ask=TRUE:在新图绘制前进行提示。fig设定图在绘图设备中的位置,fig=c(x1,x2,y1,y2)的数值向量(0<=x1

1、定义一个变量m,并使用函数c()进行对变量m赋值,使用的是“->”,如下图所示。

2、可以不使用函数,直接使用“->”进行赋值。

3、也可以倒过来赋值,将变量放在函数后面,还是使用“->”赋值。

4、可以使用assign对变量进行赋值,前面参数是被赋值的变量,后面是需要的对象。

5、定义一个变量w,使用函数c()进行赋值;定义一个变量c,取w变量的倒数。

6、定义变量k,使用函数c()进行赋值;再定义一个变量h,使用k进行赋值,就完成了。