广义投入产出分析方法

考虑一个\(N\)各部门构成的封闭系统。由于数据可获得性,有的时候需要把例如第\(N\)个部门拿出来当成外界。这个时候,系统就成了开放系统。顺便,这个时候计算的时候可能用不到的数据就是部门\(N\)对其他部门的投入,或者其他部门对\(N\)部门的投入。还有的时候,这\(N\)个部门中,仅仅一小部分部门,例如\(M\)个部门,之间的投入产出数据是已知的,那么这个时候,如果这个子集所包含的部门和其他部门之间的交流比子集内部的交流少很多,那么这个子集就是我们的\(M\)部门的封闭系统研究对象。如果联系还挺多,还能获得这个\(M\)个部门到其他部门的投入产出以及其他部门到这\(M\)个部门的投入产出,那就把其他部门合起来当作一个部门。如果仅仅前者或者后者能够获得,则要用开放系统的分析方法。

本文介绍这样的\(N\)部门系统的投入产出分析技术。在这里,我们假设这个\(N\)部门之间的投入产出数据是完全已知的。在假设技术——生产方式——不发生变化的前提下,投入产出技术回答以下的典型问题:

  1. 如果某个部门,例如第\(N\)部门,增加了对其他某个\(j\)部门的投入或者需求——需求的意思就是反过来\(j\)部门到\(N\)部门的投入,整个系统的各个部门的产出会发生什么变化
  2. 各个部门对整体系统的重要程度或者说有影响力
  3. \(j\)部门对其他各个部门的影响力

具体问题在各个技术还会展开说明,但是,以下的分析技术,不管是开放系统还是封闭系统的,是不是就能用来回答所感兴趣的研究问题,就是另外一个问题了。

定义
\(N\)封闭系统各个部门之间的投入产出关系有以下矩阵代表
\[x = \left(x^{i}_{j}\right)_{N\times N},\]
其中\(x^{i}_{j}\)表示部门\(i\)到部门\(j\)的投入。上下指标的区别很重要,上角标是出来的部门,下角标是到达的部门。

定义部门\(i\)的总投入量\(X_i\)和总产出量\(X^i\),
\[X^{i} = \sum_{j}x^{i}_{j}, X_{i} = \sum_{j}x^{j}_{i}.\]

定义矩阵\(B\)如下,
\[B^{i}_{j} = \frac{x^{i}_{j}}{X^{j}}.\]

定义矩阵\(F\)如下,
\[F^{i}_{j} = \frac{x^{i}_{j}}{X_{i}}.\]

定义矩阵\(MB\)如下,
\[MB^{i}_{j} = \frac{x^{i}_{j}}{X^{i}}.\]

定义矩阵\(MF\)如下,
\[MF^{i}_{j} = \frac{x^{i}_{j}}{X_{j}}.\]

先来形式上证明这几个矩阵的本征向量之间的关系,记\(B\)的左右本征矢量分别是\(\left\langle \lambda_{B} \right|\)和\(\left| \lambda_{B} \right\rangle\),类似地定义其他矩阵的本征矢量。我们有,
\begin{align}
\left\langle \lambda_{B} \right| B = \lambda_{B} \left\langle \lambda_{B} \right| \notag \\
\Rightarrow \lambda_{B} \left\langle \lambda_{B} \right| \left. i \right\rangle = \sum_{j} \left\langle \lambda_{B} \right| \left. j \right\rangle \left\langle j \right| B | \left. i \right\rangle = \sum_{j} \left\langle \lambda_{B} \right| \left. j \right\rangle B^{j}_{i} \notag \\
\Rightarrow \lambda_{B} \left\langle \lambda_{B} \right| \left. i \right\rangle = \sum_{j} \left\langle \lambda_{B} \right| \left. j \right\rangle \frac{x^{j}_{i}}{X^{i}} = \sum_{j} \left\langle \lambda_{B} \right| \left. j \right\rangle \frac{x^{j}_{i}}{X^{j}}\frac{X^{j}}{X^{i}} \notag \\
\Rightarrow \lambda_{B} \left\langle \lambda_{B} \right| \left. i \right\rangle X^{i}=\sum_{j} \left\langle \lambda_{B} \right| \left. j \right\rangle X^{j} \frac{x^{j}_{i}}{X^{j}}.
\Rightarrow \lambda_{B} \left\langle \lambda_{B} \right| \left. i \right\rangle X^{i}=\sum_{j} \left\langle \lambda_{B} \right| \left. j \right\rangle X^{j} MB^{j}_{i}.
\end{align}
于是,我们发现\(\left\langle \lambda_{B} \right| \left. i \right\rangle X^{i}\)是矩阵\(MB\)的左本征向量\(\left\langle \lambda_{MB} \right|\)的\(i\)分量。类似地,\(B\)和\(MB\)的右本征矢量也存在类似地关系。同理,\(F\)和\(MF\)之间也存在一样的关系。

同时,我们还注意到\(B\)的最大右本征矢量,就是对应着最大本征值的右本征矢量,是平庸的。本征值是\(1\),本征向量是\(X^{a} = \left(X^{1}, X^{2}, \cdots, X^{N}\right)^{T}\),
\begin{align}
\sum_{j} B^{i}_{j} X^{j} = \sum_{j} \frac{x^{i}_{j}}{X^{j}}X^{j} = X^{i}.
\end{align}
当然,通过上面的两个矩阵的本征矢量的一般关系,我们可以得到\(MB\)矩阵的最大右本征向量也是平庸的,就是\(\left(1, 1, \cdots, 1\right)^{T}\)。同理,\(F\)和\(MF\)的最大右本征向量也是平庸的。

因此,当\(X^{i}=X^{i}\)的时候,矩阵\(B\)在数值上等同于矩阵\(MF\),于是这个时候,最大左右本征矢量都是平庸的。仅当
\[X^{i}\neq X^{i}\]
的时候,\(B\)和\(MB\)的最大左本征向量,\(F\)和\(MF\)的最大右本征向量会有独立于总量\(X^{a}\)以及\(X_{a}\)的含义。因此,当原始矩阵\(x^{i}_{j}\)对称的时候(这时候,\(X^{i}=X^{i}\)),这些所有后来定义的矩阵的本征矢量都没有独立于总量\(X^{a}\)以及\(X_{a}\)的含义。更一般地,我们称满足\(X^{i}=X^{i}\)的系统为投入产出守恒的系统,或者简称守恒系统。守恒系统所有最大本征向量平庸是一个很重要的事实。

传统开放系统投入产出

这一节,我们问这样的问题:第\(N\)部门,增加了对其他某个\(j\)部门的需求,整个系统的各个部门的产出会发生什么变化。有了这个技术,可以回答类似地回答第\(N\)部门增加了对其他某个\(j\)部门的投入,整个系统的各个部门的产出会发生什么变化的问题,就需要用\(F\)矩阵。

我们从\(X^{i}\)的定义开始,
\begin{align}
X^i=\sum^{N-1}_{j=1}x^{i}_{j}+x^i_{N} = \sum^{N-1}_{j=1} x^{i}_{j}+Y^i = \sum^{N-1}_{j=1}\frac{x^i_j}{X^{j}}X^{j}+Y^i \notag \\
\Rightarrow X^{\left(-N\right)} = B^{\left(-N\right)}X + Y^{\left(-N\right)} \notag \\
\Rightarrow X^{\left(-N\right)} = \left(1-B^{\left(-N\right)}\right)^{-1} Y^{\left(-N\right)} \\
\Rightarrow \Delta X^{\left(-N\right)} = \left(1-B^{\left(-N\right)}\right)^{-1} \Delta Y^{\left(-N\right)} = L^{\left(-N\right)}_{B} \Delta Y^{\left(-N\right)}
\end{align}
其中,\(\Delta Y\)可以是\(e^{j}= \left(0, \cdots, 1, 0, \cdots, 0\right)\)这样的单位矢量,表示部门\(N\)仅仅对部门\(j\)增加了需求。\(Y^i=x^{i}_{N}\)是部门\(N\)对部门\(i\)的需求量。这里上角标\(^{\left(-N\right)}\)表示矩阵或者向量中去掉部门\(N\)的相关元素。

类似的,从矩阵\(F\)我们可以有
\begin{align}
X_i=\sum^{N-1}_{j=1}x^{j}_{i}+x^{N}_{i} = \sum^{N-1}_{j=1} x^{j}_{i}+V_i = \sum^{N-1}_{j=1}\frac{x^{j}_{i}}{X_{j}}X_{j}+V_i \notag \\
\Rightarrow X^{\left(-N\right)} = XF^{\left(-N\right)} + V^{\left(-N\right)} \notag \\
\Rightarrow X^{\left(-N\right)} = V\left(1-F^{\left(-N\right)}\right)^{-1} \\
\Rightarrow \Delta X^{\left(-N\right)} = \Delta V^{\left(-N\right)} \left(1-F^{\left(-N\right)}\right)^{-1} = \Delta V^{\left(-N\right)} L^{\left(-N\right)}_{F}
\end{align}
注意,这里分量为\(X^{j}\)的矢量和分量为\(X_{j}\)的矢量不一样,前者放在矩阵右边,后者左边。习惯上,我们称前者为列矢量,后者为行矢量。物理上有两种方法对这样的矢量作区分,记作\(X^{a}\)和\(X_{a}\),或者记作\(\left| X \right\rangle\)和\(\left\langle X \right|\)。前者的记号来自于Einstein,后者来自于Dirac。这个记号非常方便。我们下面会采用这两套记号。

有了这个逆矩阵\(L^{\left(-N\right)}_{B}\)(\(L^{\left(-N\right)}_{F}\))之后,我们就可以通过计算第\(j\)个列和(行和)来回答前面提出的问题了。

传统开放系统投入产出HEM

Hypothetical Extraction Method (HEM)的意思是假想地从系统中去掉一个部门,然后看一看,在这个新的系统中,如果我们还要实现同样的需求(或者提供同样的投入,针对\(F\)),各个部门的总产出的变化。具体计算如下。

定义\(L^{\left(-N-j\right)}_{B}\),
\begin{align}
L^{\left(-N-j\right)}_{B} = \left(1-B^{\left(-N-j\right)}\right)^{-1}.
\end{align}
然后,比较\(L^{\left(-N-j\right)}_{B}\)和\(L^{\left(-N\right)}_{B}\),例如
\begin{align}
L^{\left(-N-j\right)}_{B} Y^{\left(-j\right)}, \left(L^{\left(-N\right)}_{B} Y\right)^{\left(-j\right)}.
\end{align}
后者表示计算完成之后再去掉元素\(j\)。当然,为了提供一个数字来相互比较,当\(X\)矢量的每一个元素可以相加(不一定可以,需要统一的单位)的时候,我们还可以计算上面两个矢量的和来相比。直觉上,我们可以认为,如果这个差别非常大,那么去掉这个部门\(j\)的影响很大,于是回答了一开始的部门对系统整体影响力的问题。相互影响的问题也可以通过考察这个差别矢量来讨论。

实际计算矩阵逆的时候,可以考虑用迭代方法:下面这个方程的不动点和上面的求逆是一样的。
\begin{align}
X^{\left(-j\right)}\left(m+1\right)= B^{\left(-N-j\right)} X^{\left(-j\right)}\left(m\right) + Y^{\left(-j\right)}
\end{align}
其中\(m\)是迭代次数,初始条件可以取\(X\left(0\right)=\left(1, \cdots, 1\right)^{T}\)。更高效的计算可以运用Dyson方程。

\(F\)的问题可以做类似分析。

目标外界投入产出HEM

以上两个分析方法,主动或者被迫,先把封闭系统看作开放系统——把部门\(N\)独立出来,然后再来分析。在经济学中,部门\(N\)是最终消费者,独立出来有很好的理由。其到产业系统的投入\(V\)非常不容易跟踪。其内部的再生产时间也远远比产业系统的再生产时间长。在大量的其他系统中,这样的分隔可能是不合适的。我们已经看到,经过这个分隔,实际上,我们讨论了部门\(N\)对部门\(i\)增加一个需求或者投入所带来的效果。现在,我们对任意一个部门\(k\)来运用这个分析。我们相当于问这样的问题:如果部门\(k\)增加了对某一个部门\(j\)的需求或者投入,在不改变系统结构的情况下,各个部门的总产出会如何变化。和传统HEM相比,我们发现:传统HEM实际上是,不仅仅增加或者减少\(k\)部门对\(j\)部门的需求或者投入,还不允许部门\(k\)出现在产业系统中,会发生什么。也就是说,传统HEM是结构性重要性,我们是外源性(增加需求或者投入)重要性。具体计算如下。

定义\(L^{\left(-k\right)}_{B}\),
\begin{align}
L^{\left(-k\right)}_{B} = \left(1-B^{\left(-k\right)}\right)^{-1}.
\end{align}
这个矩阵的列和代表了如果部门\(k\)增加了对某一个部门\(j\)的需求,在不改变系统结构的情况下,各个部门的产出之和(在能够取和的情况下,否则就只好直接分析得到的列向量了)。我们把这个和记作\(Z^{k}_{j} = \sum_{l} \left(L^{\left(-k\right)}_{B}\right)_{jl}\)。于是,从这个矩阵,我们可以得到一个新的影响力矩阵
\begin{align}
Z_{B} = \left(Z^{k}_{j}\right)_{N\times N}.
\end{align}
得到这个矩阵之后的分析,还有待于进一步研究。

\(F\)的问题可以做类似的分析。

本征向量HEM

上面的目标外界HEM方法回答了某个部门\(k\)增加(或者减少)一个单位的对\(j\)部门的投入(或者需求)在整个系统内传播的效果。现在,还是封闭系统,我们来讨论另外一个分析方法——本征向量HEM。

对于封闭系统,矩阵\(B\)的右本征矢量定义是
\begin{align}
B \left| 1 \right\rangle_{B} = \left| 1 \right\rangle_{B},
\end{align}
其元素是
\begin{align}
\left| 1 \right\rangle_{B} = \left(X^{1}, X^{2}, \cdots, X^{N}\right)^{T}.
\end{align}
这个很容易验证。因此,这个矢量就是由各个部门总产出构成的,平庸的,不用通过计算本征向量来获得。顺便,这个矩阵的左本征矢量,
\begin{align}
\left\langle 1 \right|_{B} B = \left\langle 1 \right|_{B},
\end{align}
可能是非平庸的。实际上,这个左本征矢量和下一节的PageRank矢量是有密切联系的。于是,这个右本征矢量看起来就不能给我们的进一步分析带来太多价值。真的是这样吗?

我们注意到这个右本征矢量的另外一个解释:如果我们按照这个比例来投入产业系统的话,所有的原材料都会被用掉,不会浪费;所有的生产所需要的原材料也会得到满足,不会缺。因此我们把这个组合称作最优组合。这个时候,我们来看以下的矩阵\(B^{\left(-k\right)}\)的最大本征值和相应的本征向量(假设本征矢量唯一,其存在性由Perron-Frobenius定理保证,唯一性需要矩阵非退化),
\begin{align}
B^{\left(-k\right)}\left| \lambda^{\left(-k\right)}_{Max} \right\rangle_{B^{\left(-k\right)}} = \lambda^{\left(-k\right)}_{Max} \left| \lambda^{\left(-k\right)}_{Max} \right\rangle_{B^{\left(-k\right)}}.
\end{align}
我们发现,最大本征向量基本上可以看做新的去掉部门\(k\)之后的系统的最优组合,而最大本征值则是这个组合的效率。于是,我们定义
\begin{align}
IOF^{k} = 1-\lambda^{\left(-k\right)}_{Max} ,
\end{align}
解释成\(k\)部门对系统整体的影响力(Input-Output Factor, IOF),而把向量\(\left| \lambda^{\left(-k\right)}_{Max} \right\rangle_{B^{\left(-k\right)}} \)的\(j\)元素看做\(k\)对\(j\)的影响(Input-Output Mutual Influences, IOMI),
\begin{align}
IOMI^{k}_{j} = \left\langle j \left| \right. \lambda^{\left(-k\right)}_{Max} \right\rangle_{B^{\left(-k\right)}} – \left\langle j \left| \right. 1 \right\rangle_{B}.
\end{align}

PagerRank和PageRank的HEM

上面的分析方法关注矩阵的最大右本征矢量,现在我们来关心矩阵的最大左本征矢量。除了对付完全随机跳跃的那部分,PageRank矢量实际上用了如下的本征矢量,
\begin{align}
\left\langle 1 \right|_{MB} MB = \left\langle 1 \right|_{MB}.
\end{align}
我们已经证明 \(\left\langle 1 \right|_{MB}\)和\(\left\langle 1 \right|_{B}\)一一对应,仅相差一个向量的元素乘积。这个就是PageRank。通过它,我们可以得到对部门重要性的一种排名。另外,我们还可以做一个这个本征矢量的HEM。定义如下。
\begin{align}
\left\langle \lambda^{\left(-k\right)}_{Max} \right|_{MB^{\left(-k\right)}} MB^{\left(-k\right)}= \lambda^{\left(-k\right)}_{Max} \left\langle \lambda^{\left(-k\right)}_{Max} \right|_{MB^{\left(-k\right)}}.
\end{align}
可以证明,这个本征值和上面基于\(B\)的定义是一样的(这个本征向量的含义还不太清楚)。或者下面的定义,
\begin{align}
\left\langle 1 \right|_{\hat{MB}^{\left(-k\right)}} \hat{MB}^{\left(-k\right)}= \left\langle 1 \right|_{\hat{MB}^{\left(-k\right)}}.
\end{align}
其中,\(\hat{MB}^{\left(-k\right)}\)是对矩阵\(MB^{\left(-k\right)}\)的重新回一化得到的概率转移矩阵。重新归一化以后最大本征值重新成了\(1\)。然后我们通过对比两个向量来反映\(k\)部门的重要性,例如,
\begin{align}
PRF^{k} = 1- \left\langle 1 \right|_{\hat{MB}^{\left(-k\right)}} \left(\left| 1 \right\rangle_{MB}\right)^{\left(-k\right)} .
\end{align}
最后的矢量\(\left(\left| 1 \right\rangle_{MB}\right)^{\left(-k\right)}\)就是从\(\left\langle 1 \right|_{MB}\)先去掉第\(k\)个元素,然后转化成右矢量得到的。
\begin{align}
PRMI^{k}_{j} = \left\langle 1 \right|_{\hat{MB}^{\left(-k\right)}} \left| j \right\rangle – \left\langle 1 \right|_{MB} \left| j \right\rangle .
\end{align}
这个分析方法的应用还有所反映的重要性的含义,还有待于进一步讨论。

系统生物学流平衡分析方法

原则上,上面的HEM方法可以考虑同时去掉多个的影响——其不一定等于单个的效果的相加——也就是出现了交叉项、相干项。

在化学反应网络的层次,一个部门牵涉到多个产出,产出的数量和部门的数量不一样。这个时候,需要把部门(也就是化学反应)和投入产出产品(反应物和生成物),分别拿出来处理。实际上,这个可以看做是一个特殊的二层网络。这个时候,广义投入产出理论需要张量这个数学工具。还需要考虑平衡态、最优态甚至流的再次分配问题来寻找最终的每个部门在扰动之后的流。在化学反应和系统生物学领域,这个理论,被叫做流平衡分析。

我们做了统一和发展(待续)。

多层网络上的广义投入产出
由于我们的投入产出分析允许\(X^{i} \neq X_{i}\),甚至\(X_{i}\)就不存在,我们就可以处理\(\sum_{j} x^{j}_{i}\)完全不能相加,没有统一单位和统一的意义,的情形。于是,对于多层网络问题,里面自然有多种不同性质的关系的时候,我们的广义投入产出就可以用来讨论这样的系统。

待续。

目前几个工作的总结

  1. 小思科学学的工作提出和运用了本征向量HEM
  2. 小勇的工作运用了传统HEM并且正在考察目标外界HEM
  3. 秦磊的工作考虑运用目标外界HEM
  4. 崔浩川城市的工作先运用本征向量HEM方法,将来再对比多个方法
  5. 小思方法对比的工作需要做各个方法的对比
  6. 李梦辉关于专利和文献合起来的领域相互影响的问题,考虑用封闭系统方法(本征向量HEM和目标外界HEM)
  7. 张江在贸易网络上的工作就相当于用了传统的当作开放系统的HEM(并且进一步讨论了体量和影响力的关系,以及这个关系的幂律指数的含义)
  8. 当作封闭系统的国家之间贸易网络的工作还没有人做
  9. Dyson方程的工作解决的是以上各个技术中计算简化的问题

广义投入产出研究基本文献

首先,了解投入产出:Input-Output Analysis Foundations and Extensions by Ronald E. Miller and Peter D. Blair.

其次,了解PageRank:The PageRank Citation Ranking: Bringing Order to the Web by L. Page, S. Brin, R. Motwani, and T. Winograd;Google matrix analysis of directed networks by Leonardo Ermann, Klaus M. Frahm, and Dima L. Shepelyansky。

接着,了解科学学:Bibliometrics and Citation Analysis: From the Science Citation Index to Cybermetrics by Nicola De Bellis

接着,了解流平衡分析和系统生物学:Systems Biology: Properties of Reconstructed Networks by Bernhard Ø. Palsson,What is flux balance analysis? by Jeffrey D Orth, Ines Thiele and Bernhard Ø Palsson

最后,几个领域连通起来的视角(前面的所有的准备就是为了能够明白这个):PageRank: Standing on the Shoulders of Giants by Massimo Franceschet,Spectral Ranking by Sebastiano Vigna,吴金闪的广义投入产出分析和细节投入产出分析投入产出矩阵分析的主要思想小结,以及吴金闪的报告《广义投入产出分析》

所有的知识的学习的出发点都可以是Wikipedia和google。

在理解和了解这一基本思想和这些学科的基本研究问题之后,可以思考如何用这个思想来解决这些学科的基本问题,以及还可以用来解决其他哪些问题(注意,我们的汉字学习的工作——Efficient Learning Strategy of Chinese Characters Based on Network Approach——实际上也是这个思想的一个应用)。

争取以后每一个领域,我都整理出来基本文献,供后来人使用。

刚才学生问,做什么样的研究。研究工作只有两个目标:顶天(最高深最核心的学问)、立地(最具实际性的学问)。如果还能够从立地的问题中提炼出顶天的来,或者把顶天的用于立地 的,就更加有意思了。其他的,不解决这两个问题以及它们的联系的学问,都不是学问,比如大多数研究者跟在人家屁股后面的工作。可借鉴,不跟从,要么钻研深刻的理论核心问题,要么解决实际问题中能够用非平庸的数学结构解决的问题。

学生还问,为什么我从来不直接给答案。当学生或者其他意图学到东西的人问我一个问题的时候,我通常会问更多的问题,意图是:搞清楚学生的根本问题在哪里,铺设台阶引导其思考,逼迫学生思考背后的原因然后能够做到举一反三。如果学生的答案有错,我也不会告诉他错了,而是沿着他的思路,问更多的推演的问题,然后让学生自己意识到答案的问题。这样做,学生能够得到的收获会更多。但是,大部分人都不是客观的思考者,会觉得我顺着思路把他逼到墙角,是不可接受的事情,于是,所谓的自尊伤害了思考。当然,这也是物理学家的问题,很多时候,他们把所有的问题简单地当做科学问题,分不清楚生活问题和科学问题的界线,搞不清楚学生的自尊和搞清楚问题有什么关系。这个也只能提醒自己一下,一不小心,就又忘了。