线性回归csv数据集_6.数据分析(1) 描述性统计量和线性回归(1)

上一篇文章分析了信号的处理相关内容,参见:

5.信号处理(1) --常用信号平滑去噪的方法

在针对非物理信号分析的时候,例如用户数、用户经常出入的地点、疾病感染人数等,这部分涉及到数据分析知识,本文分享一下Matlab常用的描述性统计量函数和线性回归的基本应用。


1、Matlab常用描述性统计量

函数

说明

max

最大值

mean

平均值或均值

median

中位数值

min

最小值

mode

出现次数最多的值,也就是常说的众数

std

标准差

var

方差,用于度量值的分散程度

1.1、计算最大值、均值和标准差

使用 MATLAB 函数计算一个 24×3 矩阵(称为 count)的描述性统计量。MATLAB 为矩阵中的每列独立计算这些统计信息。

a = rand(24,3)max_a = max(a)miu_a = mean(a)middle_a = median(a)sigma_a = std(a)min_a = min(a)mod_a = mode(a)var_a = var(a)max_a =         0.978680649641159         0.984063724379154         0.999080394761361miu_a =         0.492415490012177         0.428215549166278         0.528270961924493middle_a =         0.509533283332691         0.395097786468656         0.554535346962252sigma_a =         0.304479616155163         0.293605537051363         0.307838082022735min_a =        0.0286741524641061         0.015487125636019         0.032600820530528mod_a =        0.0286741524641061         0.015487125636019         0.032600820530528var_a =        0.0927078366539956        0.0862042113872195         0.094764284743436

要获取每个数据列中最大数据值所在的行号,请指定另一个输出参数 index 以返回行索引。例如:

[mx,index] = max(a)

这些结果是

mx =         0.978680649641159         0.984063724379154         0.999080394761361index =     4    17    18

此处,变量 mx 是行向量,它包含三个数据列中每个列中的最大值。变量 index 包含每列中对应于最大值的行索引。

要找到整个 a 矩阵中的最小值,请使用语法 a(:) 将 24×3 矩阵转换为 72×1 列向量。然后,要找到该单一列中的最小值,请使用以下语法:

min(count(:))

>> min(a(:))ans =         0.015487125636019%% 第二种方法:多次求最小值>> min(min(a))ans =         0.015487125636019

1.2、减去均值

在信号处理的时候,由于系统的随机误差,一般都会进行进行均值操作,从数据中减去均值也称为去除线性趋势。

% 获取矩阵的行数和列数[n,p] = size(a)% 计算每列的均值mu = mean(a)% 生成一个列均值的矩阵,维度同a矩阵MeanMat = repmat(mu,n,1)% 减去均值x = a - MeanMat

2、不一致的数据处理

数据分析的时候,数据难免有异常值需要提出,比如NULL、NaN等,还有些点显著偏离了其他数据。在某些情况下,可合理地将这些点视为离群值,即与其余数据不一致的数据值。

以下示例说明如何从 24×3 矩阵 a 中的三个数据集中移除离群值。这儿离群值定义为偏离均值超过三倍标准差的值。

注:除非你确信数据类型,否则请谨慎对待数据更改。去除离群值对标准差的影响大于对数据均值的影响。删除一个离群值点会导致新标准差变小,从而可能导致其余一些点似乎又成为离群值!

a = rand(24,3)a(2,3) = 4.5;a(20,2) = -2.5; % 人为添加离群值miu_a = mean(a)sigma_a = std(a)

命令行窗口显示

miu_a =          0.45491979740325         0.401454279964542         0.64909778183130sigma_a =         0.256407192970791         0.702637696845351         0.872813153493999

将偏离均值三倍标准差以上的值视为离群值时,请使用以下语法确定 count 矩阵的每列中的离群值数量:

[n,p] = size(a);MeanMat = repmat(miu_a,n,1);SigmaMat = repmat(sigma_a,n,1);outliers = abs(a - MeanMat) > 3*SigmaMat;nout = sum(outliers) 

该过程返回每列中的离群值数量,如下:

nout = 0     1     1

在 a 的第二和第三个数据列中各有一个离群值,其他的列中都没有。

要删除包含该离群值的整行数据,请键入

a(any(outliers,2),:) = [];

此处,当 outliers 向量中有任何非零元素时,any(outliers,2) 返回 1。参数 2 指定 any 继续处理 count 矩阵的第二个维度 - 列。

线性回归下次写吧,今天先到这儿3f446c11def5a1461e3687de8ed3a565.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值