使用R语言做基本的统计分析
本文介绍使用R语言做基本的统计分析,统计分析的数据集为某一国家的保险收费情况,该数据集主要用于分析影响保险收入大小的因素,数据集的第一行依次是年龄、性别、体重指数、孩子数量、是否吸烟、所在区域、保险收费。
数据集如下表:

(1)将数据集导入R中,并进行分析。
df<-read.csv('f:/桌面/insurance.csv')
df
运行如下:

(2)对数据集做总体描述,在这里主要对保险费数据进行统计分析。
summary(df$charges)
得到:![]()
均值:
mean(df$charges)
[1] 13270.42
分位数:
quantile(df$charges)
0% 25% 50% 75% 100%
1121.874 4740.287 9382.033 16639.913 63770.428
偏度和峰度:
library(fBasics)
skewness(df$charges)
[1] 1.512483
> kurtosis(df$charges)
[1] 1.588954
极差、四分位极值函数、标准差,方差:
> max(df$charges)-min(df$charges)
[1] 62648.55
> IQR(df$charges)
[1] 11899.63
> sd(df$charges)
[1] 12110.01
> var(df$charges)
[1] 146652372
(3)数据的图形描述
1、直方图,进行数据分布的频率或频数分析
这里主要分析女性家庭成员的保险缴费情况。
dff<-df[df$sex=='female',]
attach(dff)
hist(charges,xlab='charges')
运行如下:

2、茎叶图
stem(dff$charges)
运行得到:
The decimal point is 4 digit(s) to the right of the |
0 | 22222222222222222222222222222222222222222222222222222222222333333333+67
0 | 55555555555555555555555555555555555555555555555555556666666666666666+108
1 | 00000000000000000000000000000000111111111111111111111111111111111122+83
1 | 5555555556666666777777777888888889999999999
2 | 000000000001112222222223333344444
2 | 5555555566666667778888899999
3 | 0123334444
3 | 556666777777899
4 | 000001111223344444
4 | 55666677788999
5 |
5 | 59
6 | 4
3、盒须图
boxplot(dff$charges)
运行得到:

(4)正态性检验
1、QQ图正态性检验
qqnorm(dff$charges,main='QQ图正态性检验')
qqline(dff$charges,col='red')
运行得到:

从直方图和正态性检验都可以看出,该数据明显不是正态分布的数据。
2、经验分布函数
> x<-sort(charges)
> n<-length(x)
> y<-(1:n)/n
> m<-mean(charges)
> s<-sd(charges)
plot(x,ytype='s',main='经验分布函数')
curve(pnorm(x,m,s),col='red',lwd=2,add=T)
运行得到:

3、与正态密度函数的比较
df1<-density(dff$charges)
> xlim<-range(df1$x)
> ylim<-range(df1$y)
> hist(dff$charges,xlim=xlim,ylim=ylim,probability=T,xlab='charges')
> lines(df1,col='red',lty=2)
> m<-mean(dff$charges)
> s<-sd(dff$charges)
> curve(dnorm(x,m,s),col='blue',add=T)
运行得到:
