根据《白话空间统计之九:方向分布(标准差椭圆)修正版》(有些地方没有理解清楚),写了下面的程序。但是好像结果不对

Z=mvnrnd([0.5 1.5], [0.025 0.03 ; 0.03 0.16], 50);

X=Z(:,1);  Y=Z(:,2);

mean_X=nanmean(X);  mean_Y=nanmean(Y);   %椭圆圆心

%确定长短半轴

SDE_X=nanstd(X,1);

SDE_Y=nanstd(Y,1);

%确定方向

N=size(X,1)*size(X,2)-size(find(isnan(X)),1);  %非NaN元素个数

X2=nanvar(X(:),1)*N;

Y2=nanvar(Y(:),1)*N;

A1=nancov(X,Y,1);  % 是2*2矩阵,含4个元素,元素1是S(X(:)),及X的方差;元素4是Y的方差;元素2与3相等,是X与Y的协方差;

X1=A1(1)*N; % (X-mean_X)平方求和

Y1=A1(4)*N; % (Y-mean_Y) 平方求和

XY=A1(2)*N; %(X-mean_X)(Y-mean_Y) 求和

A=X1-Y1;

B=sqrt(A^2+4*XY^2);

C=2*XY;

theta=atan((A+B)/C);  % 椭圆方向,狐度,以X轴为准,正北方(12点方向)为0度,顺时针旋转    *180/pi=角度

%确定x、y轴的标准差

XStd=sqrt((cos(theta)^2*X1+sin(theta)^2*Y1-sin(2*theta)*XY)/N)*sqrt(2);  %X轴标准差,不知道是否有*sqrt(2)

YStd=sqrt((sin(theta)^2*X1+cos(theta)^2*Y1+sin(2*theta)*XY)/N)*sqrt(2);  %Y轴标准差,不知道是否有*sqrt(2)

% XStd=sqrt((cos(theta)^2*X1+sin(theta)^2*Y1-sin(2*theta)*XY)/N);  %X轴标准差,不知道是否有*sqrt(2)

% YStd=sqrt((sin(theta)^2*X1+cos(theta)^2*Y1+sin(2*theta)*XY)/N);  %Y轴标准差,不知道是否有*sqrt(2)

STD = 3;                     %# 3 standard deviations

conf = 2*normcdf(STD)-1;     %# covers around 99% of population

a=XStd*sqrt(conf);   b=YStd*sqrt(conf);

% a=0.504770;  b=13.867618;

A=a^2*sin(theta)^2+b^2*cos(theta)^2;

B=-(a^2-b^2)*sin(2*theta);

C=a^2*cos(theta)^2+b^2*sin(theta)^2;

f=-a^2*b^2;

X0=mean_X;  Y0=mean_Y;

plot(X,Y,'r.')

hold on

ezplot(subs('A*(x-X0)^2+B*(x-X0)*(y-Y0)+C*(y-Y0)^2+f=0'))

其中,我们前面说的好几种算法,如中心要素、中位数中心和平均中心,都是关于点方位的分析,那么今天我们要讲的这个算法,就是同时对点的方向和分布进行分析的一种经典算法——标准差椭圆。

这算法最早是由美国南加州大学(Universityof Southern California)社会学教授韦尔蒂.利菲弗(D. Welty Lefever)在1926年提出,所以有的书里面,也把这个算法称为Lefever's "Standard DeviationalEllipse"(利菲弗方向性分布)(又到每天的历史起源科普时间……)。

这个算法最大的特点,就如同他的名词一样,是用来度量一组数据的方向和分布的,生成的结果又正如他的别名一样,会输出一个椭圆,如下:

红色的点是伤寒发病的案例,蓝色的河流是长江太湖流域段,从计算的结果来看,发病的数据方向与长江的流向方向基本一致,而范围较大。

从上图,我们基本上就可以看出方向分布工具的主要作用了,它可以识别一组数据的方向以及分布的趋势,并且了解到这份数据是否具有一些特性,至于有哪些特性,我们后面再说。

我们先来看看这个标准差椭圆的生成算法。

其实算法很简单,要画出一个椭圆,虽然比画圆麻烦点,但是也麻烦不了多少,关键的参数如下:

1、确定圆心。

2、确定旋转角度。

3、确定XY轴的长度。

首先是确定圆心,方向分布工具的圆心,直接利用的是算数平均中心来计算椭圆的圆心(算术平均中心请查看我在2015年8月17日写的《空间统计之八:平均中心和中位数中心》一文)

然后就确定椭圆的形式了,公式如下:

其中,Xi和Yi是每个要素的空间位置坐标,X和Y是算数平均中心。

SDEx和SDEy就是计算出来的椭圆的方差,总所周知,椭圆的大小取决于方差大小,长半轴表示最大方差,短半轴表示最小方差,在空间统计上面,用X、Y的方差进行计算,得到长短半轴。

然后确定椭圆的方向,以X轴为准,正北方(12点方向)为0度,顺时针旋转,计算公式如下:

最后确定XY轴的标准差,公式如下:

标准差的作用是确定椭圆的方程,一般椭圆方程如下:

S是置信度的值,可以根据数据量来查询卡方概率表(Table:Chi-Square Probabilities),这个大家有兴趣去百度一下就有了。

把所有的数据都带入到公式中,就很容易的把所有的参数都计算出来,接下去只需要再地图上画出结果就行。

那么这个椭圆揭示了一些什么意义呢?

使用ArcGIS的话,方向分布工具除了生成这样一个椭圆以外,还会给出如下结果:

其中,Shape_Leng和Shape_Area是生成的椭圆的周长和面积,单位与你数据的单位相同,这里我的数据是经纬度的,所以生成的结果只能作为相对参考结果。

CenterX和CenterY表示的是椭圆的中心点。

XstdDist和YStdDist表示的X轴的长度和Y轴的长度。

Rotation表示的是椭圆的方向角度。如下:

结果解读如下:

1、椭圆的长半轴表示的是数据分布的方向,短半轴表示的是数据分布的范围,长短半轴的值差距越大(扁率越大),表示数据的方向性越明显。反之,如果长短半轴越接近,表示方向性越不明显。如果长短半轴完全相等,就等于是一个圆了,圆的话就表示没有任何的方向特征。

2、短半轴表示数据分布的范围,短半轴越短,表示数据呈现的向心力越明显;反之,短半轴越长,表示数据的离散程度越大。同样,如果短半轴与长半轴完全相等了,就表示数据没有任何的分布特征。

3、中心点表示了整个数据的中心位置,一般来说,只要数据的变异程度不是很大的话,这个中心点的位置大约与算数平均数的位置基本上是一致的,至于数据变异是什么情况,请看下面第4点。

4、有的同学会很疑惑,为什么你画的这个椭圆,还有很多的点都在外面,没有把所有的点都包含进去?那么就是就是“标准差椭圆”这个名词里面的“标准差”的含义所在了。

在ArcGIS工具里面(其他的工具也都差不多),提供了“椭圆大小”(Ellipse_Size)这个参数,这个参数表示你生成的椭圆的级别,一共有三个,如下表:

三个级别的椭圆,分别表示了你生成的椭圆,能够包含68%,95%和99%三个级别的数据,我们通过可以指定要表示的标准差数(1、2 或 3)来决定你生成的椭圆包含的数据比例。

当要素具有空间正态分布时(即这些要素在中心处最为密集,而在接近外围时会逐渐变得稀疏),第一级标准差(默认值)范围可将约占总数 68%的输入要素的质心包含在内。第二级标准差范围会将约占总数 95%的要素包含在内,而第三级标准差范围则会覆盖约占总数 99%的要素的质心。

所以,当你选择不同标准差等级的时候,你发现你的中心点的位置也可能不同。

当然,作为空间分析工具,方向分布一样可以进行加权计算,这个计算主要还是与中心点的位置确定以及椭圆标准差等级生成的椭圆大小有关系。

下面我们来通过一个实例来了解方向分布工具的应用:

一共有两年的伤寒病数据,如下,红色的是2000年的,蓝色是2001年的:

使用1个标准差的结果,生成的椭圆如上,具体数据如下:

matlab 误差椭圆,求3倍标准差误差椭圆分析的程序相关推荐

  1. matlab中std函数怎么写,Matlab中求均值和标准差的函数分别是mean(x)和std(x)。

    栋教现拟学楼建-,中求准差的教学楼某已框架建工结构程为,中求准差0元直接建筑工程费为,相同结构其他,办公为()万元筑工造价建新接费该拟程直楼建,挖孔元/桩基采用础1人工. 下列中说法,均值何时款业主预 ...

  2. matlab 曲线拟合求导,基于matlab曲线拟合的数据预测分析

    龙源期刊网 http://www.doczj.com/doc/2f22f716cbaedd3383c4bb4cf7ec4afe05a1b148.html 基于matlab曲线拟合的数据预测分析 作者: ...

  3. matlab 传递函数求截止频率,高分求解RC滤波电路的传递函数和截止频率

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:高分求解RC滤波电路的传递函数和截止频率,请高手解答, 问题详情:麻烦高手解答一下这个电路的传递函数和截止频率(这个电路回答:呵呵, ...

  4. matlab软件及基础实验第8单元,《MATLAB统计分析与应用:40个案例分析》程序与数据(内含彩蛋)...

    [实例简介]Matlab教材及随书光盘,超实用的好书,强烈推荐! MATLAB统计分析与应用 40个案例分析.pdf <MATLAB统计分析与应用:40个案例分析>程序与数据.rar 第1 ...

  5. 海龟算法的matlab,MATLAB软件求线性规划数学模型-海龟种群问题答辩PPT.ppt

    <MATLAB软件求线性规划数学模型-海龟种群问题答辩PPT.ppt>由会员分享,可在线阅读,更多相关<MATLAB软件求线性规划数学模型-海龟种群问题答辩PPT.ppt(14页珍藏 ...

  6. Matlab语音采集与读写程序,基于MATLAB的语音信号录制采集和分析的程序设计

    理 论广 角 ● I 基于 MATLAB的语音信号录制采集和分析的程序设计 刘 晓炯 (西北民族大学电气工程学院 甘肃 兰州I 730030) [摘 要]语音信号处理技术是语音处理领域中新近发展起来的 ...

  7. matlab怎么找出奇数个数_用MATLAB绘制系统根轨迹和性能分析

    用MATLAB绘制系统根轨迹和性能分析 一.练习目的 熟悉MATLAB用于控制系统中的一些基本编程语句和格式. 利用MATLAB语句绘制系统的根轨迹. 掌握用根轨迹分析系统性能的图解方法. 掌握系统参 ...

  8. 判断清浊音 matlab,基于MATLAB的语音信号的清浊音分析.doc

    基于MATLAB的语音信号的清浊音分析 目录 1 语音信号概述1 1.1 语音信号的基本组成1 1.2 语音信号的"短时谱"1 1.3 基音周期2 1.4 短时分析技术2 2 语音 ...

  9. matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...

    第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...

最新文章

  1. uboot启动流程概述_uboot 分析之 启动流程
  2. java中String值为空字符串与null的判断方法
  3. 【NGN学习笔记】6 代理(Proxy)和背靠背用户代理(B2BUA)
  4. 滴滴辞退2000人启示:牛逼的人,都有自己的铁饭碗
  5. 【解决方案 二十五】如何对Excel表数据进行彻底转置
  6. M0n0Wall防火墙安装配置
  7. hdmi接口和计算机连接,hdmi接口,教您hdmi接口怎么连接电视
  8. Excel VLOOKUP实用教程之 08 VLOOKUP如果实现区分大小写的查找?(教程含数据excel)
  9. [How To]在Linux下设置无线网络桥接
  10. html链接变灰,怎么在HTML中设置点击超链接后变成灰色
  11. 如何组织可持续的团队内部分享
  12. iOS 模拟各种网络环境
  13. 论文 | 图理论 | 2020年明尼苏达大学博士论文《学习强大的深度图神经网络和嵌入》
  14. python环境搭建与配置
  15. 滤波电容的大小的选取
  16. c语言中10的6次方阶乘运算,阶乘的运算方法
  17. 破解Linux操作系统root 权限不能使用问题
  18. Nwafu-OJ-1428 Problem Y C语言实习题五——3.数据倒置
  19. Flutter 2.2 现已发布!
  20. CSS 读书笔记

热门文章

  1. 写一个sql实现以下查询结果_书写高质量SQL的30条建议
  2. python调用simulink_使用Python从dbc文件中提取simulink建模数据定义
  3. 绑定dictionary 给定关键字不再字典中_对字典嵌套的理解及二级下拉菜单的制作...
  4. 十进制小数化为二进制小数的方法是什么_八进制转换成十进制,十进制转换成八进制...
  5. 大学计算机应用基础第三版简答题答案,大学计算机应用基础习题答案
  6. PoE交换机的4种连接方法
  7. [渝粤教育] 莆田学院 电机与拖动基础(一) 参考 资料
  8. [渝粤教育] 西安工业大学 园中画境 中国古典园林造园艺术 参考 资料
  9. 【渝粤教育】 国家开放大学2020年春季 1303护理伦理学 参考试题
  10. [渝粤教育] 中国地质大学 C语言程序设计(新) 复习题