(20)一元线性回归及显著性检验(Slope趋势分析)

本文由SCY原创,转载注明出处。

时间序列趋势分析

时序趋势分析是一种重要的统计技术,用于分析随时间变化的数据模式。以下是一些常用的时序趋势分析方法:

  • 线性和非线性趋势分析

    通过线性回归或非线性回归模型,可以估计时间序列数据的趋势。例如,一元线性回归可以用来估计线性趋势,而多项式回归或指数回归可以用来估计非线性趋势。

  • 季节分解(Seasonal Decomposition)

    季节分解可以分离出时序数据中的趋势、季节性和随机组成部分。例如,可以使用STL(Seasonal and Trend decomposition using Loess)或季节分解的经典方法。

  • 时间序列平滑(Time Series Smoothing)

    时间序列平滑方法,如移动平均和指数平滑,可以用来估计时间序列数据的趋势。

  • 自相关和偏自相关分析(Autocorrelation and Partial Autocorrelation Analysis)

    通过计算时间序列数据的自相关和偏自相关函数,可以识别数据中的循环模式和趋势。

  • 时间序列分解(Time Series Decomposition)

    将时间序列分解为趋势、周期和随机噪声组件,通常使用模型如X-12-ARIMA或其变体。

  • 时间序列模型(Time Series Modeling)

    ARIMA(自回归整合移动平均模型)、ETS(错误、趋势、季节性模型)和状态空间模型等可以用于分析时间序列的趋势和周期性。

  • 波段分析(Wavelet Analysis)

    波段分析可以在不同的时间尺度上识别时序数据的趋势和周期性。

  • Mann-Kendall趋势检验和Sen的斜率估计

    这些非参数方法用于检测时间序列数据的趋势并估计变化的速度。

  • 突变点分析(Changepoint Analysis)

    用于识别时间序列数据中的结构变化,例如趋势的改变或方差的改变。

  • 谱分析(Spectral Analysis)

    通过分析时序数据的频率域特性来识别周期性和趋势。

一元线性回归和Mann-Kendall检验

本文重点介绍一元线性回归Mann-Kendall检验的原理和R语言实现步骤,以1980——2020年的降雨数据为例。

一元线性回归和Mann-Kendall检验是分析时间序列趋势的两种不同方法,它们各自有其特点和适用场景。下面是对它们的比较和联系的说明:

  1. 基本原理

一元线性回归是基于参数的统计方法,它假设数据之间存在线性关系,并试图找到描述这种关系的线性方程。它提供了估计的斜率和截距,以及相关的统计测试,以评估这种关系的显著性和强度。

Mann-Kendall检验是一种非参数的统计方法,用于检测时间序列数据中的单调趋势,而不假设数据之间的特定关系。它基于数据的秩次,而不是数据的实际值。

  1. 假设

一元线性回归通常需要满足一些基本假设,例如误差的正态性独立性,以及数据的线性关系。当数据不满足这些假设时,线性回归的结果可能会受到影响。

Mann-Kendall检验作为非参数检验,不需要数据满足正态分布或其他分布假设,因此它对异常值非正态数据更具鲁棒性

  1. 输出

一元线性回归提供了详细的模型参数(例如斜率和截距)和预测值,同时也提供了模型的显著性检验结果。

Mann-Kendall检验主要提供了趋势的显著性检验结果,但不提供具体的模型参数或预测值。

  1. 适用场景

当数据具有明确的线性关系,并且满足线性回归的基本假设时,一元线性回归是一个很好的选择。

当数据可能有单调趋势,但不一定是线性的,或者当数据可能包含异常值或不满足正态分布假设时,Mann-Kendall检验可能是一个更好的选择。

  1. 联系

两者都可以用于分析时间序列数据中的趋势,但方法和假设有很大的不同。

在某些情况下,它们可以互补使用。例如,可以首先使用Mann-Kendall检验来确定是否存在显著的趋势,然后使用一元线性回归来估计趋势的具体参数。

  1. 扩展

Mann-Kendall检验可以与Sen的斜率估计结合使用,以提供趋势的斜率估计,这在一定程度上类似于一元线性回归提供的斜率估计。

一元线性回归

一元线性回归用于研究一个变量(自变量)如何线性影响另一个变量(因变量)。以下是一元线性回归的基本原理和步骤:

数学模型

一元线性回归假设两个变量之间存在线性关系,可以用下面的方程式表示:
$$ Y = \beta_0 + \beta_1X + \varepsilon $$

其中:

  • ( Y ) 是因变量的值,
  • ( X ) 是自变量的值,
  • ( $\beta_0$ ) 是截距项,
  • ( $\beta_1$ ) 是斜率项,
  • ( $\varepsilon$ ) 是误差项。

参数估计

一元线性回归的目标是找到最佳的 ( $\beta_0$ ) 和 ( $\beta_1$ ),使得模型的预测值与实际值的差异(误差平方和,$SSE$)最小。这通常通过最小二乘法(OLS)实现,它的基本思想是最小化所有观测值的残差平方和,即:
$$SSE = \sum_{i=1}^n (Y_i - (\beta_0 + \beta_1X_i))^2 $$

通过对 $SSE$ 关于 $\beta_0$ 和 $\beta_1$ 的偏导数并令其为零,可以解得 $\beta_0$ 和 $\beta_1$ 的估计值。

显著性检验

一旦得到了 $\beta_0$ 和 $\beta_1$ 的估计值,通常会进行假设检验来评估这些参数是否显著不为零。这涉及到计算$t$统计量和对应的$p$值。如果$p$值低于某个预定的显著性水平(通常为0.05),则认为参数是显著的。

模型评估

模型评估通常包括计算 $R^2$ (决定系数)和调整 $R^2$,以评估模型对数据的拟合程度。$R^2$ 表示模型解释的数据变异的比例。

预测

使用得到的 $\beta_0$ 和 $\beta_1$ 估计值,可以对新的 $X$ 值做预测,并计算预测区间,以估计预测的不确定性。

模型诊断

模型诊断是检查模型是否满足回归分析的基本假设,例如误差的正态性、独立性和方差齐性。这可以通过残差图、正态概率图和其他诊断图来完成。

案例分析

Mann-Kendall检验和Sen斜率估计

Mann-Kendall(MK)检验和Sen的斜率估计是两种常用的非参数方法,用于分析时间序列数据中的趋势。下面是它们的基本原理介绍:

Mann-Kendall检验:

Mann-Kendall检验是一种非参数检验,用于确定一个数据序列中是否存在单调的趋势。它不需要数据满足特定的分布假设,因此对于非正态分布的数据很有用。MK检验的基本步骤如下:

  1. 对于序列中的每一对数据点($x_i$, $x_j$),计算符号统计量 ($S$):
    $$S = \sum_{i=1}^{n-1} \sum_{j=i+1}^n \text{sign}(x_j - x_i)$$
    其中$\text{sign}(x_j - x_i)$是符号函数,如果 $x_j$ > $x_i$ 则值为 +1,如果 $x_j$ < $x_i$ 则值为 -1,如果 $x_j$ = $x_i$ 则值为 0。

  2. 计算检验统计量 $U$ 和对应的 $p$ 值以判断趋势是否显著。

Sen的斜率估计:

Sen的斜率估计是一种非参数方法,用于估计数据序列中的趋势斜率。它通过计算所有可能的数据点对之间的斜率,然后取这些斜率的中位数作为趋势斜率的估计。Sen的斜率估计的基本步骤如下:

  1. 对于序列中的每一对数据点$(x_i, y_i)$ 和 $(x_j, y_j)$,计算斜率:
    $$d_k = \frac{(y_j - y_i)}{(x_j - x_i)}$$
    其中 $1 \leq i < j \leq n$。

  2. 从所有计算得到的斜率 $d_k$ 中,取中位数作为Sen的斜率估计:
    $$b_{\text{Sen}} = \text{median}(d_k)$$
    Sen的斜率估计可以提供一个关于时间序列数据趋势的稳健(对异常值不敏感)的估计,而Mann-Kendall检验可以提供这种趋势是否显著的证据。通常,这两种方法可以结合使用,以提供对数据趋势的全面理解。在时间序列趋势分析中,MK检验通常用于检测趋势的显著性,而Sen的斜率估计用于量化趋势的大小。

案例分析

-------------已经到底啦-------------