ENVI/IDL笔记(5)基于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.科学出版社