B站台湾大学郭彦甫|MATLAB 学习笔记|13 统计 Statistics_&_Data_Analysis

MATLAB学习笔记(13 统计 Statistics_&_Data_Analysis)

1. 介绍

  • 主要统计方法分类
  • 叙述统计学:描述数据的方法

    • Numerical and graphical methods to look for patterns, to summarize the information in a data set
  • 推论统计学:利用给出的数据假设数据可以呈现什么,这个假设是为真或者不为真。

    • Methods to make estimates, decisions, and predictions using sample data

2. 叙述统计学(Descriptive Statistics)

2.1 平均数,中位数,众数,四分位数

平均数 (Mean),中位数 (Median),众数 (Mode),四分位数 (Quartile)

四分位数 (Quartile):把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值,其中每部分包含25%的数据。中间的四分位数就是中位数,因此通常所说的四分位数是指处在25%位置上的数值 q1(称为下四分位数)和处在75%位置上的数值 q3(称为上四分位数)。

![](https://personal-1310862495.cos.ap-shanghai.myqcloud.com//%7Byear%7D/%7Bmon%7D/%7Bday%7D/%7Bfilename%7D%7B.suffix%7D3-16576890497201.png)

matlab表示:

函数名 作用
mean Average or mean value of array
median Average or mean value of array
mode Most frequent values in array
prctile Percentiles of a data set(可以用来计算quartile)

2.2 极差,四分位距

极差 (Range),四分位距 (Interquartile range)

极差表示最大值-最小值

四分位距为 q3q1

函数 内容
max Largest elements in array
min Smallest elements in array

2.3 方差,标准差

Variance(方差): s=(xix¯)2n1

Standard deviation(标准差): s=(xix¯)2n1

函数 内容
std Standard deviation
var Variance

exercise(P10)

题目:

找出该变量 x4 的以下属性:

  1. Mean, median, mode, and quartile

  2. Range and interquartile range

  3. Variance and standard deviation

提示:

load stockreturns;
x4 = stocks(:,4);

解:

clear
load stockreturns;
x4 = stocks(:,4);

mean = mean(x4);
median = median(x4);
mode = mode(x4);
quartile = prctile(x4,[25 75],'all');   % quartile(1)表示25分位的数(q1),quartile(2)表示75分位的数(q3)

range = max(x4)-min(x4);
interquartile_range = quartile(2)-quartile(1);  % q3-q1

variance = var(x4);
standard_deviation = std(x4);

exercise(P12)

题目:

给出以下样本:

x = [1 3 5 5 5 5 7 9 9 9 10 13 14];

画出这些图:

解:

clear
clc
x = [1 3 5 5 5 5 7 9 9 9 10 13 14];

%计算频率frequency
%i:确定x的元素,k:计算x(i)是否有重复,j:计算元素重复次数,num:该元素重复次数,
%freq:保存元素的大小和元素出现的次数
for i=1:length(x)
    mark = 0;    %x(1)不能跳过
    %判断x(i)是否有重复
    for k=1:i-1
        if i>1 && x(i)==x(k)    %有重复
            mark = 1;
        else    % 没有重复
            mark = 0;
        end
    end
    
    if mark==1  %有重复,跳过该x(i)
    elseif mark==0  %没有重复
        num=1;
        for j=1:(length(x)-i)   % j+i<=length(x)
            if x(i)==x(i+j)
                num=num+1;
            end
        end
        freq(x(i))=num;
    end
    
end

%画图
X = 1:max(x);   %横坐标范围为1:14
subplot(1,3,1); bar(X,freq); xlim([0 max(x)]);
subplot(1,3,2); area(X,freq);xlim([0 max(x)]);
subplot(1,3,3); stem(X,freq); xlim([0 max(x)]);

算法流程图如下(可参考)

2.5 箱线图:Boxplot()

![](https://personal-1310862495.cos.ap-shanghai.myqcloud.com//%7Byear%7D/%7Bmon%7D/%7Bday%7D/%7Bfilename%7D%7B.suffix%7D7-16577784340412.png)

exercise(P15)

题目:

画出变量 stocks 的箱线图

![](https://personal-1310862495.cos.ap-shanghai.myqcloud.com//%7Byear%7D/%7Bmon%7D/%7Bday%7D/%7Bfilename%7D%7B.suffix%7D8-16577786463903.png)
load stockreturns;
%把里面的每个column画成一个箱线图

解:

clear
clc
clf

load stockreturns;
for n=1:size(stocks,2)  %size(stocks,2)表示stocks中第二维度长度
x(:,n) = stocks(:,n);  %x中的第1列元素等于stocks中的第1列元素
end
X = 1:size(stocks,2);    %X表示横坐标
boxplot(x,X);
title('exercise');

2.6 偏度:skewness()

三种偏态分类:(可以理解为平均值相对正态分布往左/右偏,方便记忆)

  • 左偏态:skewness < 0
  • 右偏态:skewness > 0

example:

clear
X = randn([10 3])*3;
X(X(:,1)<0, 1) = 0; X(X(:,3)>0, 3) = 0;% X(:,1)<0 表示小于0的数标记为1
% X的第一列元素中<0的元素用0替换,X的第三列元素中>0的元素用0替换,
boxplot(X, {'Right-skewed', 'Symmetric', 'Left-skewed'});
y = skewness(X)

>> Class13

y =

    1.6574    0.0112   -0.7703

2.7 峰度(Kurtosis)

峰度是用来测量分布的平坦度,正态分布的峰度为零

  • 正峰度:表示更尖锐的峰值
  • 负峰度:表示更平坦的峰值

exercise(P19)

题目:

找到变量 stocks 每一列的偏度和峰度

load stockreturns;

解:

clear
clc
clf

load stockreturns;
for n=1:size(stocks,2)  % size(stocks,2)表示stocks中第二维度长度
x(:,n) = stocks(:,n);  % x的第1列元素等于stocks中的第1列元素
end
X = 1:size(stocks,2);    % X表示横坐标
boxplot(x,X);
title('exercise');

skewness = skewness(x)
kurtosis = kurtosis(x)
skewness =

   -0.2318    0.2304   -0.1773   -0.1236   -0.1874   -0.1527   -0.3484   -0.2678    0.0963    0.0580


kurtosis =

    3.4272    2.5871    2.4970    2.8580    2.7638    2.3758    3.4207    2.4909    3.3993    3.1807

3. 推论统计学(Inferential Statistics)

3.1 假设检验

Example:

  • 现在有个问题:我能否在班级中拿到成绩 A

  • 经典假设:

    • H0:θ=theta0H1:θθ0

      其中 H0 为零假设(null hypothesis,原假设),H1 为备择假设(alternativehy pothesis,关于总体分布的一切使原假设不成立的命题)

  • 假设检验的步骤:

    • 确定一个概率,如 95%
    • 找到 H0 的 95% 置信区间
    • 检验我的成绩是否落入区间当中
    • 一些专业术语:
      • Confidence interval (置信区间)
      • Confidence level 1α (置信水平或置信度)
      • Significance level α (显著性水平)
      • p-value (p值)

3.2 T型检验

load stockreturns;
x1 = stocks(:,3); x2 = stocks(:,10);
boxplot([x1, x2], {'3', '10'});
[h,p] = ttest2(x1, x2)	% h代表原假设成立(1)或不成立(0),p表示原假设成立的概率,p越小越不成立
>> Class13

h =

     1


p =

    0.0423

3.3 一般的假设检验

posted @   一抹微瀾  阅读(247)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示