全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2657 0
2014-06-19

数据清理完之后,就要进行数据的描述性分析。个人觉得主要是了解一下数据的均值和方差,或者标准差,或者中值等统计指标。因为回归中一般用的也是方差和协方差分析,当然最大似然估计除外。所以对数据的这些指标有个事先的了解,对于选择合理的回归模型也是有帮助的。

Matlab中有很多内置的方程可以直接计算数据的一些描述性统计量。如果数据是一个向量,那么这些统计量就是这个向量的统计量。如果数据是一个矩阵,则matlab返回的结果是一个向量,其中每一个元素对应的是每一列的统计量。

举例:仍以之前的count.dat数据集为例。

加载这个数据可以直接输入:

>>loadcount.dat;

找到每一列的最大值:

>>mx=max(count);

计算每一列的均值:

>>mu=mean(count);

计算每一列的标准差:

>>sigma=std(count);

如果想知道最大值在具体的哪一行,可以用如下的命令:

>>[mx,indx]=max(count);

其中indx给出了每一列中最大值所在的行编号。

有时候想找到整个矩阵中的最大值、最小值或者其他的统计量。对于最大值、最小值,我是用两次的命令,例如

>>mx=max(max(count));

>>mi=min(min(count));

虽然感觉比较傻,但是可以达到目的。书上显然不是这样做的。书上给的步骤是先将矩阵转化为向量,然后求转化后的向量的统计量。将矩阵直接转化为向量最简便的方法是:

>>count(:);

而不是用reshape。Reshape当然也可以用,但是上面的命令更简单。例如,要找出矩阵中的最小值:

>>mi=min(count(:));

计算了这些统计量之后或者列在表中,或者以图形的方式表述出来。Matlab内置了Data Statistics dialog box可以让使用者计算统计量并画图。

仍然以count.dat为例,

>>loadcount.dat;

>>[n,p]=size(count);

>>t=1:n;

>>plot(t,count)

>>legend(‘Location1’, ‘Location 2’, ‘Location 3’,2)

>>xlabel(‘Time’),ylabel(‘Vehicle Count’)

画图是为了在图上表示某一个变量的均值。所画的图出现之后,点击Tools,在最下边有一个Data Statistics,点进去。就可以看到每个坐标的数据的各个统计量。在每个数值的背后有个框框可以打钩,选中之后即可在图上显示相应的统计量。

以上对图形对话框的操作其实是用的matlab中的GUI(Graphicaluser interfaces)。具体不知道怎么翻译,大概就是以图形的方式处理数据。也就是说不用再在命令框中输入命令而进行操作。利用GUI可以改变线条的颜色,宽度,线型,标点等。

在使用GUI时,一定要记住是在你将所有你想表示的统计量放在图形上之后再进行。因为如果通过GUI对图形进行编辑,即使你保存了,但是如果你要加入新的统计量,之前的操作会恢复原状。

编辑图形可以点击图形对话框上的Edit,然后选择FigureProperties,就可以进入编辑页面。然后选择你要编辑的曲线,更改曲线的类型、线宽等。

    通过GUI可以获得数据的minmaxmeanmedianstdrange。可以将这些信息保存。点击save to workspace可以进行保存。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群