查看原文
其他

ENVI/IDL笔记(5)基于IDL语言的回归分析

小煤球云丹 测绘地信 2019-06-30

在遥感反演中,我们会经常用到回归分析,通过相关的数学统计量来评判反演效果。本文中利用IDL语言来进行回归分析并求算相关系数、平均绝对误差、均方根误差。

 
函数

1

regress

函数regess用于一元和多元线性回归分析,回归方程为y=a*x+b,一元线性回归时x为一维数组,多元回归时x为二维数组(m列*n行)。

语法:
result=regress(x,y,[,const=variable][,correlation=variable][,mocrrelation=variable][,ftest=variable][,yfit=variable])
关键字const返回常数项,关键字correlation返回相关系数,关键字mocrrelation返回复相关系数,关键字ftest为F检验值,关键字yfit返回基于回归方程估算得到的因变量。

2

plot

IDL的新版本(8.0)之后提供了一个全新的绘图函数plot。函数plot是对象式的绘图,可代替过程plot,并且可以进行交互式的操作,非常方便。

语法:
graphic=plot([x,] y [,/buffer][,/current][,dimensions=array][,/device][,axis_style={0,1,2,3,}][,margin=array][,name=string][,title=string][,position=array][,/overplot][,/nodata][,window_title=string])
关键字buffer设置图像缓存,关键词current重新绘制坐标轴,关键字dimensions设置窗口大小。

3

text

函数text进行图例标注的绘制。

语法:
text=text(x,y,string [,target=variable][,color=value][,font_size=value][,aligement=value][,vertical_alignment=value][,/data,/device,/normal])
x,y设置标注的位置,string设置标注的内容,关键字aligement设置水平对齐方式。

本文中以一元线性回归为例,进行分析。其中数据格式为CSV文件。

参考代码


结果分析

本例中使用regress函数进行回归分析后,使用plot函数绘制散点图,并且设置了线型、符号、坐标轴,此外使用text函数进行图例添加。可以根据自己的需求在界面进行交互式操作,也可以直接修改关键字值来实现。
回归模型为y=1.92*x-0.61,相关系数为0.9902,相关性很强。平均绝对误差为2.47,均方根误差为0,说明本次回归效果很好,满足相关要求。


▲交互式界面


参考文献

徐永明.遥感二次开发语言IDL.科学出版社


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存