clustMD r语言_R语言之实战分析

本文介绍了使用R语言进行数据分析的过程,包括数据准备、初步可视化、异常值处理和聚类分析。通过观察变量分布、相关性和异常值,使用k-means和层次聚类方法对数据进行聚类,并探讨了处理异常值的方法,最终得到更好的聚类效果。
摘要由CSDN通过智能技术生成

R面向的数据类型

数据描述:在一年时间内,收集河流水样。测定它们的化学性质和7种有害藻类(a1-a7)的存在频率

求:预测藻类模型,了解影响藻类的因素。

1. 数据准备

rm(list = ls()) #删除先前存档的一些环境变量,打扫干净屋子再请客

if(!require('DMwR'))(

install.packages('DMwR')

)

data(algae)

#查看数据集的基本情况

head(algae)

summary(algae)

str(algae)

图.1

图.2

从图.1可以看出,数据中存在缺失值和异常值

从图.2可以看出,该数据有三个因子型变量'season','size','speed',其余为数值型变量

2. 初步可视化

2.1 观察各个变量数据的规范性

几乎每个变量都有异常值存在,多是异常大值

par(mfrow = c(3,5)) #将成图区域设定为3行5列的形式,同时呈现多张图片

for(i in 4:18){ #这里只针对数值型变量

boxplot(algae[,i],xlab = names(algae)[i])

}

par(mfrow = c(1,1)) #返回默认设置

图.3

2.2 观察变量间的相关性

library('PerformanceAnalytics')

chart.Correlation(algae[,4:18], histogram=TRUE,pch='+') #'图.4'

library('dplyr')

library('Hmisc')

#计算各个数值型变量间的相关性及显著性,与'chart.Correlation'不同,这里可以获得相关性数据

res % as.matrix() %>% rcorr(type = 'pearson')

library('corrplot')

corrplot(res$r, p.mat = res$P, type = "upper", order = "hclust", tl.col = "black", tl.srt = 45)#'图.5'

图.4

图.5

2.3 双变量间的相关性

由上可知,"oPO4"和"PO4"高度相关,达到0.91

library("ggpubr")

ggscatter(algae, x = "oPO4", y = "PO4",

facet.by = 'season',scales ='free', #注释此行,则展现全局下两个变量的相关性

size = 3,color = 'black', #定义点的属性

add.params = list(color = 'red', lty = 2, lwd = 2), #定义拟合曲线的属性

add = "reg.line", conf.int = TRUE, #添加拟合曲线和置信区间

cor.coef = TRUE, cor.method = "pearson",cor.coef.size = 5, #添加拟合参数

xlab = "oPO4", ylab = "PO4")

图.6

2.4 观察单个变量的数据分布情况

绘制频率分布直方图和正态分布图

library('car')

par(mfrow=c(1,2))

hist(algae$mxPH, prob=T, xlab='', main='Histogram of maximum pH value',ylim=0:1) #绘制频率分布直方图

lines(density(algae$mxPH,na.rm=T),col='blue')#在直方图之上,叠加频率密度曲线

rug(jitter(algae$mxPH),col = 'blue') #在直方图的横坐标轴上添加须线,表征数据在坐标轴上分布的密集度

qqPlot(algae$mxPH,main='Normal QQ plot of maximum pH',col.lines = 'purple') #另外绘制正态分布图

par(mfrow=c(1,1))

图.7

绘制单变量箱线图,展示数据分布情况

boxplot(algae$oPO4,ylab='Orthophosphate (oPO4)',notch = T)

rug(jitter(algae$oPO4),side=2)#'side = 2'表示在y轴绘制须线表征数据分布密集度

abline(h=mean(algae$oPO4,na.rm=T),lty=2,col = 'red')#添加均值线

abline(h=median(algae$oPO4,na.rm=T),lty=2,col = 'blue')#添加中值线

abline(h=quantile(algae$oPO4,0.25,na.rm=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值