\({\rm ARIMA}\) 模型

滞后算子

在这一节中,我们主要介绍时间序列分析中的几类经典的时间序列模型。为了简化模型设定,我们需要引入滞后算子的概念。

滞后算子的定义非常容易理解,满足以下性质:

  • \(\mathscr{B}X_t=X_{t-1}\) ;
  • \(\mathscr{B}^2X_t=\mathscr{B}(\mathscr{B}X_t)=\mathscr{B}(X_{t-1})=X_{t-2}\) ;

即称 \(\mathscr{B}\) 为时间 \(t\) 的向后推移算子或滞后算子。

引入滞后算子之后,我们可以定义滞后算子多项式如下:

  • \(m\) 阶滞后算子多项式:
\[B(\mathscr{B})=b_0+b_1\mathscr{B}+b_2\mathscr{B}^2+\cdots+b_m\mathscr{B}^m=\sum_{i=0}^mb_i\mathscr{B}^i \ .
\]
  • 无穷阶滞后算子多项式:
\[B(\mathscr{B})=b_0+b_1\mathscr{B}+b_2\mathscr{B}^2+\cdots=\sum_{i=0}^\infty b_i\mathscr{B}^i \ .
\]
  • 特别地,若 \(|\varphi|<1\) ,根据 Taylor 级数计算公式有:
\[\frac{1}{1-\varphi\mathscr{B}}=1+\varphi\mathscr{B}+\varphi^2\mathscr{B}^2+\varphi^3\mathscr{B}^3+... \ .
\]

在滞后算子的基础上,我们可以逐一讨论时间序列模型。

\({\rm MA}(q)\) 模型

首先我们讨论滑动平均模型的性质,滞后阶数为 \(q\) 的滑动平均模型简称为 \({\rm MA}(q)\) 模型。在计量经济学所研究的时间序列模型中,一般滞后阶数不会很高,所以我们先从 \({\rm MA}(1)\) 模型开始讨论,其性质更为重要也更便于讨论。

\({\rm MA}(1)\) 模型

一般地, \({\rm MA}(1)\) 模型的模型设定如下:

\[y_t=u_t+\theta u_{t-1} \ ,
\]
\[u_t\sim{\rm WN}(0,\,\sigma^2) \ .
\]

其中,\(\{u_t\}\) 是白噪声序列。满足上述模型设定的序列 \(\{y_t\}\) 称为 \({\rm MA}(1)\) 序列。

首先,我们讨论 \({\rm MA}(1)\) 序列的平稳性,通过计算我们可以得到 \(\{y_t\}\) 序列具有如下性质:

  • \({\rm E}(y_t)=0\) ;
  • \({\rm Var}(y_t)=(1+\theta^2)\sigma^2\) ;
  • \(\gamma(k)={\rm Cov}(y_t,\,y_{t+k})={\rm E}[(u_t+\theta u_{t-1})(u_{t+k}+\theta u_{t+k-1})]=
    \left\{
    \begin{array}{lll}
    \theta\sigma^2 &, & k=1\\
    0 &,& k\geq2
    \end{array}
    \right.\) .

因此,\({\rm MA}(1)\) 序列是一个平稳时间序列。可以看出, \({\rm MA}(1)\) 序列的自协方差函数是 \(1\) 步截尾的。根据已经计算得到的自协方差函数,可以计算自相关函数 ACF :

\[\rho(k)=\frac{\gamma(k)}{\gamma(0)}=
\left\{
\begin{array}{lll}
\dfrac{\theta}{1+\theta^2} &, & k=1\\
0 &,& {\rm otherwise}
\end{array}
\right. \ .
\]

可以看出 \({\rm MA}(1)\) 序列的 ACF 也是 \(1\) 步截尾的。

对于 \({\rm MA}(1)\) 序列,如果 \(|\theta|<1\) ,称 \(\{y_t\}\) 为可逆的 \({\rm MA}(1)\) 序列。下面我们利用滞后算子的推导方式来讨论 \({\rm MA}(1)\) 序列的可逆性质

可以用滞后算子表示 \({\rm MA}(1)\) 序列并进行“逆变换”

\[y_t=(1+\theta\mathscr{B})u_t \ ,
\]
\[\dfrac{y_t}{1+\theta\mathscr{B}}=u_t \ ,
\]
\[y_t=u_t-(-\theta)y_{t-1}-(-\theta)^2y_{t-2}-\cdots \ .
\]

以上过程被称为 \({\rm MA}(1)\) 序列的无限自回归表示。

上面的最后一个式子说明对于可逆的 \({\rm MA}\) 模型,可以利用 \({\rm AR}(\infty)\) 模型来建模。

最后我们来讨论 \({\rm MA}(1)\) 序列的偏相关函数 PACF 。仍然是利用自回归的方式求解样本偏相关函数。根据可逆性质和无限自回归表示,我们可以得到:

  • \(y_t=\beta_0+\beta_1y_{t-1}+\varepsilon_t\) ,

  • \(p(1)=\hat\beta_1\approx\theta\) .

  • \(y_t=\beta_0+\beta_1y_{t-1}+\cdots+\beta_ky_{t-k}+\varepsilon_t\) ,

  • \(p(k)=\hat\beta_k\approx(-1)^{k+1}\theta^k\) .

在可逆性条件下 \(|\theta|<1\) ,因此 PACF 随 \(k\) 逐渐收敛至 \(0\) ,表现为拖尾。图像中可表现为

  • 若 \(\theta>0\) 则 PACF 上下摆动收敛于 \(0\) ;
  • 若 \(\theta<0\) 则 PACF 恒为负并递增收敛于 \(0\) 。

\({\rm MA}(q)\) 模型

接下来我们将滑动平均模型推广至一般情况, \({\rm MA}(q)\) 模型的模型设定如下:

\[y_t=u_t+\theta_1u_{t-1}+\theta_2u_{t-2}+\cdots+\theta_qu_{t-q} \ ,
\]
\[u_t\sim{\rm WN}(0,\,\sigma^2) \ .
\]

其中,\(\{u_t\}\) 是白噪声序列。满足上述模型设定的序列 \(\{y_t\}\) 称为 \({\rm MA}(q)\) 序列。

首先讨论 \({\rm MA}(q)\) 序列的平稳性:

  • \({\rm E}(y_t)=0\) ;
  • \({\rm Var}(y_t)=(1+\theta_1^2+\cdots+\theta_q^2)\sigma^2\) ;
  • 自协方差函数:
\[\gamma(k)={\rm Cov}(y_t,\,y_{t+k})=
\left\{
\begin{array}{lll}
(\theta_1+\theta_2\theta_1+...+\theta_q\theta_{q-1})\sigma^2 &, & k=1 \\
\cdots && \\
(\theta_{q-1}+\theta_q\theta_1)\sigma^2 &,& k=q-1\\
\theta_q\sigma^2&,&k=q \\
0 &,& k>q
\end{array}
\right.
\]

因此 \({\rm MA}(q)\) 序列是一个平稳时间序列。由于这里的 \(q\) 是有限阶数,因此也称有限 \({\rm MA}(q)\) 序列。有根据自协方差函数,我们可以知道 \({\rm MA}(q)\) 序列的自协方差函数和自相关函数都是 \(q\) 后截尾的。

同样的 \({\rm MA}(q)\) 序列也具有可逆性,其充要条件为:有限 \({\rm MA}(q)\) 序列是可逆的当且仅当特征多项式 \(\Theta(z)\) 的根均在单位圆外:

\[\Theta(z)=\sum_{i=0}^q\theta_iz^i\neq0\ , \ \ \ \ |z|\leq1 \ .
\]

根据 \({\rm MA}(q)\) 序列的自相关函数的结尾性质,我们可以通过计算 ACF 来定阶。

\({\rm AR}(p)\) 模型

接下来我们讨论自回归模型,简称为 \({\rm AR}\) 模型。我们先来看简单的情况。

\({\rm AR}(1)\) 模型

一般地, \({\rm AR}(1)\) 模型的模型设定如下:

\[y_t=\phi y_{t-1+}\varepsilon_t \ ,
\]
\[\varepsilon_t\sim{\rm WN}(0,\,\sigma^2) \ .
\]

其中,\(\{\varepsilon_t\}\) 是白噪声序列。满足上述模型设定的序列 \(\{y_t\}\) 称为 \({\rm AR}(1)\) 序列。容易计算得到 \(y_t\) 的期望和方差如下:

  • \({\rm E}(y_t)=0\) ;
  • \({\rm Var}(y_t)=\dfrac{\sigma^2}{1-\phi^2}\) .

为了得到自协方差函数,我们对 \({\rm AR}(1)\) 模型的两边同时乘一个 \(y_{t-k}\) :

\[y_ty_{t-k}=\phi y_{t-1}y_{t-k}+\varepsilon_ty_{t-k} \ ,
\]

对 \(k\geq1\) ,两边同时取数学期望:

\[{\rm E}(y_ty_{t-k})=\phi {\rm E}(y_{t-1}y_{t-k})+{\rm E}(\varepsilon_ty_{t-k}) \ ,
\]

得到下面重要的式子 Yule-Walker 方程

\[\gamma(k)=\phi\gamma(k-1) \ .
\]

这是一个递归方程,如果我们已知初值条件 \(\gamma(0)\) ,我们就可以利用 Y-W 方程计算出全体自协方差函数序列。下面推导如何计算 \(\gamma(0)\) :

对 \({\rm AR}(1)\) 模型的两边同时乘一个 \(y_{t}\) 并取数学期望

\[{\rm E}(y_t^2)=\phi {\rm E}(y_ty_{t-1})+{\rm E}(\varepsilon_ty_t)=\phi {\rm E}(y_ty_{t-1})+\phi {\rm E}(\varepsilon_ty_{t-1})+{\rm E}(\varepsilon_t^2) \ .
\]
\[\gamma(0)=\phi\gamma(1)+\sigma^2 \ .
\]

对 Y-W 方程取 \(k=1\) 得

\[\gamma(1)=\phi\gamma(0) \ .
\]

两个方程联立解得:

\[\gamma(0)=\frac{\sigma^2}{1-\phi^2} \ .
\]

这也是 \({\rm AR}(1)\) 序列的方差。

利用 Y-W 方程和初值条件,我们可以得到一般的自协方差函数:

\[\gamma(k)=\phi^k\frac{\sigma^2}{1-\phi^2} \ ,
\]

可以看出 \({\rm AR}(1)\) 序列是平稳序列。但为保证自协方差存在,需要满足平稳性条件: \(|\phi|<1\) 。

进而我们可以得到自相关函数

\[\rho(k)=\phi^k \ .
\]

注意到 \({\rm AR}(1)\) 序列的 ACF 是一个逐渐收敛到 \(0\) 的序列,表现为拖尾。如果 \(\phi>0\) 则 \(\rho(k)\) 递减趋近于 \(0\) ,如果 \(\phi<0\) 则 \(\rho(k)\) 上下振荡衰减至 \(0\) 。

继续讨论偏相关函数,不难发现 \({\rm AR}(1)\) 序列的 PACF 是 \(1\) 步截尾

\[p(k)=
\left\{
\begin{array}{lll}
\phi &, & k=1\\
0 &,& k\geq1
\end{array}
\right. \ .
\]

PACF 只是一个连续的总体自回归序列中的最后一期滞后项的自回归系数。如果真实过程实际上是 \({\rm AR}(1)\) ,则 \(p(1)\) 就是自回归系数 \(\phi\) ,所有较长滞后的系数均为零。

\({\rm AR}(p)\) 模型

将自回归模型推广至一般情况, \({\rm AR}(p)\) 模型的模型设定如下:

\[y_t=\phi_1y_{t-1}+\phi_2y_{t-2}+...+\phi_py_{t-p}+\varepsilon_t \ ,
\]
\[\varepsilon_t\sim{\rm WN}(0,\,\sigma^2) \ .
\]

使用滞后算子多项式可以表示为:

\[(1-\phi_1\mathscr{B}-\phi_2\mathscr{B}^2-...-\phi_p\mathscr{B}^p)y_t=\varepsilon_t \ .
\]

其中,\(\{\varepsilon_t\}\) 是白噪声序列。满足上述模型设定的序列 \(\{y_t\}\) 称为 \({\rm AR}(p)\) 序列。

类似于 \({\rm AR}(1)\) 序列的性质,一个 \({\rm AR}(p)\) 序列是自协方差平稳的的当且仅当其滞后算子多项式 \(\Phi(z)\) 的根都在单位圆的外部。在满足平稳性的条件下, \({\rm AR}(p)\) 模型的解可以写为:

\[y_t=\frac{1}{\Phi(\mathscr{B})}\varepsilon_t
\]

同样的, \({\rm AR}(p)\) 序列的偏相关函数具有 \(p\) 步截尾性,因此可以通过计算 PACF 为 \({\rm AR}(p)\) 模型定阶。

\({\rm ARMA}(p,\,q)\) 模型

关于滑动平均自回归模型我们只做简单的介绍。详细的内容需要参考课程《时间序列分析》。

\({\rm ARMA}(1,\,1)\) 模型

先从简单的开始, \({\rm ARMA}(1,\,1)\) 模型的模型设定如下:

\[y_t=\phi y_{t-1}+\varepsilon_t+\theta\varepsilon_{t-1} \ ,
\]
\[\varepsilon_t\sim{\rm WN}(0,\,\sigma^2) \ .
\]

用滞后算子表示的形式为:

\[(1-\phi\mathscr{B})y_t=(1+\theta\mathscr{B})\varepsilon_t \ .
\]

当 \(|\phi|<1\) 时 \({\rm ARMA}(1,\,1)\) 序列是平稳的,当 \(|\theta|<1\) 时 \({\rm ARMA}(1,\,1)\) 序列是可逆的。

\({\rm ARMA}(p,\,q)\) 模型

一般地, \({\rm ARMA}(p,\,q)\) 模型的模型设定如下:

\[y_t=\phi_1y_{t-1}+\phi_2y_{t-2}+...+\phi_py_{t-p}+\varepsilon_t+\theta_1\varepsilon_{t-1}+\theta_2\varepsilon_{t-2}+...+\theta_q\varepsilon_{t-q} \ ,
\]
\[\varepsilon_t\sim{\rm WN}(0,\,\sigma^2) \ .
\]

滞后算子形式:

\[\Phi(\mathscr{B})y_t=\Theta(\mathscr{B})\varepsilon_t \ ,
\]
\[\Phi(z)=1-\phi_1z-...-\phi_pz^p \ ,
\]
\[\Theta(z)=1+\theta_1z+...+\theta_qz^q \ .
\]

对于一个 \({\rm ARMA}(p,\,q)\) 序列:

当 \(\Phi(z)\) 的所有根都在单位圆外时,该序列是平稳的:

\[y_t=\frac{\Theta(\mathscr{B})}{\Phi(\mathscr{B})}\varepsilon_t
\]

当 \(\Theta(z)\) 的所有根都在单位圆外时,该序列是可逆的。

\[\frac{\Phi(\mathscr{B})}{\Theta(\mathscr{B})}y_t=\varepsilon_t
\]

此外,\({\rm ARMA}(p,\,q)\) 模型的 ACF 和 PACF 都是拖尾的,即逐渐收敛到 \(0\) 的。

那么我们面临一个问题:如何选择 \({\rm ARMA}(p,\,q)\) 模型的滞后阶数以更好的拟合数据。

在利用回归进行参数估计时,增加滞后期数 \(p\) 或 \(q\) 可以减少残差平方和,但是增加滞后期数也会造成自由度的损失。因此我们需要模型选择的方式。

模型的选择

在介绍完五种常见的时间序列模型之后,我们来讨论一下如果根据样本数据的特征来选择我们需要拟合的模型。我们可以根据 ACF 图和 PACF 图来初步判断模型:

\({\rm AR}(p)\) \({\rm MA}(q)\) \({\rm ARMA}(p,\,q)\)
ACF 拖尾 \(q\) 步截尾 拖尾
PACF \(p\) 步截尾 拖尾 拖尾

由于 \({\rm ARMA}(p,\,q)\) 模型的 ACF、PACF 均为拖尾,因此无法通过 ACF、PACF 图像判断 \({\rm ARMA}\) 模型的阶数。在实践中,我们还可以通过信息准则等进行判断:

简单介绍一下 \({\rm AIC}\) 信息准则:

\[{\rm AIC}(k)=\ln\hat\sigma_k^2+\frac{2k}{n} \ ,
\]

其中 \(\hat\sigma^2\) 为回归模型的残差平方和 \({\rm SSR}\) 。

函数的前半部分解释了模型拟合优劣性,我们希望选择拟合程度好的模型,即方差小的模型;增加自由参数可以提高拟合的优良性,同时可能会出现过度拟合,于是引入后半部分用来惩罚那些复杂的模型。最后选择 \({\rm AIC}\) 值最小的模型,代表拟合优良性和模型简洁程度综合最佳的模型。实际操作过程中,我们以 \(p\) 的估计为例:假设模型可取阶数的上限为 \(p_0\) ,那么我们只需让 \(k\) 遍历 \(0,1,2,...,p_0\) ,选取 \({\rm AIC}\) 值的最小值点即为 \(p\) 的估计。

还有 \({\rm BIC}\)(也称为 \({\rm SIC}\))等信息准则,不同的信息准则会对模型的复杂性在不同的角度和强度上进行惩罚。

\[{\rm BIC}(k)=\ln\hat\sigma_k^2+\frac{k\ln n}{n} \ .
\]

弱相依时间序列

当 \(h\) 无限增大时,如果 \(y_t\) 和 \(y_{t+h}\) 是“近乎独立”的,则这个序列被称为弱相依的(weakly dependent)。注意这个概念与时间序列是否平稳无关。

在回归分析中使用弱相依序列之前不需要对它们做任何操作,可以直接使用 OLS 估计,因为这些序列的平均值满足大数定律和中心极限定理。

含时间趋势的时间序列不是平稳序列,但是它是一个弱相依的时间序列。

\[y_t=\alpha+\beta t+u_t \ ,
\]
\[u_t\sim {\rm i.i.d.}\ {\rm WN}(0,\,\sigma_u^2) \ .
\]
\[{\rm E}(y_t)={\rm E}(\alpha+\beta t+u_t)=\alpha+\beta t \ ,
\]
\[\gamma_h={\rm Cov}(y_t,\,y_{t+h})={\rm Cov}(u_t,\,u_{t+h})=0 \ .
\]

如果一个序列是弱相依的,而且在除掉了趋势之后是平稳的,则称其为趋势-平稳过程(trend-stationary process)。

\({\rm ARIMA}(p,\,d,\,q)\) 模型

这里我们只简单介绍一些概念。

对于一个非平稳序列 \(\{y_t\}\) 如果经过 \(d\) 次差分之后可以变成一个平稳时间序列,即 \(y_t\sim {\rm I}(d)\) ,如何建立时间序列模型?

首先利用单位根检验找到 \(y_t\) 的单整阶数 \(d\) ,通过 \(d\) 次差分变换得到平稳时间序列 \(\{\Delta^d y_t\}\) ,对序列 \(\{\Delta^d y_t\}\) 建立 \({\rm ARMA}(p,\,q)\) 模型即可。

这样的模型称为 \({\rm ARIMA}(p,\,d,\,q)\) 模型。

概括一下 \({\rm ARIMA}(p,\,d,\,q)\) 模型的建模一般步骤:

step.1 先确定差分次数 \(d\) :对序列进行 ADF 平稳性检验,如果非平稳,则对序列进行差分,并再次进行 ADF 平稳性检验,直到经过 \(d\) 次差分后变成平稳序列,此时 \(d\) 即为差分阶数。

step.2 确定 \(p\) 和 \(q\) ,对差分后的序列建立 \({\rm ARMA}\) 模型,利用 ACF 和 PACF 图像信息是否截尾和AIC、BIC信息准则确定最佳的参数 \(p\) 和 \(q\) 。

step.3 建模并估计参数,对回归后的残差序列进行白噪声的 \(Q\) 检验。

计量经济学导论10:ARIMA模型的更多相关文章

  1. 时间序列 ARIMA 模型 (三)

    先看下图: 这是1986年到2006年的原油月度价格.可见在2001年之后,原油价格有一个显著的攀爬,这时再去假定均值是一个定值(常数)就不太合理了,也就是说,第二讲的平稳模型在这种情况下就太适用了. ...

  2. 用R做时间序列分析之ARIMA模型预测

    昨天刚刚把导入数据弄好,今天迫不及待试试怎么做预测,网上找的帖子跟着弄的. 第一步.对原始数据进行分析 一.ARIMA预测时间序列 指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之 ...

  3. ARIMA模型——本质上是error和t-?时刻数据差分的线性模型!!!如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理!ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数

    https://www.cnblogs.com/bradleon/p/6827109.html 文章里写得非常好,需详细看.尤其是arima的举例! 可以看到:ARIMA本质上是error和t-?时刻 ...

  4. 【R实践】时间序列分析之ARIMA模型预测___R篇

    时间序列分析之ARIMA模型预测__R篇 之前一直用SAS做ARIMA模型预测,今天尝试用了一下R,发现灵活度更高,结果输出也更直观.现在记录一下如何用R分析ARIMA模型. 1. 处理数据 1.1. ...

  5. ARIMA模型实例讲解——网络流量预测可以使用啊

    ARIMA模型实例讲解:时间序列预测需要多少历史数据? from:https://www.leiphone.com/news/201704/6zgOPEjmlvMpfvaB.html   雷锋网按:本 ...

  6. 用python做时间序列预测九:ARIMA模型简介

    本篇介绍时间序列预测常用的ARIMA模型,通过了解本篇内容,将可以使用ARIMA预测一个时间序列. 什么是ARIMA? ARIMA是'Auto Regressive Integrated Moving ...

  7. 时间序列预测之--ARIMA模型

    什么是 ARIMA模型 ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model).也记作ARIM ...

  8. 【机器学习笔记之五】用ARIMA模型做需求预测用ARIMA模型做需求预测

    本文结构: 时间序列分析? 什么是ARIMA? ARIMA数学模型? input,output 是什么? 怎么用?-代码实例 常见问题? 时间序列分析? 时间序列,就是按时间顺序排列的,随时间变化的数 ...

  9. 时间序列分析模型——ARIMA模型

    时间序列分析模型——ARIMA模型 一.研究目的 传统的经济计量方法是以经济理论为基础来描述变量关系的模型.但经济理论通常不足以对变量之间的动态联系提供一个严密的说明,而且内生变量既可以出现在方程的左 ...

随机推荐

  1. 【JeecgBoot】关于 jeecg-boot 的项目理解、使用心得和改进建议

    工欲善其事,必先利其器. 脚手架选型 一年前,我接到为团队落地一个快速开发脚手架的任务. 在月底这节骨眼上,时间紧,任务急,有想自己撸一个脚手架的人都赶紧把这想法收起来吧!这劳民又伤身的事咱肯定是不能 ...

  2. 转 Fiddler4 手机抓包

    Fiddler4 手机抓包  文章转自:https://www.cnblogs.com/zhengna/p/10876954.html 1.要对计算机Fiddler进行配置,允许远程计算机连接. 2. ...

  3. Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

    Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化 方案一:直接忽略 很容易认为这儿是一个错误,其实可以直接忽略,重新输入密码 [root@localhost ~]# passwd 更 ...

  4. get uuid

    https://wx2.qq.com/?&lang=zh_CN /** * 启动二维码登录 */ function doQrcodeLogin() { loginFactory.getUUID ...

  5. Win10家庭版Hyper-V出坑(完美卸载,冲突解决以及Device Guard问题)

    本文链接:https://blog.csdn.net/hotcoffie/article/details/85043894 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附 ...

  6. innodb和myisam原理

    MyISAM索引实现 MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.如图:  这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引 ...

  7. Autofac for AutoMapper

    我一直在做的事情.NET 开发已经有一段时间了.有时人们问我,为什么我仍然觉得它有趣.答案很简单: 我是超级 d.r.y.如果你不熟悉这个术语,你应该查一下,但它基本上意味着你应该总是尝试应用那些可以 ...

  8. 为什么Redis集群要使用反向代理?

    为什么要使用反向代理? 如果没有方向代理,一台Redis可能需要跟很多个客户端连接: 看着是不是很慌?看没关系,主要是连接需要消耗线程资源,没有代理的话,Redis要将很大一部分的资源用在与客户端建立 ...

  9. LOJ10065 北极通讯站

    Waterloo University 2002 北极的某区域共有 n 座村庄,每座村庄的坐标用一对整数 (x,,y) 表示.为了加强联系,决定在村庄之间建立通讯网络.通讯工具可以是无线电收发机,也可 ...

  10. LOJ10160周年纪念晚会

    题目描述 Ural 州立大学的校长正在筹备学校的 80 周年纪念聚会.由于学校的职员有不同的职务级别,可以构成一棵以校长为根的人事关系树.每个资源都有一个唯一的整数编号,从 1 到 N 编号,且对应一 ...