MATLAB 统计

  • Post author:
  • Post category:其他

一.数据集的描述
1.集中趋势(Central Tendency):

求均值:M = mean(A[,dim,outtype,nonflag])
  #参数说明:
    A:指定数据
      #若为向量,则求数组的均值
      #若为为矩阵,则求每列的均值
      #若为多维数组,则沿大小不等于1的第1个维度求均值
    dim:指定沿哪个/些维度求均值;为int/vector
    outtype:指定M的数据类型;为'default'/'double'/'native'
    nonflag:指定是否忽略NaN;为'includenan'(不忽略)/'omitnan(忽略)
    M:返回均值

#实例:
>> A=[1,2,3;4,5,6;7,8,99];
>> mean(A)

ans =

     4     5    36

>> mean(A,2)

ans =

     2
     5
    38


################################################################################################################################

求中位数:M = median(A[,dim,nonflag])

#实例:接上
>> median(A)

ans =

     4     5     6

>> median(A,2)

ans =

     2
     5
     8

################################################################################################################################

求众数:[M,F,C] = median(A[,dim])
  #参数说明:
    F:返回频率数组,其元素代表M中相应元素出现的次数
    C:返回元胞数组C,其元素是与M中相应元素出现频率相同的所有值构成的排序向量

#实例:接上
>> mode(A)

ans =

     1     2     3

>> mode(A,2)

ans =

     1
     4
     7

>> [M,F,C]=mode(A,2)

M =

     1
     4
     7


F =

     1
     1
     1


C =

  3×1 cell 数组        %C为[[1;2;3];[4;5;6];[7;8;99]]

    {3×1 double}
    {3×1 double}
    {3×1 double}

################################################################################################################################

求百分位数:Y = prctile(X,p[,dim,'Method',method])
  #参数说明:
    X:指定数据
      #若为向量,则求数组的百分位数
      #若为为矩阵,则求每列的百分位数
      #若为多维数组,则沿大小不等于1的第1个维度求百分位数
    p:指定百分比
    method:根据method的值,返回精确或近似百分位数

#实例:接上
>> prctile(A,25)

ans =

    1.7500    2.7500    3.7500

>> prctile(A,33.3)

ans =

    2.4970    3.4970    4.4970

>> prctile(A,33.3,2)

ans =

    1.4990
    4.4990
    7.4990

2.离中趋势(Variation):

求最大值:[M,I] = max(A[,B,dim,nanflag])
  #参数说明:
    B:若同时指定了A,B,则求A,B对应元素处较大的那个
      若只想求A中的最大值,则B处传入[]
  	I:返回最大值在运算维度上的索引

#实例:接上
>> max(A)

ans =

     7     8    99

>> max(A,2)

ans =

     2     2     3
     4     5     6
     7     8    99

>> max(A,[],2)

ans =

     3
     6
    99


################################################################################################################################

求最小值:[M,I] = min(A[,B,dim,nanflag])

#实例:接上
>> min(A)

ans =

     1     2     3

>> min(A,[],2)

ans =

     1
     4
     7

################################################################################################################################

求方差:V = var(A[,w,dim,nanflag])
  #参数说明:
  	w:指定各元素的权重;为0(默认;按N-1实现归一化,即求样本方差)/1(则N实现归一化,即求总体方差)/向量(元素非负,指定各数据的权重)

#实例:接上
>> var(A)

ans =

           9           9        2979

>> var(A,1)

ans =

           6           6        1986

################################################################################################################################

求标准差:V = std(A[,w,dim,nanflag])

3.其他:

求偏度:y = skewness(X[,flag,dim])
  #参数说明:
  	X:指定数据
  	flag:指定求整体偏度(指定为1)还是样本偏度(指定为0)
  	y:返回偏度

################################################################################################################################

求峰度:k = kurtosis(X[,flag,dim])
  #参数说明:
  	k:返回峰度

二.绘图
1.准备工作
(1)坐标区:

创建坐标区:ax = subplot(m,n,p[,Name,Value])

(2)坐标:

查看显示的x坐标的范围:xl = xlim
指定显示的x坐标的范围:xlim(limits)
  #参数说明:
    xl:返回显示的x坐标的范围
  	limits:指定显示的x坐标的范围;格式为[xmin,xmax]

(3)文字说明:

指定x轴的说明:t = xlabel([target,]txt[,Name,Value])
指定x轴的说明:t = ylabel([target,]txt[,Name,Value])
指定图片标题:t = title([target,]txt[,Name,Value])
  #参数说明:
  	target:指定要添加说明的对象(如ax)
  	txt:指定文字说明
  	t:返回文本对象,以便之后进行修改

2.绘图
(1)条形图:

绘制条形图:b = bar([ax,x,]y[,width,style,color,Name,Value])
  #参数说明:
    ax:指定坐标区;默认为当前坐标区(gca)
  	x,y:指定x,y坐标;为array/matrix(每行为1组,每组包含该行中的所有数据),x默认为[1,2...n]
  	width,style,color:分别指定条形的宽度/样式/颜色
  	b:返回Bar对象

(2)二维填充图:

绘制区域填充图(见下图):ar = area([ax,X,]Y[,basevalue,Name,Value])
  #参数说明:
	X,Y:分别指定数据点x,y坐标;为array/matrix(每列为1组,每组包含该列中的所有数据),x默认为[1,2...n]
	basevalue:指定基值(即显示的y坐标的起始值);默认为0
	ar:返回Area对象

在这里插入图片描述
(3)针状图:

绘制针状图:h = stem([ax,X,]Y[,'filled',LineSpec,Name,Value])
  #参数说明:
  	X,Y:分别指定数据的x,y坐标;为array/matrix(每列为1组,每组包含该列中的所有数据),x默认为[1,2...n]
  	'filled':指定使用实心圆点(默认为空心圆圈)坐标数据点的标记
  	LineSpec:指定线型/标记/颜色
  	h:返回Stem对象

(4)箱线图:

绘制箱线图:boxplot([ax,]x[,g,Name,Value])
  #参数说明:
  	x:指定数据;为array/matrix(每列为1组,每组包含该列中的所有数据)
  	g:指定分组变量,为具有相同的g值的x值创建1个单独的箱子
  	  #x值对应的g值为与该x值索引相同的g值

(5)散点图:

绘制散点图:s = scatter([ax,]x,y[,sz,c,'filled',mkr,Name,Value])
  #参数说明:
    x,y:分别指定数据的x,y坐标;为array
    sz:指定数据点标记的大小;为scalar/array
    c:指定数据点标记的颜色;为scalar(颜色名称/RGB三元组)/array/3列matrix(每列表示RGB中的1种颜色)
    'filled':使用实心圆点而非空心圆圈作为数据点标记
    mkr:指定数据点标记的形状
    s:返回Scatter对象

三.假设检验(Hypothesis Test)
1.t-检验:

进行单样本(和配对样本的)t-检验:[h,p,ci,stats] = ttest(x[,y,Name,Value])
                            [h,p,ci,stats] = ttest(x,m[,Name,Value])
  #参数说明:
    x:指定样本;为向量
  	  #原假设假定x中的数据来自均值为0且方差未知的正态分布;备择假设是总体分布的均值不等于零
  	y:指定配对样本;为向量
  	  #原假设假定x – y中的数据来自均值为0且方差未知的正态分布
  	m:指定均值(m/y只能指定1个)
  	  #原假设假定x中的数据来自均值为m且方差未知的正态分布;备择假设是均值不为m
	h:返回原假设的检验决策
	  #如果检验在5%的显著性水平上拒绝原假设,则返回1,否则返回0
	p:返回检验的p值
	ci:返回x/x-y的均值的置信区间
	stats:返回1个包含检验统计量信息的结构体

################################################################################################################################

进行双样本t-检验:[h,p,ci,stats] = ttest2(x,y[,Name,Value])
  #参数说明:
  	x,y:指定2组样本;为向量
  	  #原假设假定x,y中的数据是来自均值相等,方差相同但未知的正态分布的独立随机样本;备择假设是x,y中的数据来自均值不相等的总体
  	ci:返回总体均值差的置信区间

2.z-检验:

进行z-检验:[h,p,ci,zval] = ztest(x,m,sigma[,Name,Value])
  #参数说明:
    x:指定样本;为向量
      #原假设假定x中的数据来自均值为m,标准差为sigma的正态分布
    m,sigma:分别指定均值和标准差
    ci:返回总体均值的置信区间
    zval:返回检验的z值

3.威尔科克森符号秩检验:

进行威尔科克森符号秩检验:[p,h,stats] = signrank(x,y[,Name,Value])
                      [p,h,stats] = signrank(x,m[,Name,Value])

4.威尔科克森秩和检验:

进行威尔科克森秩和检验:[p,h,stats] = ranksum(x,y[,Name,Value])

四.多个数据集的相关性
1.皮尔逊相关系数:

求皮尔逊相关系数:[R,P,RL,RU] = corrcoef(A[,B,Name,Value])
  #参数说明:
  	A:指定数据集;为matrix
  	  #返回A的相关系数矩阵
  	A,B:指定2个数据集;为array
  	  #返回A,B广播成的矩阵的相关系数矩阵
	R:返回相关系数矩阵
	P:返回p值矩阵
	  #原假设为观测到的现象间没有关系
	RL,RU:返回每个系数的95%置信区间的下/上界

版权声明:本文为weixin_46131409原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。