基本数据统计分析下|样本数据可视化|参数估计|假设检验

样本数据可视化

数据可视化是指数据的图形表示

借助图形可视化可以更加直观地判断数据的特征与分布情况

常用的可视化图形有条形图、直方图、饼图、盒图和火柴棒图等

条形图

根据数据绘制的小矩形。绘制命令为bar

调用格式

  1. bar(y),绘制y的条形图,每一个y对应一个条形
  2. bar(x, y),以x为横坐标位置,做y关于x的条形图
  • x = -3:0.2:3;
    subplot(1, 2, 1)
    bar(exp(-x.*x),'r')
    subplot(1, 2, 2)
    bar(x, exp(-x.*x),'b')

x,是-3到3的等差数列

subplot,把图形窗口分为1行2列的子窗口,激活第一个

bar,画条形图,绘制 e − x 2 e^{-x^{2}} e−x2向量,颜色是红色

subplot,激活第二个

bar,指定横坐标是x,纵坐标是 e − x 2 e^{-x^{2}} e−x2,颜色是蓝色

直方图

将数据分为若干个区间,计算落在每个区间的频数或频率;在每个区间上画一个矩形,以估计总体的概率分布情况

绘制命令为histogram

调用格式

  1. histogram(x),绘制x的统计直方图,自动设置箱体数量nbins
  2. histogram(x, nbins),绘制x的统计直方图,设置箱体数量为nbins

  • 绘制正态分布随机数的直方图

    y = randn(10000, 1);
    subplot(1, 2, 1)
    histogram(y)
    subplot(1, 2, 2)
    histogtam(y, 5)

randn,表示生成标准正态分布的随机数

第一个窗口画y对应的直方图,第二个划分成5个小区间画5个箱体进行直方图绘制

饼图

绘制数据的饼形图。绘制命令是pie

调用格式

1. pie(x)
2. pie(x, labels)
3. pie(x, explode)
  1. 根据数据x绘制饼图
  2. 根据数据x绘制饼图,同时添加labels标签内容
  3. 根据数据x绘制饼图,设置扇区从饼图偏移一定位置
  • x = [1, 3, 0.5, 2.5, 2];
    labels = {'A', 'B', 'C', 'D', 'E'};
    explode = [0 1 0 0 0];
    subplot(2, 2, 1);pie(x)
    subplot(2, 2, 2);pie(x, explode)
    subplot(2, 2, 3);
    pie(x, explode, labels)
    subplot(2, 2, 4);
    pie3(x, explode, labels)

explode,向量取1的值就是对应要偏离出去的扇区

箱线图

箱线图是用样本数据的如图五个特征来描述数据的一种图形化方法

直观展示数据的对称性,分散程度

绘制命令为boxplot

调用格式

boxplot(x, g, Name, Value)
  • x为样本数据,可以为向量或矩阵;如果是矩阵,绘制每列向量的箱线图

  • g,指定x的分组

  • Name-Value 参数对设置相关属性的取值

  • x = [1, 2, 3, 4, 5, 5, 4, 6, 6, 7, 7, 9, 9,...
    0, 12, 12, 13, 15, 23, 25, -9, -15]';
    y = [0, 2, 0, 3, 2, 2, 3, 3, 5, 5, 6, 9, 9, 9,...
    9, 9, 10, 9, 5, 15, -1, -15]';
    g = [ones(1, 12), 2*ones(1, 10)]';
    subplot(2, 2, 1);boxplot(x)
    subplot(2, 2, 2);boxplot(x, g)
    subplot(2, 2, 3);boxplot([x,y], {'Group1','Group2'})
    subplot(2, 2, 4);boxplot(x, 'Orientation','horizontal')

x,y是22维德列向量

g是列向量,生成1行12列的向量,元素是1;再续10个2x1,也就是2

g把x分为两组,标注为1的一组,2的一组

火柴棒图

绘制数据的火柴棒图形,绘制命令为stem

调用格式

1. stem(x)
2. stem(x, y)
  1. 绘制x的火柴棒图,每一个x对应一个火柴棒
  2. 以x为横坐标位置,作y关于x的火柴棒图
  • x = linspace(0,2*pi, 50)';
    y = sin(x);
    subplot(1, 2, 1),stem(y)
    subplot(1, 2, 2),stem(x, y)

linspace,生成一个等差数列,首项是0,到 2 π 2\pi 2π结束,生成50个数据点,组成等差数列,赋值给x

y,是正弦函数值

P-P图

可以直观地检验样本数据是否符合某一指定概率分布

如果被检验的数据符合所指定分布,P-P图绘制的散点图会近似在一条直线上

实现命令是probplot

调用格式

1. probplot(x)
2. probplot(dist, x)
  1. 检验x是否符合正态分布
  2. 检验x是否符合dist指定的分布

  • 利用P-P图,检验随机样本的分布

    x1 = normrnd(0, 1, 1000, 1);
    x2 = chi2rnd(10, 1000, 1);
    subplot(1, 2, 1)
    probplot('norm', x1)
    subplot(1, 2, 2)
    probplot('norm', x2)

x1,生成正态分布的随机数,均值是0,标准差是1,1000行1列的列向量

x2,生成chi2分布的随机数,自由度是10,生成1000行1列,赋值给x2

Q-Q图

可以检验两个样本是否服从相同的分布

如果来自同一个分布,绘制出来的散点会近似在一条直线上

实现命令是qqplot

调用格式

1. qqplot(x)
2. qqplot(x, y)
  1. 检验样本数据x是否符合正态分布
  2. 检验样本数据x,y是否同分布
  • x1 = normrnd(10, 1, 200, 1);
    x2 = normrnd(10, 1, 200, 1);
    x3 = poissrnd(10, 1000, 1);
    subplot(1, 2, 1)
    qqplot(x1, x2)
    subplot(1, 2, 2)
    qqplot(x1, x3)

x3,泊松分布随机数, λ = 10 \lambda=10 λ=10,1000行1列

参数估计

基础知识

对于给定的一组观测数据,若根据经验已经知道数据的分布类型,但其中某些参数未知,需要进行参数估计

参数估计包括

  • 点估计:通过构造一个统计量对未知参数进行估计。常见的方法有矩估计和极大似然估计
  • 区间估计:通过构造一个区间(两个统计量),在一定的可靠度下使这个范围包含该未知参数的真值
参数估计

Matlab中,直接调用相关命令实现点估计和区间估计

normfit:正态分布
unifit:均匀分布
poissfit:泊松分布

基本命令格式

[mu, sigma, mu_ci, sigma_ci] = normfit(x, alpha)
  • x为样本数据向量

  • alpha指定显著性水平,默认0.05

  • mu和sigma为待估计参数(期望和标准差)的点估计

  • mu_ci和sigma_ci为期望和标准差的置信区间估计

  • 生成1000个服从正太分布 N ( 2 , 5 2 ) N(2, 5^{2}) N(2,52)的随机数,在显著性水平 α = 0.05 \alpha=0.05 α=0.05时,对正态总体的期望和方差进行点估计和区间估计

    x = normrnd(2, 5, 1000, 1);
    [mu, sigma, mu_ci, sigma_ci] = normfit(x, 0.05)

输出结果为

mu = 
	2.0191
sigma = 
	4.9174
mu_ci = 
	1.7140
	2.3243
sigma_ci = 
	4.7109
	5.1429

mu,对均值的估计

sigma,对标准差的估计

通用函数估计方式

[b, b_ci] = mle(x, 'distribution', name, 'alpha', alpha, 'Ntrials', n)
  • x,为样本数据向量
  • distribution-name 参数对指定分布名称
  • alpha-alpha 参数对指定显著性水平,默认alpha=0.05
  • Ntrials-n 参数对指定实验总次数(仅用于二项分布)
  • b和b_ci为待估计参数的点估计和区间估计

例1

生成1000个服从 λ = 5 \lambda=5 λ=5的泊松分布的随机数,在显著性水平 α = 0.05 \alpha=0.05 α=0.05时,对参数 λ \lambda λ进行点估计和区间估计

x = poissrnd(5, 1000, 1);
[lamda, lamda_ci] = mle(x, 'distribution', 'poiss', 'alpha', 0.05)

输出结果为

lamda = 
	4.9690
lamda_ci = 
	4.8308
	5.1072

例2

生成200个服从n=20,p=0.75的二项分布 B ( 20 , 0.75 ) B(20,0.75) B(20,0.75)随机数,在显著性水平 α = 0.05 \alpha=0.05 α=0.05时,对参数 p p p进行点估计和区间估计

x = binornd(20, 0,75, 200, 1);
[p, p_ci] = mle(x, 'distribution', 'binomial', 'alpha', 0.05, 'ntrials', 20)

输出结果为

p = 
	0.7510
p_ci = 
	0.7373
	0.7643

假设检验

基础知识

假设检验是统计推断的另一类重要问题,它与参数估计解决问题的角度不同。

参数估计是利用样本信息推断总体分布中的未知参数的取值情况

假设检验是先假设总体具有某种统计特征(如服从某种分布或具有某种参数),然后再利用样本信息检验这个假设是否可靠

正太总体的参数检验

均值检验

  • 单个正态总体均值
  • 两个正态总体均值
    方差检验
  • 单个正态总体方差
  • 两个正态总体方差

单个正态总体均值的检验

单个正态总体 N ( μ , σ 2 ) N(\mu,\sigma^{2}) N(μ,σ2)的均值 μ \mu μ检验分为两种情况

  • 方差 σ 2 \sigma^{2} σ2已知,关于均值 μ \mu μ的检验(Z检验)
    z = x ˉ − μ σ ∼ N ( 0 , 1 ) z=\frac{\bar{x}-\mu}{\sigma}\sim N(0,1) z=σxˉ−μ∼N(0,1)
  • 方差 σ 2 \sigma^{2} σ2未知,关于均值 μ \mu μ的检验(t检验)
    t = x ˉ − μ s n ∼ t ( n − 1 ) t=\frac{\bar{x}-\mu}{\frac{s}{\sqrt{ n }}}\sim t(n-1) t=n sxˉ−μ∼t(n−1)
    三种检验形式(原假设 H 0 H_{0} H0、备择假设 H 1 H_{1} H1)
  1. 双边检验: H 0 : μ = μ 0 ; H 1 : μ ≠ μ 0 H_{0}:\mu=\mu_{0};H_{1}:\mu\ne\mu_{0} H0:μ=μ0;H1:μ=μ0
  2. 右边检验: H 0 : μ ≤ μ 0 ; H 1 : μ > μ 0 H_{0}:\mu\le\mu_{0};H_{1}:\mu>\mu_{0} H0:μ≤μ0;H1:μ>μ0
  3. 左边检验: H 0 : μ ≥ μ 0 ; H 1 : μ < μ 0 H_{0}:\mu\ge\mu_{0};H_{1}:\mu<\mu_{0} H0:μ≥μ0;H1:μ<μ0

对应的Matlab函数分别为ztest和ttest

单个正态总体均值 μ \mu μ检验的ztest和ttest命令

[h, p] = ztest(x, mu0, sigma, 'alpha', alpha, 'Tail', tail)
[h, p] = ttest(x, mu0, 'alpha', alpha, 'Tail', tail)
  • x,样本数据向量
  • mu0原假设中的 μ 0 \mu_{0} μ0
  • sigma为总体的标准差
  • alpha为显著性水平(默认为0.05)
  • Tail指定备择假设的形式:双边('both',默认),右边('right')或左边('left')检验
  • h为0或1,分别表示接受(h=0)或者拒绝原假设(h=1)
  • p为该检验的显著性水平(p>alpha,则接受原假设,否则拒绝原假设)
例1
  • 标准差已知,检验均值是否为0.5,采用Z检验法,而且是双边检验

    x =[0.497,0.506,0.518,0.524,0.498,0.511,0.520,0.515,0.512];
    [h, p]=ztest(x, 0.5, 0.015, 'alpha', 0.05, 'tail', 'both')

输出结果为

h = 1
p = 0.0248

0.0248<0.05

因此拒绝原假设,即显著性水平0.05下,不能认为机器正常

例2

标准差未知,检验均值是否大于225,采用t检验法
H 0 : μ ≤ 225 , H 1 : μ > 225 H_{0}:\mu\le 225,H_{1}:\mu >225 H0:μ≤225,H1:μ>225

x = [159, 280, 101, 212, 224, 379, 179, 264
	222, 362, 168, 250, 149, 260, 485, 170]
[h, p] = ttest(x, 225, 'alpha', 0.05, 'tail', 'right')

输出结果为

h = 0
p = 0.2570

0.2570>0.05,接受原假设,即显著性水平0.05下,不能认为平均寿命大于225

两个正态总体均值的检验

设 X 1 , X 2 , ... , X m X_{1},X_{2},\dots,X_{m} X1,X2,...,Xm与 Y 1 , Y 2 , ... , Y n Y_{1},Y_{2},\dots,Y_{n} Y1,Y2,...,Yn分别来自正态总体 N ( μ 1 , σ 2 ) N(\mu_{1},\sigma^{2}) N(μ1,σ2)和 N ( μ 2 , σ 2 ) N(\mu_{2},\sigma^{2}) N(μ2,σ2)的样本,且两样本相互独立,方差相同,检验如下问题

  1. 双边检验: H 0 : μ 1 = μ 2 ; H 1 : μ 1 ≠ μ 2 H_{0}:\mu_{1}=\mu_{2};H_{1}:\mu_{1}\ne\mu_{2} H0:μ1=μ2;H1:μ1=μ2
  2. 右边检验: H 0 : μ 1 ≤ μ 2 ; H 1 : μ 1 > μ 2 H_{0}:\mu_{1}\le\mu_{2};H_{1}:\mu_{1}>\mu_{2} H0:μ1≤μ2;H1:μ1>μ2
  3. 左边检验: H 0 : μ 1 ≥ μ 2 ; H 1 : μ 1 < μ 2 H_{0}:\mu_{1}\ge\mu_{2};H_{1}:\mu_{1}<\mu_{2} H0:μ1≥μ2;H1:μ1<μ2
Matlab实现
[h, p] = ttest2(x, y, 'alpha', alpha, 'Tail', tail)

说明:x,y为样本数据向量,维数可以不相同,其他参数的含义同ttest函数

男生平均成绩47.6,女生平均成绩44

检验两个正态总体的均值是否相同,采用ttest2

x1 = [49, 48, 47, 53, 51, 43, 39, 57, 56, 46, 42, 44, 55, 44, 40];
x2 = [46, 40, 47, 51, 43, 36, 43, 38, 48, 54, 48, 34];
[h, p] = ttest2(x1, x2, 'alpha', 0.05, 'tail', 'right')

输出结果为

h = 0
p = 0.065

0.065>0.05,接受原假设,即显著性水平0.05下,男、女生的物理成绩不相上下

单个正态总体方差的检验

设正态总体 X ∼ N ( μ , σ 2 ) X\sim N(\mu,\sigma^{2}) X∼N(μ,σ2),参数 μ \mu μ和 σ 2 \sigma^{2} σ2未知, X 1 , X 2 , ... , X n X_{1},X_{2},\dots,X_{n} X1,X2,...,Xn是来自X的样本,检验如下问题

  1. 双边检验: H 0 : σ 2 = σ 0 2 ; H 1 : σ ≠ σ 0 2 H_{0}:\sigma^{2}=\sigma_{0}^{2};H_{1}:\sigma\ne\sigma_{0}^{2} H0:σ2=σ02;H1:σ=σ02
  2. 右边检验: H 0 : σ 2 ≤ σ 0 2 ; H 1 : σ 2 > σ 0 2 H_{0}:\sigma^{2}\le\sigma_{0}^{2};H_{1}:\sigma^{2}>\sigma_{0}^{2} H0:σ2≤σ02;H1:σ2>σ02
  3. 左边检验: H 0 : σ 2 ≥ σ 0 2 ; H 1 : σ 2 < σ 0 2 H_{0}:\sigma^{2}\ge\sigma_{0}^{2};H_{1}:\sigma^{2}<\sigma_{0}^{2} H0:σ2≥σ02;H1:σ2<σ02
Matlab实现命令
[h, p] = vartest(x, sigma2, 'alpha', alpha, 'Tail', tail)
  • x为样本数据向量
  • sigma2表示 σ 0 2 \sigma_{0}^{2} σ02

可求得9包化肥质量的方差为1.4875,与1.5相近

是正态总体方差的双边检验,可以用vartest实现

x = [49.9, 50.5, 50.7, 51.7, 49.8, 47.9, 49.2, 51.4, 48.9];
[h, p] = vartest(x, 1.5, 'alpha', 0.02, 'Tail', 'both')

输出结果为

h = 0
p = 0.88

0.88>0.02,接受原假设,即显著性水平0.02下,认为每包化肥质量的方差为1.5

两个正态总体方差的检验

设 X 1 , X 2 , ... , X m X_{1},X_{2},\dots,X_{m} X1,X2,...,Xm与 Y 1 , Y 2 , ... , Y n Y_{1},Y_{2},\dots,Y_{n} Y1,Y2,...,Yn分别来自正态总体 N ( μ 1 , σ 1 2 ) N(\mu_{1},\sigma_{1}^{2}) N(μ1,σ12)和 N ( μ 2 , σ 2 2 ) N(\mu_{2},\sigma_{2}^{2}) N(μ2,σ22)的样本,且两样本相互独立,参数 μ 1 , σ 1 2 , μ 2 , σ 2 \mu_{1},\sigma_{1}^{2},\mu_{2},\sigma^{2} μ1,σ12,μ2,σ2未知,检验如下问题

  1. 双边检验: H 0 : σ 1 2 = σ 2 2 ; H 1 : σ 1 ≠ σ 2 2 H_{0}:\sigma_{1}^{2}=\sigma_{2}^{2};H_{1}:\sigma_{1}\ne\sigma_{2}^{2} H0:σ12=σ22;H1:σ1=σ22
  2. 右边检验: H 0 : σ 1 2 ≤ σ 2 2 ; H 1 : σ 1 2 > σ 2 2 H_{0}:\sigma_{1}^{2}\le\sigma_{2}^{2};H_{1}:\sigma_{1}^{2}>\sigma_{2}^{2} H0:σ12≤σ22;H1:σ12>σ22
  3. 左边检验: H 0 : σ 1 2 ≥ σ 2 2 ; H 1 : σ 1 2 < σ 2 2 H_{0}:\sigma_{1}^{2}\ge\sigma_{2}^{2};H_{1}:\sigma_{1}^{2}<\sigma_{2}^{2} H0:σ12≥σ22;H1:σ12<σ22
Matlab实现命令
[h, p] = vartest2(x, y, 'alpha', alpha, 'Tail', tail)
  • x,y为样本数据向量
x1 = [79.98, 80.04, 80.02, 80.04, 80.03, 80.03
	80.04, 79.97, 80.05, 80.03, 80.02, 80.00, 80.02];
x2 = [80.02, 79.94, 79.98, 79.97, 79.97, 80.03, 79.95, 79.97];
[h, p] = vartest2(x1, x2, 'alpha', 0.05, 'Tail', 'both')

输出结果为

h = 0
p = 0.3938

0.3938>0.05,接受原假设,即显著性水平0.05下,认为方法A和B测得熔化热的方差相同

正态分布的非参数检验

偏度峰度检验

检验如下假设(不适用于小样本情形)
H 0 H_{0} H0:样本总体服从正态分布
H 1 H_{1} H1:样本总体不服从正态分布

Matlab实现命令格式

[h, p] = jbtest(x, alpha)
  • x为样本数据向量
  • alpha为给定显著性水平
Kolmogorov-Smirnov检验

检验如下假设
H 0 H_{0} H0:样本总体服从某指定分布
H 1 H_{1} H1:样本总体不服从某指定分布

Matlab实现命令格式

[h, p] = kstest(x, 'CDF', cdf, 'alpha', alpha)
  • x为样本数据向量
  • alpha给定显著性水平
  • cdf用于指定某一分布,可以为两列矩阵,第一列x值,第二列是x值的cdf值;若cdf值省略,默认为标准正态分布
Lilliefors检验

检验如下假设
H 0 H_{0} H0:样本总体服从某指定分布
H 1 H_{1} H1:样本总体不服从某指定分布

Matlab实现命令格式

[h, p] = lillietest(x, 'alpha', alpha, 'Distribution', dist)
  • x为样本数据向量
  • alpha给定显著性水平
  • dist用于指定某一分布,如normal,exponential
双样本Kolmogorov-Smirnov检验

检验如下假设
H 0 H_{0} H0:样本x,y的总体服从某一相同的连续分布
H 1 H_{1} H1:样本x,y的总体不服从某一相同的连续分布

Matlab实现命令格式

[h, p] = kstest2(x, y, 'alpha', alpha)
  • x,y为样本数据向量
  • alpha给定显著性水平

是关于样本是否来自正态总体的非参数检验

x=[141 148 132 138 154 142 150 146 155 158 150 140 147 148 144 150 149 145 149 158 143 141 144 144 126 140 144 142 141 140 145 135 147 146 141 136 140 146 142 137 148 154 137 139 143 140 131 143 141 149 148 135 148 152 143 144 141 143 147 146 150 132 142 142 143 153 149 146 149 146 142 149 142 137 134 144 146 147 140 142 140 137 152 145];
[h_jb, p_jb] = jbtest(x, 0.05)
[mu, sigma]= normfit(x);
[h_ks, p_ks]= kstest(x, 'cdf', [x, normcdf(x, mu, sigma)], 'alpha', 0.05)
[h_lillie, p_lillie]= lillietest(x, 'alpha', 0.05,  'Distribution', 'norm')
相关推荐
Desire.9844 小时前
Python 数学建模——灰色关联度分析
python·数学建模·灰色关联度
eeee~~6 小时前
GeoPandas在地理空间数据分析中的应用
python·jupyter·信息可视化·数据分析·geopandas库
不睡懒觉的橙7 小时前
【医疗大数据】医疗保健领域的大数据管理:采用挑战和影响
大数据·人工智能·信息可视化·人机交互·健康医疗
梦想科研社14 小时前
【无人机设计与控制】四旋翼无人机俯仰姿态保持模糊PID控制(带说明报告)
开发语言·算法·数学建模·matlab·无人机
叫我:松哥14 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
数模竞赛Paid answer16 小时前
2017年国赛高教杯数学建模A题CT系统参数标定及成像解题全过程文档及程序
数学建模·全国大学生数学建模竞赛·高教杯
liangbm316 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
数模竞赛Paid answer16 小时前
2018年国赛高教杯数学建模D题汽车总装线的配置问题解题全过程文档及程序
数学建模·全国大学生数学建模竞赛·数学建模数据分析
一声沧海笑1 天前
dplyr、tidyverse和ggplot2初探
信息可视化·数据分析·r语言
diaobusi-881 天前
Python数据分析 Pandas库-初步认识
信息可视化