R语言长时间序列栅格数据之逐像素相关性分析

Python016

R语言长时间序列栅格数据之逐像素相关性分析,第1张

假设有两组栅格数据,一组代表2019年中国每月降雨量,一组代表2019年中国每月植被叶面积指数(LAI)。想要得到中国月降水量与LAI的相关性分布,那么需要对两组栅格数据对应的栅格点进行逐栅格的相关性分析。

将降水数据导入栅格栈中,这个过程可以理解为将降水数据按时间顺序从上到下堆叠。同理,按相同的时间顺序将LAI数据堆叠。值得一提的是,stack()函数在堆叠栅格数据时是按文件名拼音和数字大小顺序自动堆叠的,具体规则可以亲自尝试。最后,将这两个栅格栈合并成一个。

对相关性分析函数稍作改变。

以上方法是可以推广的,线性回归函数lm()和相关性分析函数cor()的输入都可以是向量,因此只要函数支持向量输入,理论上讲都可以类比上述过程实现。但是如果函数只支持数据框输入,如gbm包中的函数gbm(),那就只能另辟蹊径了。

关于相关性,表示数据之间的相互依赖关系。但需要注意,数据具有相关性不一定意味着具有因果关系

相关性在组学数据挖掘中应用非常广,如样本的重复检验、基因的共表达分析、微生物群落的共发生网络分析等。

相关性分析其实较为简单,用R语言自带的cor()函数非常容易计算得到两两变量间的相关系数。下面我们就来看下如何用R语言实现相关性计算并绘制带有显著性星标的相关性热图。

以R自带的数据集mtcars为例,直接计算矩阵或数据框对应列之间的相关性系数。

上文的corrplot包是基于R基础绘图函数创建的,那么又没有基于ggplot2的呢?有,比如相对应的ggcorrplot包,不过我这里推荐另一个R包:ggcor 。

方差(Variance): 每个样本值与全体样本值的平均数之差的平方值的平均数,用于衡量一个变量的数据和期望值离散程度,公式如下,其中,σ2 即D(X)、Var(V),为总体方差,X为变量,μ为总体均值,N为总体个数。

协方差(Covariance): 用于衡量两个变量的总体误差。而方差可看作是协方差的一种特例,即当两个变量是相同的时候。公式如下:

可以看出,若X,Y正相关(变换趋势相同),则协方差值为正;变化趋势相反则协方差值为负。

相关系数(Pearson): 相关系数是研究变量之间线性相关程度的指标,而相关关系是一种非确定性的关系,数据具有相关性不能推出有因果关系。相关系数的计算公式如下:

其中,公式的分子为X,Y两个变量的协方差,Var(X)和Var(Y)分别是这两个变量的方差。当X,Y的相关程度最高时,即X,Y趋近相同时,很容易发现分子和分母相同,即r=1。

好啦,本次就分享到这里啦,不知对你有没有启发呢