资源描述:
《《Algae海藻例子》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1Algae(海藻)例子algaetrain<-read.table('f:/讲课/SJM/Analysis.txt',header=T,dec='.',na.strings=c('XXXXXXX'))首都经济贸易大学320091221253algaetrain<-read.table('f:/讲课/SJM/Analysis.txt',header=T,dec='.',na.strings=c('XXXXXXX'))algaetest1<-read.table('f:/讲课/SJM/Testdata.txt',header=T,dec='.',na.strings=c('XXXXXXX
2、'))algaetest2<-read.table('f:/讲课/SJM/Solutions.txt',header=T,dec='.',na.strings=c('XXXXXXX'))algaetest<-cbind(algaetest1,algaetest2)algae<-rbind(algaetrain,algaetest)summary(algae)##对algae数据集的基本信息特征的描述4par(mfrow=c(1,2))hist(algae$mxPH,prob=T)hist(algae$mxPH,prob=T,xlab='',main='HistogramofMaximu
3、mPHvalue',ylim=0:1)lines(density(algae$mxPH,na.rm=T))#在直方图中添加密度线rug(jitter(algae$mxPH))#画出变量mxPH在X轴附近的真实值56library(lattice)bwplot(size~a1,data=algae,ylab='RiverSize',xlab='AlgaA1')#7缺失值的处理(以对训练集algaetrain的缺失值处理为例)8algaetrain[!complete.cases(algaetrain),]##显示algaetrain数据集中含有缺失值项nrow(algaetrain[!c
4、omplete.cases(algaetrain),])##缺失值项的总行数9方法1:直接将含有缺失值项的水样删除algaetrain1<-na.omit(algaetrain)10方法2:运用常用的均值和中位数的方法进行插补11algaetrain2mean<-algaetrainfor(rinwhich(!complete.cases(algaetrain)))algaetrain2mean[r,which(is.na(algaetrain[r,]))]<-apply(data.frame(algaetrain[,which(is.na(algaetrain[r,]))]),2,m
5、ean,na.rm=T)##对含有缺失值的记录用均值进行插补algaetrain2median<-algaetrainfor(rinwhich(!complete.cases(algaetrain)))algaetrain2median[r,which(is.na(algaetrain[r,]))]<-apply(data.frame(algaetrain[,which(is.na(algaetrain[r,]))]),2,median,na.rm=T)##对含有缺失值的记录用中位数进行插补12通过对含缺失值项的变量同其他变量的相关性的大小建立回归方程来插补13cor(algaetra
6、in[,4:18],use="complete.obs")#变量间的相关性,计算时不考虑缺失值symnum(cor(algaetrain[,4:18],use="complete.obs"))#简单明显示出变量间的相关1415从变量之间的相关程度图中,我们可以发现绝大部分变量之间相关程度不高,但变量NH4和NO3、变量PO4、oPO4之间相关程度很大,尤其是变量PO4、oPO4之间相关程度达到91.2%。由于数据集algaetrain中第62条和第199条含有的缺失项过多,我们可以考虑将其从数据集中直接删除,而变量NH4和NO3的缺失值集中在数据集algaetrain中第62条和第19
7、9条中,故不需要再考虑对其插补。下面来考虑对变量PO4、oPO4建立回归方程来对缺失值进行插补。algaetrain3l<-lm(oPO4~PO4,data=algaetrain)##对变量PO4、oPO4建立回归方程summary(algaetrain3l)##建立函数fillPO4,对缺失项进行回归插补16fillPO4<-function(oP){if(is.na(oP))return(NA)elsereturn((oP+15.6142)