基于R语言的统计学学习1:基本概念、统计量、常见分布和样本统计量分布

目录

1. 统计学基本概念

2. 频数和频数分布表

2.1 一维频数分布表

2.2 二维频数分布表(二维列连表、交叉表) 

2.3 多维列联表

2.4 列联表还原为原始数据框

2.5 将列联表转换成dataFrame频数表

2.6  连续数据进行分类统计频数

 3. 重要的数据统计量

3.1平均数

3.2 分位数

3.3 众数

3.4 极差和四分位差

3.5 样本方差和标准差

3.6 变异系数

3.7 标准分数

3. 8偏度系数

3.9  峰度系数

4. 概率分布

4.1 随机变量的概率分布

4.2 常见概率分布

4.3 样本统计量的概率分布 

参考 


1. 统计学基本概念

        统计学是对数据进行分析处理,分为描述统计计算统计量,汇总、展示数据)和推理判断样本推断总体特征)。

        变量就是表示观察对象某种特征;数据则是变量观察结果。

        变量,按照观察结果分为:

  • 分类变量(按有序否名义值类别变量、顺序值类别变量)
  • 数值变量(分为离散和连续变量)

        按照观察方法分为:

  • 实验数据
  • 观察数据

        按照观察时间分:

  • 截面数据
  • 时间序列数据。

        样本总体中取得,一定程度代表总体。

         描述样本分布特征可从三个角度:

  • 数据水平,反映全部数据的数值大小、位置度量、集中趋势
  • 数据差异,数据间离散程度
  • 数据分布形状,偏度、峰度

        因此,可以构造统计量去描述

        被抽取样本随机,被抽取概率已知,称为概率抽样

  • 有简单随机抽样(被抽中概率相等)
  • 分层抽样(也称分类抽样,按照某一特征将样本分层,分别抽取,保证样本在总体中分布均匀)
  • 系统抽样(也叫等距抽样,以某个随机样本为起点,按某种顺序抽取)
  • 整群抽样(将总体划分为群,抽取若干群,在抽到群里抽取样本,抽样误差相对较大)

        抽取样本的随机性所造成的样本值与总体值之间的差异造成了抽样误差

2. 频数和频数分布表

2.1 一维频数分布表

【1】
> ex1_1<-read.csv("D:/demoData/StaBr/example/chap01/example1_1.csv",fileEncoding = "GBK")
> head(ex1_1) #展示前6行数据
   社区 性别 态度
1 A社区   男 反对
2 B社区   女 反对
3 D社区   女 反对
4 C社区   男 反对
5 A社区   男 赞成
6 D社区   女 反对
# 有关GBK还是UTF-8编码问题【2】
> # 统计一维频数
> d1<-table(ex1_1$社区) #ex1_1数据框对象中社区列
> d1
A社区 B社区 C社区 D社区 
   27    17    21    15 
> # 表示为百分比展示
> prop.table(d1)*100

A社区 B社区 C社区 D社区 
33.75 21.25 26.25 18.75 
> prop.table(d1)

 A社区  B社区  C社区  D社区 
0.3375 0.2125 0.2625 0.1875 

2.2 二维频数分布表(二维列连表、交叉表) 

> d2<-table(ex1_1$社区,ex1_1$态度);d2
       
        反对 赞成
  A社区   13   14
  B社区    5   12
  C社区    7   14
  D社区    6    9
> # 添加边际求和
> addmargins(d2)
       
        反对 赞成 Sum
  A社区   13   14  27
  B社区    5   12  17
  C社区    7   14  21
  D社区    6    9  15
  Sum     31   49  80

2.3 多维列联表

> d3<-ftable(ex1_1,row.vars = c("社区"),col.vars = c("性别",'态度'))
> d3
      性别   男        女     
      态度 反对 赞成 反对 赞成
社区                          
A社区         4    5    9    9
B社区         3    7    2    5
C社区         5    8    2    6
D社区         2    2    4    7
> d3<-ftable(ex1_1,row.vars = c("性别",'态度'),col.vars =c("社区") )
> d3
          社区 A社区 B社区 C社区 D社区
性别 态度                             
男   反对          4     3     5     2
     赞成          5     7     8     2
女   反对          9     2     2     4
     赞成          9     5     6     7

 2.4 列联表还原为原始数据框

> library(DescTools)
Error in library(DescTools) : 不存在叫‘DescTools’这个名字的程辑包
> install.packages("DescTools")
> library(DescTools)
> ud3<-Untable(d3);d3
          社区 A社区 B社区 C社区 D社区
性别 态度                             
男   反对          4     3     5     2
     赞成          5     7     8     2
女   反对          9     2     2     4
     赞成          9     5     6     7
> head(ud3)
  性别 态度  社区
1   男 反对 A社区
2   男 反对 A社区
3   男 反对 A社区
4   男 反对 A社区
5   女 反对 A社区
6   女 反对 A社区
> ud2<-Untable(d2)
> head(ud2)
   Var1 Var2
1 A社区 反对
2 A社区 反对
3 A社区 反对
4 A社区 反对
5 A社区 反对
6 A社区 反对
> class(ud2)
[1] "data.frame"
> class(ud3)
[1] "data.frame"
> class(d3)
[1] "ftable"
> class(d2)
[1] "table"
> class(d1)
[1] "table"

2.5 将列联表转换成dataFrame频数表

> df<-as.data.frame(d3)
> df
   性别 态度  社区 Freq
1    男 反对 A社区    4
2    女 反对 A社区    9
3    男 赞成 A社区    5
4    女 赞成 A社区    9
5    男 反对 B社区    3
6    女 反对 B社区    2
7    男 赞成 B社区    7
8    女 赞成 B社区    5
9    男 反对 C社区    5
10   女 反对 C社区    2
11   男 赞成 C社区    8
12   女 赞成 C社区    6
13   男 反对 D社区    2
14   女 反对 D社区    4
15   男 赞成 D社区    2
16   女 赞成 D社区    7

2.6  连续数据进行分类统计频数

# 导入csv文件
> ex1_2<-read.csv("D:/demoData/StaBr/example/chap01/example1_2.csv",fileEncoding = "GBK")
> head(ex1_2)
  销售额
1    272
2    181
3    225
4    199
5    188
6    240
> class(ex1_2)
[1] "data.frame"
> class(ex1_2['销售额'])
[1] "data.frame"
> class(ex1_2$销售额)
[1] "integer"
> class(ex1_2[['销售额']])
[1] "integer"
> sale<-ex1_2[['销售额']]
# 当我们想要分八组时参考的组距
> m<-(max(sale)-min(sale))/8;m
[1] 13.875
> # 为了方便或按照需求取组距15
> library(DescTools) #Freq函数在DescTools包里
> max(ex1_2$销售额);min(ex1_2$销售额);
[1] 272
[1] 161
># 默认right=TRUE表示左开右闭
> d4<-Freq(ex1_2,ex1_2$销售额,breaks=c(160,175,190,205,220,235,250,265,280),right=FALSE)
> d4
       level  freq   perc  cumfreq  cumperc
1  [160,175)     6   5.0%        6     5.0%
2  [175,190)     7   5.8%       13    10.8%
3  [190,205)    30  25.0%       43    35.8%
4  [205,220)    34  28.3%       77    64.2%
5  [220,235)    21  17.5%       98    81.7%
6  [235,250)    15  12.5%      113    94.2%
7  [250,265)     5   4.2%      118    98.3%
8  [265,280]     2   1.7%      120   100.0%
# 美观一点换成中文属性名
df4<-data.frame(分组=d4$level,频数=d4$freq,频数百分比=d4$perc,累计频数=d4$cumfreq,累计百分比=d4$cumperc)
print(df4,digits=2) # 保留小数点2位输出表格
       分组 频数 频数百分比 累计频数 累计百分比
1 [160,175)    6      0.050        6       0.05
2 [175,190)    7      0.058       13       0.11
3 [190,205)   30      0.250       43       0.36
4 [205,220)   34      0.283       77       0.64
5 [220,235)   21      0.175       98       0.82
6 [235,250)   15      0.125      113       0.94
7 [250,265)    5      0.042      118       0.98
8 [265,280]    2      0.017      120       1.00

 3. 重要的数据统计量

3.1平均数

        平均数是描述数据水平的统计量。

        简单平均数:

> mean(c(20,30,69,65,88,78,65,10))
[1] 53.125
# mean(x,trim=0,na.rm=FALSE)
# trim:去除前后0.几的数据
# na.rm=FALSE剔除缺失值

         加权平均数,f为变量值在某组频数,x为某组的组内平均数,当组内数据根据组中值对称分布,计算结果偏差较少:

> dc3_3_2<-read.csv("D:/demoData/StaBr/example/chap03/example3_2.csv",fileEncoding = "GBK")
> dc3_3_2
    分组 组中值 人数
1 60以下     55    3
2  60~70     65    4
3  70~80     75    4
4  80~90     85   10
5 90~100     95    9
> weighted.mean(dc3_3_2$组中值,dc3_3_2$人数)
[1] 81

 3.2 分位数

        是描述数据水平的统计量,一组有序数据,其某个位置上数值代表了该组数据的水平,该位置上的数称为分位数。

中位数:0.5位置,不受极端变量值的影响

> x<-c(1,2,3,5,9,16,20,32,33,34,50)
> median(x)
[1] 16

 四分位数:用0.25,0.5,0.75三个位置的数值将数据分为四部分,侧重考虑0.25,0.75两个位置,三个位置计算公式为:

        计算方法有多种,R语言其中一种type=6计算方法为,假设如果计算结果是k=3.25不是整数,则该分位数为:

3位置上的数值+(3.25-3)*(4位置上数值-3位置上数值)

> x<-c(1,2,3,5,9,16,20,32,33,34,50)
> quantile(x,probs = c(0.25,0.75),type=6)
25% 75% 
  3  33 

百分位数:用99个位置点将数据分为100份,表示最大值最小值之间数据分布 ,计算与四分位数一样,只改变乘以n+1的系数,例如90% 为(90/100)*(n+1)

> x<-c(1,2,3,5,9,16,20,32,33,34,50)
> quantile(x,probs = c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9),type=6)
 10%  20%  30%  40%  50%  60%  70%  80%  90% 
 1.2  2.4  4.2  8.2 16.0 22.4 32.4 33.6 46.8 

3.3 众数

是描述数据水平的统计量,描述数据分布的较为明显峰值 

> library(DescTools)
> x<-c(1,2,3,5,99,9,9,9,50,16,20,32,33,34,50,60,16,16,16,16,16,16,2,2,2,50,3,NA)
> Mode(x,na.rm = TRUE)
[1] 16
attr(,"freq")
[1] 7

3.4 极差和四分位差

        描述数据差异的统计量,表示数据离散程度。离散程度越小,水平统计量能更好代表数据。

        极差:max-min,受极值影响大。

        四分位差:0.75位置-0.25位置,得出数据50%位于中间位置的差值,一定程度说明中位数代表程度。 

> x<-c(1,2,3,5,9,16,20,32,33,34,50)
> range<-max(x)-min(x)# 极差
> range2<-IQR(x,type = 6) #四分位差
> range;range2;
[1] 49
[1] 30

 3.5 样本方差和标准差

          描述数据差异的统计量,通过描述样本和平均值之间的距离度量数据的离散程度。

         为什么样本标准差使用被称为自由度的n-1,而总体的标准差使用n呢?这是因为自由度是指一组数据中可以自由取值的个数,当样本数据的个数为n时,其样本均值是确定的,只有n-1个数据可以自由取值,其中必有一个数据不能自由取值。所以,样本的标准差只能除以n-1,而不能除以n。如:假定一个样本有3个数值4、5、9,它的样本均值=6,当我们自由取值4和9时,另一个数据就不能自由取值了,它必然取5这个数字。【3】

> x<-c(1,2,3,5,99,9,9,9,50,16,20,32,33,34,50,60,16,16,16,16,16,16,2,2,2,50,3)
> dvar<-var(x) #样本方差
> dsd<-sd(x) #样本标准差
> dvar;dsd
[1] 534.7379
[1] 23.1244

 3.6 变异系数

        描述数据差异的统计量,当不同样本原始数据观测值相差较大或计量单位不一致,变异系数比标准差更能准确表示。

        变异系数计算公式为标准差除以平均数(sd/mean)消除数值大小和计量单位不同造成的影响。在一定条件下更代表数据稳定程度(离散程度)。值越小稳定性越高。

> ex3_9<-read.csv("D:/demoData/StaBr/example/chap03/example3_9.csv",fileEncoding = "GBK")
> head(ex3_9)# 看看这个表里前6列是什么内容
  纳塔利娅.帕杰林娜 郭文珺 卓格巴德拉赫.蒙赫珠勒 妮诺.萨卢克瓦泽 维多利亚.柴卡
1              10.0   10.0                   9.3             9.8           9.3
2               8.5   10.5                  10.0            10.3           9.4
3              10.0   10.4                   8.7            10.0          10.4
4              10.2   10.4                   8.3             9.5          10.1
5              10.6   10.1                   9.2            10.2          10.2
6              10.5   10.3                   9.5            10.7          10.5
  莱万多夫斯卡.萨贡 亚斯娜.舍卡里奇 米拉.内万苏
1               8.1            10.2         8.7
2              10.3             9.6         9.3
3               9.2             9.9         9.2
4               9.9             9.9        10.3
5               9.8             9.3         9.8
6              10.4             9.1        10.0
> ?apply()
> #apply(数据,作用范围或方式,作用函数,是否简化)
> #将作用函数按照作用范围或方式作用到数据上计算出结果,对于矩阵或数据框,可用2表示按列作用
> dsd<-apply(ex3_9,2,sd)
> dmean<-apply(ex3_9,2,mean)
> class(dmean)
[1] "numeric"
> dmean
    纳塔利娅.帕杰林娜                郭文珺 卓格巴德拉赫.蒙赫珠勒 
                 9.81                 10.23                  9.26 
      妮诺.萨卢克瓦泽         维多利亚.柴卡     莱万多夫斯卡.萨贡 
                10.14                  9.80                  9.73 
      亚斯娜.舍卡里奇           米拉.内万苏 
                 9.69                  9.65 
> cv<-dsd/dmean
> df<-data.frame("平均数"=dmean,'标准差'=dsd,'变异系数'=cv)
> round(df,3) #输出两位小数点
                      平均数 标准差 变异系数
纳塔利娅.帕杰林娜       9.81  0.615    0.063
郭文珺                 10.23  0.437    0.043
卓格巴德拉赫.蒙赫珠勒   9.26  0.707    0.076
妮诺.萨卢克瓦泽        10.14  0.546    0.054
维多利亚.柴卡           9.80  0.650    0.066
莱万多夫斯卡.萨贡       9.73  0.733    0.075
亚斯娜.舍卡里奇         9.69  0.357    0.037
米拉.内万苏             9.65  0.462    0.048

3.7 标准分数

   描述数据差异的统计量,标准分数(也称Z分数)表示某变量数值距离群体(本组数据)平均数相差多少个标准差,用以描述其相对位置,也能体现离群点。

        一般来说,对称分布的数据约99%的数据落在三个标准差范围之内,因此三个标准差外数据称离群点。

> ex3_9<-read.csv("D:/demoData/StaBr/example/chap03/example3_1.csv",fileEncoding = "GBK")
> head(ex3_9)
  分数
1   85
2   55
3   91
4   66
5   79
6   97
> scale(ex3_9$分数) # 计算标准分数
             [,1]
 [1,]  0.37837476
 [2,] -1.89187378
 [3,]  0.83242446
 [4,] -1.05944932
 [5,] -0.07567495
 [6,]  1.28647417
 [7,]  0.90809942
 [8,] -1.89187378
 [9,]  0.52972466
[10,]  0.75674951
[11,]  0.22702485
[12,] -0.75674951
[13,]  1.21079922
[14,] -0.60539961
[15,]  0.75674951
[16,] -1.43782408
[17,]  0.45404971
[18,]  0.45404971
[19,]  0.90809942
[20,]  0.37837476
[21,] -0.98377437
[22,]  0.07567495
[23,]  0.68107456
[24,] -2.27024854
[25,]  1.13512427
[26,]  0.45404971
[27,] -0.37837476
[28,]  0.83242446
[29,]  0.15134990
[30,] -1.05944932
attr(,"scaled:center")
[1] 80
attr(,"scaled:scale")
[1] 13.21441
> # 转换为向量类型好看点
> as.vector(scale(ex3_9$分数))
 [1]  0.37837476 -1.89187378  0.83242446 -1.05944932 -0.07567495  1.28647417
 [7]  0.90809942 -1.89187378  0.52972466  0.75674951  0.22702485 -0.75674951
[13]  1.21079922 -0.60539961  0.75674951 -1.43782408  0.45404971  0.45404971
[19]  0.90809942  0.37837476 -0.98377437  0.07567495  0.68107456 -2.27024854
[25]  1.13512427  0.45404971 -0.37837476  0.83242446  0.15134990 -1.05944932
> # 保留2位小数
> round(as.vector(scale(ex3_9$分数)))
 [1]  0 -2  1 -1  0  1  1 -2  1  1  0 -1  1 -1  1 -1  0  0  1  0 -1  0  1 -2  1  0  0
[28]  1  0 -1
> round(as.vector(scale(ex3_9$分数)),2)
 [1]  0.38 -1.89  0.83 -1.06 -0.08  1.29  0.91 -1.89  0.53  0.76  0.23 -0.76  1.21
[14] -0.61  0.76 -1.44  0.45  0.45  0.91  0.38 -0.98  0.08  0.68 -2.27  1.14  0.45
[27] -0.38  0.83  0.15 -1.06
# 比如这个第15个同学的分数比平均分多了0.76给标准差

3. 8偏度系数

         记为SK,描述数据分布形状的统计量,不对称的数据分布总具有偏度,值越靠近0,分布越对称,负值为左偏(左侧有长尾),正数为右偏。

        在R中主要有3中计算方法,默认type=3,令SK1=3阶中心矩  /(2阶中心矩)^(3/2)

  • type=1:SK= SK1
  • type=2:SK=SK1 *(sqrt(n*(n-1)))/ (n-2)
  • type=3:SK=SK1 *((n-1)/ n)^(3/2)
> library(e1071)
> skewness(x) # 偏度

3.9  峰度系数

         记为K,描述数据分布形状的统计量,表示分布峰值的高低,标准正态K=0,K>0,尖峰,数据相对集中,K<0数据分布相对分散。

          在R中主要有3中计算方法,默认type=3,

> library(e1071)
> kurtosis(x) # 峰度

4. 概率分布

4.1 随机变量的概率分布

        随机变量描述实验出现的所以可能,事先不知道。有离散型和连续型之分,取值只能是有限的点则是离散型随机变量,反之像在区间中取值就是连续型

        对于离散型,概率函数和概率分布能表示出其所有取值的概率(可能性),但对于连续型随机变量,无法将所有取值一一罗列。因此可以用分布函数概率密度函数(也可以描述离散型变量。判断x落在(A,B]中的概率,还是是x取某个确定值的概率,这是连续型变量和离散型变量的本质区别【5】【6】

分布函数F(x):

给出取值小于某个值的概率,是概率的累加形式即:分布函数F(x)是概率,F(xi)=P(x<xi)=sum(P(x1),P(x2),……,P(xi))(对于离散型变量)或求积分(对于连续型变量).且F趋于正无穷极限为1,趋于负无穷极限为0.

        由F(x),P(a<x≤b)可以表示为:P(a<x≤b)=F(b)-F(a)。这里像不像高等数学原函数和积分的概念,F相当于原函数、P(a<x≤b)相当于所求积分。


概率密度函数f(x)

F为f的原函数,概率密度函数给出了变量落在某值xi邻域内(或者某个区间内)的概率变化快慢即概率密度函数f(x)的值不是概率,而是概率的变化率

        概率密度函数下面的面积才是概率。其变化率代表了概率集中程度,因此也称密度函数。

描述随机变量(离散、连续)的取值水平可以用期望统计量:

 描述随机变量(离散、连续)的离散程度可以用方差统计量:

4.2 常见概率分布

        由上,随机变量取哪些值,概率多大,这就是概率分布 。连续型和离散型都各有许多常见重要的概率分布(因为某些随机变量的分布具有特殊的性质,可以用公式表达,便于计算任意取值概率)。暂时学习离散型的二项分布和连续型的正态分布。

4.2.1 二项分布

        某一随机变量只有两种取值,实验相互独立、可重复n次。可以说成进行n重伯努利试验成功次数的离散概率分布,X为n次实验中,出现概率为p事件的次数。例如概率p为正面朝上的概率,则X表示n次实验中正面朝上的概率。记为 X~B(n,p)。

# dbinom(x, size, prob)  返回二项分布的X取=x概率
# pbinom(x, size, prob)  返回二项分布的概率X小于等于x的累积概率
# x:一个数的向量,代表事件A发生次数
# size : 试验的数量
# prob : 每次试验事件A发生概率

# 假设一批6%次品率的产品(只有良和次两种可能),有放回的抽取5次(独立可重复),计算
# 全抽到良品的概率 ,即抽到0次次品,次品率为0.06,抽检5次
> dbinom(0,5,0.06)
[1] 0.733904
# 抽到3个及以下的次品概率,  X=0,1,2,3
> pbinom(3,5,0.06)
[1] 0.9999383

> dbinom(0:5,5,0.06)
[1] 0.7339040224 0.2342246880 0.0299010240 0.0019085760 0.0000609120
[6] 0.0000007776
# 概率函数
> barplot(dbinom(0:5,5,0.06),xlab='x',ylab="b")

> pbinom(0:5,5,0.06)
[1] 0.7339040 0.9681287 0.9980297 0.9999383 0.9999992 1.0000000
# 概率分布函数
> barplot(pbinom(0:5,5,0.06),xlab='x',ylab="b")

4.2.2 正态分布 

        生活中,很多的事件的随机变量都服从正态分布。表示为X~N(期望,方差)如下,期望决定分布曲线在x轴的位置,方差反映了数据离散程度,因此决定了曲线陡峭或平缓

概率密度函数为 :

 正态分布期望和方差的计算:

 标准化为标准正态分布N(0,1):

> # 返回X~N(0,1)概率密度

> x<-seq(-5,5,by=0.1) # 生成-5到5,步长0.1的向量
> f<-dnorm(x) # 生成对应标准正态分布概率密度函数值
# 绘图
> plot(x,f,col="red",type="l",
+ ylab="density",xlab="",
+ main="The Normal Density Distribution")
> plot(x,f,col="red",type="l",
+ ylab="density",xlab="",
+ main="The Normal Density Distribution")

> f<-dnorm(x) # 生成X~N(mean,(sd)^2)正态分布概率密度函数值
> f<-dnorm(x,mean=0,sd=3)
> plot(x,f,col="blue",type="l",
+ ylab="density",xlab="",
+ main="The Normal Density Distribution 2")

> # pnorm()计算累计概率
> # 计算X~N(50,10^2),P(2>=X>=-3)
> pnorm(2,mean=50,sd=10)-pnorm(-3,mean=50,sd=10)
[1] 7.354268e-07

> # qnorm()是正态分布累积分布函数反函数,相当于pnorm的反函数,的q指的是quantile,即分位数
> # 计算N(2,3^2)四分位数(0.25)处X取值
> qnorm(0.25,mean=2,sd=3)
[1] -0.02346925

 4.2.3 卡方分布

        一种由标准正态推导出来的统计量及其分布。【7】

         当n逐渐增大,其分布曲线,从不对称的右偏变为趋于对称。

> # 计算自由度为15,卡方值小于10的概率
> pchisq(10,df=15) # 计算累计函数概率
[1] 0.1802601
> # 计算自由度为15,卡方值大于20的概率
> 1-pchisq(20,df=15) # 计算累计函数概率
[1] 0.1719327
> # 计算自由度为15,卡方分布累积0.95概率的分位数对应卡方值
> qchisq(0.95,df=15)
[1] 24.99579
> # rchisq() 生成n个数,这些值遵循给定自由度的卡方分布
> rchisq(n=100,df=5)
> # dchisq 返回卡方概率密度函数的值
> dchisq(1,df=5)
[1] 0.08065691

> # curve参数expr是函数名称或一个关于变量x的函数表达式
> curve(dchisq(x, df = 10), from = 0, to = 100)

4.2.4 t分布 

        t分布由标准正态分布和卡方分布统计量推导而来。【7】

> # dt返回概率密度
> dt(x=2,df=5)
[1] 0.06509031
> # pt返回累计概率,<=某一数累计概率
> pt(3,df=15)
[1] 0.9955136
> # qt生成分位数对应T统计量的值
> qt(0.95,df=15)
[1] 1.75305
> # rt生成n个满足t分布的数
> rt(10,df=5)
 [1] -0.31376145  0.72061577 -0.44074912 -0.08844538
 [5] -1.66028708  0.33434139 -0.25799061 -0.66584358
 [9] -0.77544520 -0.51006914

> curve(dt(x,df=5),from=-10,to=10)

4.2.5 F分布 

        F分布基于两个独立卡方分布,可以用在比较两个不同总体的方差是否有显著性差异。【7】

> # pf(x,df1,df2)计算<=x,分子自由度df1,分母df2的累积概率
> pf(3,df1=10,df2=8)
[1] 0.9335491
> # qf计算分位数对应F统计量的值(即概率密度曲线x轴x取值)
> qf(0.95,df1=25,df2=20)
[1] 2.07392
> # df计算概率密度
> df(2,df1=10,df2=10)
[1] 0.1707057
> # rf生成n个满足F分布的值
> rf(100,df1 = 10,df2=10)
  [1] 0.3228032 0.6938115 0.8500133 0.1976527
  [5] 1.1363659 0.3068205 0.9435227 1.0027156
  [9] 1.9533437 0.4917310 0.5015897 4.4727108
  ...
 [81] 1.8977326 0.8221989 4.2044950 3.4790064
 [85] 2.1021133 0.6485048 2.0900100 0.6863188
 [89] 0.6035404 0.7944657 2.1406264 1.3478087
 [93] 0.4569701 1.7170813 1.4652743 1.6906321
 [97] 0.8772400 1.4042121 0.3165295 0.8468201
> curve(df(x,df1=10,df2=10),from=0,to=50)

4.3 样本统计量的概率分布 

       样本统计量的分布

        我们总希望知道总体的某些参数,如期望和方差,但总体有时候在现实中是取不完的,因此我们希望通过抽取总体中一部分即样本,从样本构造出统计量如平均值、方差推断总体。

        因此,样本统计量随着抽到的样本不同是变化的,作为一个随机变量,也具有某个概率分布,也称抽样分布。知道了一个抽样分布的性质,我们可以得到一些不变的东西(性质),给样本推断总体提供依据。

 4.3.1 样本均值抽样分布

        将每一次取到的样本取均值作为一个随机变量,统计量是求平均函数。 

        中心极限定理,大样本下n,从任意均值为u,方差为o2总体下抽取的样本均值抽样分布服从一个正态分布,即~N(u,o2/n)。进一步还可以化为标准正态。

> library(DAAG) # simulateSampDist用到该包
> d<-read.csv("D:/demoData/StaBr/example/chap02/example2_2.csv",fileEncoding = "GBK")
> head(d)
      日期 北京 上海 郑州 武汉 西安 沈阳
1 2019/1/1   45   40  158   62  215  114
2 2019/1/2   78   87  200   80  271  103
3 2019/1/3  162   73  204   95  340  103
4 2019/1/4   40   75  325  122  296   63
5 2019/1/5   47   64  142  214  258   51
6 2019/1/6   88   55  119  213  346  110
> # 以北京这列数据为总体,分布看看样本量5,10,50样本均值分布
> myMeans <- simulateSampDist(rpop=d$北京,numsamp = 300,numINsamp = c(5,10,50),FUN = mean) #numsamp为每次抽取的样本数、numINsamp为抽取多少次,即抽样分布样本容量,FUN为使用的统计量
> # 作图
> par(pty="s")
> plotSampDist(myMeans,graph = c("density","qq"),popsample = FALSE)
# popsample为是否显示总体rpop的分布
# qq plot也称正态概率图,多用于检查一组数据是否服从正态分布一组的散点图。如果这组实数服从正态分布,正态概率图就是一条直线。

        可以看到,原总体为卡方分布,但当样本容量增大如50时,样本均值统计量的分布趋于对称的正态分布(蓝色)。

4.3.2 样本方差抽样分布

           将每一次取到的样本取方差作为一个随机变量,统计量是求方差函数。 

# 接上已读入数据且加载DAAG包
> myVar <- simulateSampDist(rpop=d$北京,numsamp = 300,numINsamp = c(5,10,50),FUN = var) 
> par(pty="s")
> plotSampDist(myVar,graph = c("density","qq"),popsample = FALSE)

         可以看到,当样本容量n逐渐增大,几乎成对称的正态分布,qq图也呈直线。

4.3.3 样本比例的抽样分布 

       比例也是总体中一个参数,表示具有某属性个体和全部个体的比值, 样本比例统计量就是依照此,例如8班男生占8班总人数比例。

        将每一次取到的样本中A属性个数m和总个数n比值作为一个随机变量(p=m/n),统计量是求比例函数m/n。 

        n充分大通常要求,np>=10 &&n(1-p)>=10

4.3.4 统计量的标准误(标准差)

         统计量的标准误即统计量作为随机变量这组观测值数据的标准差,用来衡量样本统计量之间的离散程度。

样本均值标准误为:

且一般情况下,总体标准差未知,用样本标准差S代替。

样本比例标准误:

同理,实际情况(许多统计软件)都将总体方差用样本方差代替p(1-p) 

参考 

【1】《统计学—基于R》(第4版)—例题和习题数据icon-default.png?t=N7T8http://crup.com.cn/Book/TextDetail?doi=22637af7-4013-4465-a57d-0f7199d19ea0 【2】【R语言读取文件报错:Error in make.names(col.names, unique = TRUE) : ‘<c8><d5><c6><da>‘多字节字符串有错】_r语言csv多字节字符串有错-CSDN博客

【3】方差与标准差 - 国家统计局 (stats.gov.cn)

【4】R语言学习笔记 -- 【par()函数】篇-《R作图-现代统计图形》_r语言par-CSDN博客 

【5】概率函数P(x)、概率分布函数F(x)、概率密度函数f(x) - 简书 (jianshu.com)

【6】通俗理解:概率分布函数、概率密度函数-腾讯云开发者社区-腾讯云 (tencent.com)

【7】三大抽样分布:卡方分布,t分布和F分布的简单理解-CSDN博客 

【8】贾俊平.统计学——基于R(第四版)[M] .中国人民大学出版社 1-121

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值