R语言-预测海藻数量1(数据准备和缺失数据处理)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lovely_J/article/details/82182907

准备工作

安装要用到得到包
install.packages("DMwR")

加载并查看数据

> library(lattice)
> library(grid)
> library(DMwR)
> summary(algae)
    season       size       speed         mxPH            mnO2              Cl         
 autumn:40   large :45   high  :84   Min.   :5.600   Min.   : 1.500   Min.   :  0.222  
 spring:53   medium:84   low   :33   1st Qu.:7.700   1st Qu.: 7.725   1st Qu.: 10.981  
 summer:45   small :71   medium:83   Median :8.060   Median : 9.800   Median : 32.730  
 winter:62                           Mean   :8.012   Mean   : 9.118   Mean   : 43.636  
                                     3rd Qu.:8.400   3rd Qu.:10.800   3rd Qu.: 57.824  
                                     Max.   :9.700   Max.   :13.400   Max.   :391.500  
                                     NA's   :1       NA's   :2        NA's   :10       
      NO3              NH4                oPO4             PO4              Chla        
 Min.   : 0.050   Min.   :    5.00   Min.   :  1.00   Min.   :  1.00   Min.   :  0.200  
 1st Qu.: 1.296   1st Qu.:   38.33   1st Qu.: 15.70   1st Qu.: 41.38   1st Qu.:  2.000  
 Median : 2.675   Median :  103.17   Median : 40.15   Median :103.29   Median :  5.475  
 Mean   : 3.282   Mean   :  501.30   Mean   : 73.59   Mean   :137.88   Mean   : 13.971  
 3rd Qu.: 4.446   3rd Qu.:  226.95   3rd Qu.: 99.33   3rd Qu.:213.75   3rd Qu.: 18.308  
 Max.   :45.650   Max.   :24064.00   Max.   :564.60   Max.   :771.60   Max.   :110.456  
 NA's   :2        NA's   :2          NA's   :2        NA's   :2        NA's   :12       
       a1              a2               a3               a4               a5        
 Min.   : 0.00   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
 1st Qu.: 1.50   1st Qu.: 0.000   1st Qu.: 0.000   1st Qu.: 0.000   1st Qu.: 0.000  
 Median : 6.95   Median : 3.000   Median : 1.550   Median : 0.000   Median : 1.900  
 Mean   :16.92   Mean   : 7.458   Mean   : 4.309   Mean   : 1.992   Mean   : 5.064  
 3rd Qu.:24.80   3rd Qu.:11.375   3rd Qu.: 4.925   3rd Qu.: 2.400   3rd Qu.: 7.500  
 Max.   :89.80   Max.   :72.600   Max.   :42.800   Max.   :44.600   Max.   :44.400  

       a6               a7        
 Min.   : 0.000   Min.   : 0.000  
 1st Qu.: 0.000   1st Qu.: 0.000  
 Median : 0.000   Median : 1.000  
 Mean   : 5.964   Mean   : 2.495  
 3rd Qu.: 6.925   3rd Qu.: 2.400  
 Max.   :77.600   Max.   :31.600  

数据简单介绍
algae是欧洲多条河流的水样在一年时间内水样的化学物质含量及藻类数量。数据集的观测值为200个水样,变量包括3个河流基本信息(season季节 size河流大小 speed河水流速),8种化学物质含量( mxPH;mnO2;Cl;NO3;NH4;oPO4;PO4;Chla ),7种藻类的数量(a1~a7)。
数据里存在空值,会导致部分函数报错。

根据某个属性绘制正态分布直方图

> hist(algae$mnO2)
> #关于MnO2物质的

这里写图片描述

#把数据里的空值去掉,并在图形上添加一条线描述正态分布
prop 把分布频率转化为分布密度
> hist(algae$mnO2,prob = T,ylim = c(0,1/4))
> lines(density(algae$mnO2,na.rm = T))

这里写图片描述

处理数据缺失

数据缺失常见的处理方法:

  1. 将含有缺失值的记录删除
  2. 根据变量间相关关系填补缺失数据
  3. 根据案例之间的相似性进行数据填补

提取不完整的数据记录
通过!complete.case()函数将有空值的记录提取出来!说明是提取不完整的样本。

> algae[!complete.cases(algae),]
> #将所有有缺失值的数据行打印出来

这里写图片描述

找出缺失数据较多的记录

> manyNAs(algae)
[1]  62 199
#默认manyNAs的缺失百分比是0.2

manyNAs(algae,n)n是一个c(0,1)的小数,如果n=0.2,意思为如果有20%的数据项值为空,就认定该条数据是缺失数据较多的。

1.将缺失数据较多的记录删除

> manyNAs(algae)
[1]  62 199
> algae1 <- algae[-c(62,199),]
> #删除两条数据
> manyNAs(algae1)
named integer(0)
Warning message:
In manyNAs(algae1) :
  Empty index generated, no rows with many NAs. Undesirable effects may be caused if indexing a data frame with this.
> 

找到字段间的相关关系

cor(algae[, 4:18], use = "complete.obs")
#得到algae数据集中第4到第18个字段之前的相关关系

这里写图片描述
这样的数据表示不是很容易看明白
使用symnum() 函数使数据直观一点。

“`

symnum(cor(algae[, 4:18], use = “complete.obs”))
“`这里写图片描述

从上面的表里可以看到NH4 - NO3oPO4 - PO4 两对具有较强相关的变量

#得到oPO4 - PO4间的线性关系
> lm(oPO4~PO4,data = algae)

Call:
lm(formula = oPO4 ~ PO4, data = algae)

Coefficients:
(Intercept)          PO4  
   -15.6142       0.6466   

上面得到的数据意义为oPO4 = -15.6142 + 0.6466 * PO4

猜你喜欢

转载自blog.csdn.net/lovely_J/article/details/82182907