一元线性回归:Excel、SPSS、Matlab三种方法实现
以延河流域2000-2015年NDVI数据为例
1 数据准备
(此步骤可以省略)打开Arcgis,导入2000-2015年延河流域的NDVI数据,将各个年份的NDVI的数值乘以10000
【Spatial Analyst】 -- 【地图代数】 -- 【栅格计算器】(批量处理)
地图代数表达式为:【目标年份的NDVI数据 * 10000】
选择输出路径和输出文件名
提取 NDVI 年平均值
【System Toolboxes】 -- 【Spatial Analyst Tools.tbx】 -- 【Multivariate】(多元分析) -- 【Band Collection Statistics】(波段集统计)
按照图中方式选择 2000-2015 年 NDVI 数据,设置文件保存路径和名称,OK。
在设置的路径下,得到 txt 文件“ndvi 平均值”。
2 数据处理
2.1 Excel
选定目标区域,插入 -- 图表(散点图)
鼠标右击任意散点,选择【添加趋势线】
选择 【线性】、【显示公式】、【显示R2】
输出结果为
2.2 SPSS
利用 SPSS 软件,计算 NDVI 与年份之间的一元线性回归方程及其显著性
点击数据试图,粘贴时间、NDVI数据
选择变量试图,修改变量名和变量类型(数字)。
【分析】-> 【回归】-> 【线性】
选择因变量【NDVI_MEAN】和自变量【Year】
计算结果
模型汇总中 R 方为 0.610,方差分析(Anova)中,F 值为 21.940,查 F 分布临界值表,当 α=0.05 时,F ~ F(1, n-2),即 f1=1,f2=n-2=16-2=14,F0.05临界值为 4.60, F =21.940 > F0.05 = 4.60,可知拟合的线性方程是显著的。系数中,常量为-37204.226,变量系数为 21.157,Sig.为 0.000b < 0.05,表明系数也是显著的。得到显著线性方程 y = 21.157x – 37204 (R2 = 0.610, F =21.940 )。
其中 21.157 为系数,-37204 为常数。
2.3 Matlab
2.3.1 源代码
clc
clear all
data = xlsread('C:\Users\Administrator\Desktop\Mean.xlsx') %数据存储路径
x = data(:,1) %读取自变量
y = data(:,2) %读取因变量
%a得到y=ax+b的a和b
a = polyfit(x,y,1) %多项式曲线拟合p = polyfit(x,y,n),x自变量,y因变量,n是系数
yi = polyval(a,x) % 得到对应位置上拟合曲线的y
plot(x,y,'o') % 绘制散点位置
hold on % hold on继续在图上画下一个图形
plot(x,yi) % 绘制一元线性拟合函数
r2 = (corrcoef(y,yi).^2) % 计算r2(2*2)矩阵
r2 = r2(1,2) % 取出r2
xlabel('时间/年','FontWeight','bold') % 添加横轴标签
ylabel('NDVI','FontWeight','bold') % 添加纵轴标签
text(min(x),max(y)-100,strcat('y=',string(a(1)), 'x+',string(a(2))));%添加拟合函数表达式
text(min(x),max(y)-50,strcat('R^2=',string(roundn(r2,-2)))) % 添加R2表达%ylim([min(y)-1,max(y)+1]) % 设置y轴上下限%xlim([min(x),max(x)+0.00025]) % 设置x轴上下限
Q=0;
U=0;
for i=1:length(x)Q=Q+(y(i)-yi(i))^2;U=U+(yi(i)-mean(y))^2;
end
F=U/(Q/(16-2)); %计算显著性检验F
P_value = 1-fcdf(F,1,14) % 得到P值
text(min(x),max(y),strcat('P=',string(P_value))) % 添加P显著性结果表达
2.3.2 运行结果
一元线性回归:Excel、SPSS、Matlab三种方法实现相关推荐
- 【Arduino串口数据保存到excel中常用三种方法】
[Arduino串口数据保存到excel中常用三种方法] 1. 前言 2. 利用excel自带Data Streamer读取 2.1 启用 Data Streamer 加载项 2.2 刷写代码并将微控 ...
- pdf怎么转换成excel呢?三种方法快速转换
pdf怎么转换成excel呢?作为一名在职小编,每天都需要面对各种各样的文件,像签合同的时候,需要给客户发pdf文件,因为这种文件不易编辑修改,而且发送的过程中也不易出现排版乱的情况,其次在一些数据统 ...
- Matlab中计算程序运行时间的三种方法
经常我们需要计算我们程序到底运行多长时间,这样可以比较程序的执行效率.当然这个对于只有几秒钟的小程序没有什么意义,但是对于大程序就有很重要的意义了. 下面我们就说说MATLAB中计算程序运行时间的三种 ...
- Matlab中数组元素引用——三种方法
Matlab中数组元素引用--三种方法 1.Matlab中数组元素引用有三种方法 1 2 3 1.下标法(subscripts) 2.索引法(index) 3.布尔法(Boolean) 注意:在使用这 ...
- [转]asp.net导出数据到Excel的三种方法
原文出处:asp.net导出数据到Excel的几种方法(1/3) .asp.net导出数据到Excel的几种方法(2/3).asp.net导出数据到Excel的几种方法(3/3) asp.net导出到 ...
- 计算机启动应用程序的方法,excel的程序_Excel2010中启动应用程序的三种方法
使用Excel时,需要先启动应用程序,怎么去进行操作启动它?今天,学习啦小编就教大家在Excel2010中启动应用程序的三种方法. Excel2010中启动应用程序的三种步骤如下: 1.开始菜单 在桌 ...
- python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法
0. 实验环境Ubuntu 16.04 Matlab R2015b 1. 借助于 mlab 库 安装方法非常简单,只需一行命令 sudo pip install mlab 即可. import num ...
- 图像灰度化的三种方法(matlab、C++、Python实现)
灰度化处理就是将一幅色彩图像转化为灰度图像的过程.彩色图像分为R,G,B三个分量,分别显示出红绿蓝等各种颜色,灰度化就是使彩色的R,G,B分量相等的过程.灰度值大的像素点比较亮(像素值最大为255,为 ...
- Matlab中计算程序运行时间的三种方法,以及获取系统时间的方法
注意:三种方法由于使用原理不一样,得到结果可能有一定的差距! 1.tic和toc组合(使用最多的) 计算tic和toc之间那段程序之间的运行时间,它的经典格式为 tic .......... toc ...
- matlab 分水岭法,分水岭算法Matlab实现——三种方法 | 学步园
clear,clc%三种方法进行分水岭分割 %读入图像 filename='sar1.bmp'; f=imread(filename); Info=imfinfo(filename); if Info ...
最新文章
- RocketMQ 实战 消息发送样例
- jQuery UI Download
- 数据结构(2) -- 线性表的顺序表示
- Oracle EM 12c
- appengine_在Google的AppEngine上升级到Java 7
- ArchLinux借助Winetricks-zh安裝WineQQ8.1
- JSONP和CORS两种跨域方式的介绍和方案实例
- 关于Encode in UTF-8 without BOM
- CAN通讯、CAN协议、UDS
- 利用百度万年历判断指定日期是否是节假日
- SmartWx微信公众号管理系统源码v2.0
- PPT修改母版页码(亲测可用)
- 青果教务php,拟物校园 | 拟物校园,一个高校教务系统爬虫,现支持正方教务、青果教务。...
- 怎么算特征值和特征矩阵?
- mac pe 制作教程
- 第03课:储备-用户故事精要(iPad 版)
- 数据分析——用户流失分析
- 基于HTML电商购物项目的设计与实现——html+css+javascript+jquery+bootstarp响应式图书商城
- jquery---实现滚轮放大缩小图片
- 普源数字万用表 DM3058介绍