MATLAB数据统计描述和分析

描述性统计就是搜集、整理、加工和分析统计数据, 使之系统化、条理化,以显示出数据资料的趋势、特征和数量关系。它是统计推断的基础,实用性较强,在数学建模的数据描述部分经常使用。

目录

1.频数表和直方图

2 .统计量 

3.统计中几个重要的概率分布 

3.1正态分布 

3.2卡方分布 

3.3 t分布 

3.4 F分布 

3.5MATALB中的命令

4.正态总体统计量的分布 

5.参数估计 

5.1 点估计 

5.2 区间估计 

5.3 参数估计的 Matlab 实现

 6.假设检验

6.1 单个正态总体均值 μ 的检验

 6.2 方差已知,关于 μ 的检验( Z 检验)

6.3 方差未知,关于 μ 的检验(t 检验) 

6.4两个正态总体均值差的检验(t 检验)

 7.分布拟合检验


1.频数表和直方图

一组数据(样本)往往是杂乱无章的,做出它的频数表和直方图,可以看作是对这 组数据的一个初步整理和直观描述。 将数据的取值范围划分为若干个区间,然后统计这组数据在每个区间中出现的次 数,称为频数,由此得到一个频数表。以数据的取值为横坐标,频数为纵坐标,画出一 个阶梯形的图,称为直方图,或频数分布图。

作频数表及直方图 求频数用 hist 命令实现,其用法是:

[N,X] = hist(Y,M)

得到数组(行、列均可)Y 的频数表。它将区间[min(Y),max(Y)]等分为 M 份(缺省时 M 设定为 10),N 返回 M 个小区间的频数,X 返回 M 个小区间的中点。

示例:下图为身高和体重数据:

程序:

clc,clear;
load data.txt; 
high=data(:,1:2:9);
high=high(:); 
weight=data(:,2:2:10);
weight=weight(:); 
[n1,x1]=hist(high);
[n2,x2]=hist(weight);
subplot(1,2,1), hist(high); 
title('身高直方图')
subplot(1,2,2), hist(weight); 
title('体重直方图')

运行结果如下: 

clc,clear;
fid1 = ['aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg' ...  
        'cggaggacaaacgggatggcggtattggaggtggcggactgttcgggga' ...  
        'gggacggatacggattctggccacggacggaaaggaggacacggcggacataca' ...  
        'atggataacggaaacaaaccagacaaacttcggtagaaatacagaagctta' ...  
        'cggctggcggacaacggactggcggattccaaaaacggaggaggcggacggaggc'];  
a = 0; b = 0; c = 0; d = 0; e = 0;    
for charIdx = 1:length(fid1)  
    currChar = fid1(charIdx);  
    if currChar == 'a'  
        a = a + 1;  
    elseif currChar == 'c'  
        b = b + 1;  
    elseif currChar == 'g'  
        c = c + 1;  
    elseif currChar == 't'  
        d = d + 1;  
    elseif currChar >= 'a' && currChar <= 'z'  
        e = e + 1; % 超出范围的个数 
    end  
end   
f = [a b c d e];  
he = sum(f);  
disp('a,c,g,t个数')
disp(f);  
disp('总个数')
disp(he);  
countsNames = {'a', 'c', 'g', 't'};
figure;   
bar(1:4, f(:,1:4));
set(gca, 'XTickLabel', countsNames);  
xlabel('字符'); 
ylabel('频数');
title('字符频数直方图'); 

2 .统计量 

假设有一个容量为n 的样本(即一组数据),需要对它进 行一定的加工,才能提出有用的信息,用作对总体(分布)参数的估计和检验。统计量反映样本数量特征的函数,它不含任何未知量。

下面我们介绍几种常用的统计量:

Matlab std(x)返回 x 的标准差,var(x)返回方差,range(x)返回极差 。

上述标准差被(n-1)除是因为方差的无偏估计,若需要改为被n 除,Matlab 可用 std(x,1)var(x,1)来实现。

峰度可以用作衡量偏离正态分布的尺度之一 。

Matlab 中 moment(x,order)返回 x order 阶中心矩,order 为中心矩的阶数。 skewness(x)返回 x 的偏度,kurtosis(x)返回峰度。

对上面给出的学生身高和体重数据,用 Matlab 计算以上统计量,程序如下:

clc 
load data.txt; 
high=data(:,1:2:9);high=high(:); 
weight=data(:,2:2:10);weight=weight(:);
shuju=[high weight]; 
jun_zhi=mean(shuju);
zhong_wei_shu=median(shuju); 
biao_zhun_cha=std(shuju) ;
ji_cha=range(shuju) ;
pian_du=skewness(shuju) ;
feng_du=kurtosis(shuju);
f=[jun_zhi zhong_wei_shu biao_zhun_cha ji_cha pian_du feng_du];
disp('均值、中位数、标准差、极差、偏度、峰度')
disp(f);  

3.统计中几个重要的概率分布 

3.1正态分布 

3.2卡方分布 

3.3 t分布 

3.4 F分布 

3.5MATALB中的命令

Matlab 统计工具箱中有 27 种概率分布,这里只对上面所述 4 种分布列出命令的字符:

norm 正态分布;

chi2 卡方分布;

t t 分布;

f F 分布;

工具箱对每一种分布都提供 5 类函数,其命令的字符是: pdf 概率密度; cdf 分布函数; inv 分布函数的反函数; stat 均值与方差; rnd 随机数生成 。

如下:生成标准正态分布和N(0,4)的正态分布,并画出图像程序:

clc;clear;
x=-6:0.01:6;
y=normpdf(x);
z=normpdf(x,0,2); 
plot(x,y,x,z),
gtext('N(0,1)'),gtext('N(0,2^2)') 

4.正态总体统计量的分布 

用样本来推断总体,需要知道样本统计量的分布,而样本又是一组与总体同分布的随机变量,所以样本统计量的分布依赖于总体的分布。当总体服从一般的分布时,求某个样本统计量的分布是很困难的,只有在总体服从正态分布时,一些重要的样本统计量 (均值、标准差)的分布才有便于使用的结果。另一方面,现实生活中需要进行统计推断的总体,多数可以认为服从(或近似服从)正态分布。

下面是用均值和标准差构造的几个常用分布:

5.参数估计 

5.1 点估计 

点估计是用样本统计量确定总体参数的一个数值。评价估计优劣的标准有无偏性、 最小方差性、有效性等,估计的方法有矩法、极大似然法等。

5.2 区间估计 

置信区间越小,估计的精度越高;置信水平越大,估计的可信程度越高。但是这两个指标显然是矛盾的, 通常是在一定的置信水平下使置信区间尽量小。通俗地说,区间估计给出了点估计的误 差范围。 

5.3 参数估计的 Matlab 实现

Matlab 统计工具箱中,有专门计算总体均值、标准差的点估计和区间估计的函数。 对于正态总体,命令是:

[mu,sigma,muci,sigmaci]=normfit(x,alpha)

其中 x 为样本(数组或矩阵),alpha 为显著性水平α (alpha 缺省时设定为 0.05),返 回总体均值 μ 和标准差σ 的点估计 mu 和 sigma,及总体均值 μ 和标准差σ 的区间估计 muci 和 sigmaci。当 x 为矩阵时,x 的每一列作为一个样本。

 6.假设检验

6.1 单个正态总体均值 μ 的检验

 6.2 方差已知,关于 μ 的检验( Z 检验)

在 Matlab 中 Z 检验法由函数 ztest 来实现,命令为 :

[h,p,ci]=ztest(x,mu,sigma,alpha,tail)

示例: 

x=[0.497 0.506 0.518 0.524 0.498... 
 0.511 0.520 0.515 0.512]; 
[h,p,ci]=ztest(x,0.5,0.015)

求得 h=1,p=0.0248,说明在 0.05 的水平下,可拒绝原假设,即认为这天包装机 工作不正常。 

6.3 方差未知,关于 μ 的检验(t 检验) 

 在 Matlab 中t 检验法由函数 ttest 来实现,命令为:

[h,p,ci]=ttest(x,mu,alpha,tail)

示例:

x=[159 280 101 212 224 379 179 264 ... 
 222 362 168 250 149 260 485 170]; 
[h,p,ci]=ttest(x,225,0.05,1)

求得 h=0,p=0.2570,说明在显著水平为 0.05 的情况下,不能拒绝原假设,认为元件的平均寿命不大于 225 小时。

6.4两个正态总体均值差的检验(t 检验)

还可以用t 检验法检验具有相同方差的 2 个正态总体均值差的假设。在 Matlab 中 由函数 ttest2 实现,命令为:

[h,p,ci]=ttest2(x,y,alpha,tail)

与上面的 ttest 相比,不同处只在于输入的是两个样本 x,y(长度不一定相同), 而不是一个样本和它的总体均值;tail 的用法与 ttest 相似。

示例:

x=[78.1 72.4 76.2 74.3 77.4 78.4 76.0 75.6 76.7 77.3]; 
y=[79.1 81.0 77.3 79.1 80.0 79.1 79.1 77.3 80.2 82.1]; 
[h,p,ci]=ttest2(x,y,0.05,-1) 

求得 h=1,p=2.2126e-04。表明在α = 0.05 的显著水平下,可以拒绝原假设,即认为建议的新操作方法较原方法优。 

也可以做方差不相等的假设检验,使用格式为: h = ttest2(x,y,alpha,tail, 'unequal')

 7.分布拟合检验

在实际问题中,有时不能预知总体服从什么类型的分布,这时就需要根据样本来检 验关于分布的假设。

示例:

程序:

clc 
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 138 ... 
142 149 142 137 134 144 146 147 140 142 ... 
140 137 152 145]; 
mm=minmax(x) 
hist(x,8) %画直方图
fi=[length(find(x<135)),... 
 length(find(x>=135&x<138)),... 
 length(find(x>=138&x<142)),... 
 length(find(x>=142&x<146)),... 
 length(find(x>=146&x<150)),... 
 length(find(x>=150&x<154)),... 
 length(find(x>=154))] %各区间上出现的频数
mu=mean(x),sigma=std(x) 
fendian=[135,138,142,146,150,154] %区间的分点
p0=normcdf(fendian,mu,sigma) 
p1=diff(p0) 
p=[p0(1),p1,1-p0(6)] 
chi=(fi-84*p).^2./(84*p) 
chisum=sum(chi);
x_a=chi2inv(0.9,4) %chi2分布的0.9分位数

 

求得皮尔逊统计量chisum= 2.2654,

故在 水平0.1下接受 H0 ,即认为数据来自正态分布总体。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/788307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Tensorflow之损失函数与交叉熵

损失函数&#xff1a;预测值与已知答案之间的差距 NN优化目标&#xff1a;loss最小{mse&#xff0c; 自定义&#xff0c; ce) 均方误差tensorflow实现&#xff0c;loss_mse tf.reduce_mean(tf.sqrue(y_-y) 预测酸奶日销量&#xff0c;y&#xff0c;x1, x2是影响日销量的因素…

掌握三菱Q系列QD75运动控制模块

跟着资深三菱电气工程师严老师&#xff0c;一起来学习如何使用三菱QD75系列定位模块来完成各种运动控制需求&#xff0c;本课程专门讲解这个三菱QD75定位模块&#xff0c;如果你不知道如何使用QD75模块或者说对QD75模块背后的理论和使用方法不是很熟悉的话&#xff0c;一定要来…

数据高效交互丨DolphinDB Redis 插件使用指南

DolphinDB 是一个高性能的分布式数据库。通过 Redis 插件&#xff0c;DolphinDB 用户可以轻松地与 Redis 数据库进行交互。用户不仅可以从 DolphinDB 向 Redis 发送数据&#xff0c;实现高速的数据写入操作&#xff1b;还可以从 Redis 读取数据&#xff0c;将实时数据流集成到 …

android13 设置左右分屏修改为单屏幕,应用分屏改为单屏

1.前言 android13中,系统设置变成,左边是一级菜单,右侧是二级菜单, 这样跟我们以前android7/8/9的布局是不一样的,我们需要将它修改为一级菜单,点进去才是二级菜单这种。 效果如下 2.系统设置实现分析 它这里使用的是google新出的embedding activity, 相关的知识这里…

【福利】代码公开!咸鱼之王自动答题脚本

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 微信或QQ打开咸鱼之王小程序&#xff0c;进入答题界面&#xff0c;运行main.py。期间不要动鼠标。 可自行更改代码来适配自己的需求~ 可以按照示例图片…

欧拉部署nginx

1.下载nginx 下载地址&#xff1a;https://nginx.org/en/download.html 选择稳定版本 下的镜像文件进行下载 2.解压Nginx包 cd /root/nginx tar -zxvf nginx-1.26.0.tar.gz cd nginx-1.26.03.安装nginx相关依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl o…

数据结构(初阶2.顺序表)

文章目录 一、线性表 二、顺序表 2.1 概念和结构 2.2 分类 2.2.1 静态顺序表 2.2.2 动态顺序表 2.3动态顺序表的实现 1.SeqList.h 2.SeqList.c 打印顺序表 初始化 销毁 增容 尾插 头插 在指定位置之前插入数据 尾删 头删 在指定位置删除数据 3.test.c 一、线性表 线性表&#…

浏览器中js外挂脚本的执行方式

1、开发工具控制台交互执行 网页中按F12打开开发者工具&#xff0c;选择“控制台”&#xff0c;键入js脚本命令回车执行&#xff0c;适用于临时使用脚本逻辑简单的场景&#xff0c;实例如下&#xff1a; // 获取网页元素的文本脚本 var elem document.getElementById("…

开发个人Go-ChatGPT–6 OpenUI

开发个人Go-ChatGPT–6 OpenUI Open-webui Open WebUI 是一种可扩展、功能丰富且用户友好的自托管 WebUI&#xff0c;旨在完全离线运行。它支持各种 LLM 运行器&#xff0c;包括 Ollama 和 OpenAI 兼容的 API。 功能 由于总所周知的原由&#xff0c;OpenAI 的接口需要密钥才…

Zabbix Sia Zabbix 逻辑漏洞(CVE-2022-23134)

前言 CVE-2022-23134是一个中等严重度的漏洞&#xff0c;影响Zabbix Web前端。这个漏洞允许未经身份验证的用户访问setup.php文件的某些步骤&#xff0c;这些步骤通常只对超级管理员开放。利用这个漏洞&#xff0c;攻击者可以通过跳过某些步骤来重新配置Zabbix前端&#xff0c…

Qt 线程同步机制 互斥锁 信号量 条件变量 读写锁

qt线程同步 Qt提供了丰富的线程同步机制来帮助开发者更高效和安全地进行多线程编程。其主要包括: QMutex:为共享数据提供互斥访问能力,避免同时写入导致的数据冲突。利用lock()/unlock()方法实现锁定和解锁。 QReadWriteLock:读写锁,允许多个读线程同时访问,但写操作需要独占…

Java面试八股之MySQL中int(10)和bigint(10)能存储读的数据大小一样吗

MySQL中int(10)和bigint(10)能存储读的数据大小一样吗 在MySQL中&#xff0c;int(10)和bigint(10)的数据存储能力并不相同&#xff0c;尽管括号内的数字&#xff08;如10&#xff09;看起来似乎暗示着某种关联&#xff0c;但实际上这个数字代表的是显示宽度&#xff0c;而不是…

基于信号量的生产者消费者模型

文章目录 信号量认识概念基于线程分析信号量信号量操作 循环队列下的生产者消费者模型理论认识代码部分 信号量 认识概念 信号量本质: 计数器 它也叫做公共资源 为了线程之间,进程间通信------>多个执行流看到的同一份资源---->多个资源都会并发访问这个资源(此时易出现…

Python OpenCV 教学取得视频资讯

这篇教学会介绍使用OpenCV&#xff0c;取得影像的长宽尺寸、以及读取影像中某些像素的颜色数值。 因为程式中的OpenCV 会需要使用镜头或GPU&#xff0c;所以请使用本机环境( 参考&#xff1a;使用Python 虚拟环境) 或使用Anaconda Jupyter 进行实作( 参考&#xff1a;使用Anaco…

关于.NETCORE站点程序部署到nginx上无法访问静态文件和无法正确生成文件的问题解决过程。

我的netcore6项目&#xff0c;部署到IIS的时候&#xff0c;生成报告时&#xff0c;需要获取公司LOGO图片放到PDF报告文件中&#xff0c;这时候访问静态图片没有问题。 然后还有生成邀请二维码图片&#xff0c;这时候动态创建图片路径和图片也没有问题&#xff0c;可以在站点的…

14-58 剑和诗人32 - 使用矢量数据库增强 LLM 应用程序

GPT-4、Bloom、LaMDA 等大型语言模型 (LLM) 在生成类似人类的文本方面表现出了令人印象深刻的能力。然而,它们在事实准确性和推理能力等方面仍然面临限制。这是因为,虽然它们的基础是从大量文本数据中提取统计模式,但它们缺乏结构化的知识源来为其输出提供依据。 最近,我们…

Python:安装/Mac

之前一直陆陆续续有学python&#xff01;今天开始&#xff01;正式开肝&#xff01;&#xff01;&#xff01; 进入网站&#xff1a;可能会有点慢&#xff0c;多开几个网页 https://www.python.org 点击下载&#xff0c;然后进入新的页面&#xff0c;往下滑 来到File&#xff0…

成为编程大佬!!——数据结构与算法(1)——算法复杂度!!

前言&#xff1a;解决同一个程序问题可以通过多个算法解决&#xff0c;那么要怎样判断一个算法的优劣呢&#xff1f;&#x1f914; 算法复杂度 算法复杂度是对某个程序运行时的时空效率的粗略估算&#xff0c;常用来判断一个算法的好坏。 我们通过两个维度来看算法复杂度——…

c++ 多边形 xyz 数据 获取 中心点方法

有需求需要对。多边形 获取中心点方法&#xff0c;绝大多数都是 puthon和java版本。立体几何学中的知识。 封装函数 point ##########::getCenterOfGravity(std::vector<point> polygon) {if (polygon.size() < 2)return point();auto Area [](point p0, point p1, p…

leetcode--从中序与后序遍历序列构造二叉树

leeocode地址&#xff1a;从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder …