数据清理完之后,就要进行数据的描述性分析。个人觉得主要是了解一下数据的均值和方差,或者标准差,或者中值等统计指标。因为回归中一般用的也是方差和协方差分析,当然最大似然估计除外。所以对数据的这些指标有个事先的了解,对于选择合理的回归模型也是有帮助的。
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可以获得数据的min,max,mean,median,std,range。可以将这些信息保存。点击save to workspace可以进行保存。