1.探索性数据分析
install.packages("MASS")
library(MASS)
data(Insurance)#获取数据集
View(Insurance)
nrow(Insurance);ncol(Insurance)#显示数据集行列数
dim(Insurance)#显示维度,效果同上
head(Insurance) #输出前几条
attributes(Insurance)
str(Insurance)
summary(Insurance)
install.packages("Hmisc")
library(Hmisc)
describe(Insurance[,1:3])
describe(Insurance[,4:5])
install.packages("fBasics")
library(fBasics)
library(timeDate)
library(timeSeries)
basicStats(Insurance$Holders)
#偏度和峰度
install.packages("timeDate")
library(timeDate)
skewness(Insurance[,4:5])#偏度
kurtosis(Insurance[,4:5])#峰度
install.packages("Matrix")
library(Matrix)
#相关性
cor(Insurance$Holders,Insurance$Claims)
plot(Insurance$Holders,Insurance$Claims)
#可视化分析
hist(Insurance$Claims,main='索赔量频率直方图')
hist(Insurance$Claims,freq=FALSE,density=20,main='索赔量密度直方图')
lines(density(Insurance$Claims))
str(hist(Insurance$Claims,breaks=20,labels=TRUE,col="black",border="white",
main="索赔量20组频率直方图"))
#2.weather数据集分析
install.packages("rattle")
library(rattle)
data(weather)#获取数据集
View(weather)
data("stackloss")
str(stackloss)
head(stackloss)
tail(stackloss)
mat_stackloss <- as.matrix(stackloss)
# 各列均值
apply(mat_stackloss, 2, sum) / dim(mat_stackloss)[1]
# 各列四分位数
apply(mat_stackloss, 2, quantile)
# 各列方差
apply(mat_stackloss, 2, var)
# 各列标准差
apply(mat_stackloss, 2, sd)
# 两两之间协方差
cov(mat_stackloss[, 1:4])
# 7-2 ----
# 画出stackloss数据集中各变量的直方图、箱形图和散点图。
data("stackloss")
mat_stackloss <- as.matrix(stackloss)
opar = par(no.readonly = TRUE)
par(mfrow = c(2, 2))
# 直方图
apply(mat_stackloss, 2, hist)
# 箱型图
apply(mat_stackloss, 2, boxplot)
# 散点图
apply(mat_stackloss, 2, plot)
par(opar)
2:使用数据集mtcars
library (datasets) #mtcars在datasets包中
str(mtcars) #显示mtcars的数据结构
export (mtcars, "mtcars.csv") #把数据框导出到文件
convert ("mtcars.csv", "mtcars.json") #转换文件类型
head (import("mtcars.json")) #显示导入的头几条数据
unlink("mtcars.json") #从当前工作目录中删除给定文件
#因变量am,自变量hp和wt,数据集mtcars,二项式分布
am.glm <- glm (formula=am ~ hp + wt, data=mtcars, family=binomial)
newdata <- data.frame (hp=120, wt=2.8)
predict (am.glm, newdata, type="response")
summary (am.glm)
#逻辑回归模型
am.glm <- glm (formula=am ~ hp + wt, data=mtcars, family=binomial)
summary(am.glm)
predict <- predict (am.glm, type = 'response')
#混淆矩阵
table (predict > 0.5, mtcars$am)
#设置训练集和测试集
train <- mtcars[1:22,]
test <- mtcars[23:32,]
#设置迭代次数<=100
am.glm <- glm (formula=am ~ hp + wt, data=train, family=binomial(link='logit'), control=list(maxit=100))
#用模型来预测
predict <- predict (am.glm, data.frame(test),type = 'response')
table (predict > 0.5, test$am)
1.#绘制wt与mpg的散点图
data(mtcars)
attach(mtcars)
View(mtcars)
summary(mtcars)
par(mfrow=c(2,2))#设置画图模式2x2的格式
hist(mpg) #绘制直方图
hist(log(mpg))#取对数
boxplot(mpg~vs)#箱线图
boxplot(mpg~am)
boxplot(mpg~carb)
boxplot(mpg~cyl)
par(mfrow=c(1,1))#设置画图模式1的格式
pairs(mtcars[,c(1:7,11)])#散点图
plot(wt,mpg,pch=17,col="blue")
abline(lm(mpg~wt),lty2,col="red")
title("mpg对wt的回归")
#多元回归
lm1=lm(mpg~wt+disp+cyl+hp+drat+qsec+gear+carb+am+vs)
summary(lm1)
lm2=lm(mpg~wt+drat+qsec+gear+carb+am+vs)
summary(lm2)
l<-list(mtcars,a,b)
summary(l)
summary(l[[1]])
数据的属性分析
变量cyl(汽缸数)为属性变量, 命令
table(cyl)#告诉我们变量cyl取3个值:4,6,8,相应的频数为11, 7, 14
barplot(table(cyl)) #显示了cyl的频数直方图.
barplot(cyl)#在此不适用, 它仅适用于数值型变量
2.数值型数据的分析
画茎叶图(stem-and-leaf plot),
stem(mpg)
hist(mpg)#画直方图
boxplot(mpg)
#按分组变量cyl计算mpg的分组平均值
tapply(mpg,cyl,mean)
计算cyl为4的那些mpg的平均值, 命令为
mean(mpg[cyl == 4])
#计算样本常用的分位数: 极小、极大、中位数及两个四分位数, 命令为
quantile(mpg)
或者
fivenum(mpg)
plot(cyl,mpg)
plot(hp,mpg)
plot(hp,mpg,pch=cyl)
方法二:attach(mtcars)
plot(wt,mpg,pch=17,col="blue")
fm<-lm(mpg~wt)
abline(fm,lty=5,col="red")
2.#查询并使
用pairs和scatterplotMatrix函数绘制mpg + disp + drat + wt四者之间的散点图矩阵
pairs(~mpg+disp+drat+wt,data=mtcars)
pairs(~mpg+disp+drat+wt,data=mtcars)
library(carData)
library(car)
scatterplotMatrix(~mpg+disp+drat+wt,data=mtcars)
3.#使用rgl包中的plot3d绘制wt+disp+mpg三者的3D图
install.packages("rgl")
library(rgl)
install.packages("corrgram")
library(corrgram)
open3d()
plot3d(wt,disp,mpg)
corrgram(mtcars, order=TRUE, lower.panel=panel.shade, upper.panel=panel.conf,text.panel=panel.txt)
hist(mtcars$mpg)
4.#利用corrgram包中的corrgram()函数创建相关系数矩阵,并绘制相关系数图
install.packages("corrgram")
library(corrgram)
corrgram(mtcars,order=TRUE,lower.panel=panel.shade,
+ upper.panel=panel.pie, text.panel=panel.txt,
+ main="Correlogram of mtcars intercorrelations")
5.# 绘制mpg的直方图
attach(mtcars)
mpg
hist(mpg)