使用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)
运行得到: