離散値の出現順序の独立性を検定する

  • (非負)整数列(ポアソン乱数、負の二項分布乱数など)が生成されたとする。一見、出現する値はバラバラに見えるが、本当にバラバラなのかについて考えたい
  • これは疑似乱数列のランダム性の評価として、様々な方法が提唱されている(たとえばこちら)問題だが、一般に疑似乱数列の評価においては、0,1の列の検定である
  • 整数列であることを利用することにする
  • 整数列であれば、ある値とその次の値との値のペアは整数の組となるから、連続2乱数に関して2元分割表が作れる
  • この分割表の行と列とが独立であるかの検定は、「連続する2乱数間の独立性」の検定に「は」なる
  • 「。。。検定に『は』なる」の『は』とはどういうことかというと、疑似乱数列のランダム性の評価の場合には、連続2乱数の独立性だけではなくて、より大きな周期性が現れないか、など、評価すべき数列のスケールの網羅性も問題とするからである
  • ここでは、連続2乱数間の独立性のみを評価していることから、「必要性」は検定していることになるが、「十分性」は評価していない点に注意したい
  • とはいえ、「必要性」で棄却されるなら、棄却目的にが合致するので、それで目的がある意味では達成できる場合を考えることにする
  • 以下では、整数列のために作られたわけではない、出現順序のランダム性の検定であるruns.test()関数が算出する統計量と、隣接2数の独立性を分割表カイ二乗統計量とを用いることとし、その統計量の帰無分布をパーミュテーション生成してp値を推定してみている
  • 分割表の方でよさそう。。。かな?
  • Rでやってみる

STRINGのinteraction confidence score

  • STRINGと言うタンパク-タンパクネットワークデータベース・ツールがある(こちら)
  • タンパク-タンパク間に数値が出てくるのだが、その数値がどう言う由来なのかがわかりにくい
  • こちらのはてなブログの記事

kazumaxneo.hatenablog.com
に「STRINGのインタラクションスコアは、特定のインタラクションの強さまたは特異性を表すものではなく、利用可能なすべての証拠が与えられた場合に、0から1のスケールで関連が真であるというおおよその信頼を表すことを意味する。 STRINGのスコアは、両方のタンパク質パートナーに既に機能的にアノテーションが付けられている関連付けのサブセットを使用してベンチマークされる。このため、KEGGパスウェイマップ(ref.41)がゴールドスタンダードとして使用されているため、機能的関連付けの粒度も暗黙的に決定される。」と説明がありますが、わかったようなわからないような。。。

  • こちらの論文

academic.oup.com
に英語で、対応するのかもしれないと思われる記述があります。

  • "The scores in STRING are benchmarked using the subset of associations for which both protein partners are already functionally annotated; for this, the KEGG pathway maps"
  • 相変わらずよくわからないです・・・
  • ここ

www.blopig.com
に、それっぽいタイトルの記事がありますが、これも詳しくはよくわかりません。

  • わかるのは、実験データや、種間での類推などかなり雑多な情報をひっくるめてスコアリングしているらしいことくらいでしょうか。
  • マニュアルらしきところのQ&Aに
Q:	
How are scores computed?
A:
The combined score are computed by combining the probabilities from the different evidence channels, correcting for the probability of randomly observing an interaction. For a more detailed description please see von Mering, et al Nucleic Acids Res. 2005
  • と出てきて、ようやく、オリジナル出典があるので、2005年の論文www.ncbi.nlm.nih.govへ行くと
After assignment of association scores and transfer between species, we compute a final ‘combined score’ between any pair of proteins (or pair of COGs). This score is often higher than the individual sub-scores, expressing increased confidence when an association is supported by several types of evidence (Table ​(Table1).1). It is computed under the assumption of independence for the various sources, in a naïve Bayesian fashion. It is thus a simple expression of the individual scores:
  • とあり、雑多なリソースからassociationのサブスコアを出し、それをまとめることが書いてあります。
  • Subscoreをまとめるときは、雑多な情報を全て平等に扱って、
  • S = 1- \prod (1-Si)とまとめるようです。

ぱらぱらめくる『熱力学の数理』

  • 熱力学は温度を持った物理学的系が起こす現象を記載する形式である
  • 統計力学の立場から、多数の要素が取りうる状態の多寡と乱雑度とを使って説明されることもある
  • 本書は、そうではなく、巨視的熱力学現象を数学的に表すにあたり、何の存在を仮定し、それらにどのようなルールを入れると良いか、という話をしている
  • 全順序、順序、preordered set、という順序に関する概念のうち、preordered setというものが出てくる
  • このpreordered setはposetが満たす3ルールのうちの一つを欠いたものになっている
  • 簡単にいうと、同等と、大小との関係が成り立つ集合のこと
  • 熱力学の系を説明するにあたり、系は複数あり、それには温度という、preordered setでの関係を決めるパラメタが存在し、それによって、系がある状態をとっている時、それは、別の系がある状態をとっている時と比べて、関係が定まる、という話
  • それにより、熱力学では、全ての系、全ての状態を納めたpreordered set 空間があり、それが滑らか(微分可能)な多様体となっている、と説明する
  • それを考えていくと、熱力学では、仕事と温度変化との間に関係があるのでそれを説明する必要が出てくる
  • 仕事は、圧と体積とで定義される。それと交換できるものは、温度と何かとで定義されるべきである
  • この時、温度とペアとなるものとして、エントロピーと名付けるものが存在するものとすると、話がうまくいく
  • preordered setで関係を定める必要のために温度(絶対温度)が登場し、仕事と状態変化・温度変化とを結びつけるために、(物理的に存在が明らかな)体積と対等な立場だが、認識しにくい「エントロピー」という物理的存在を、認めよう、という話
  • これで、ぱらぱらめくりは終わりにしよう
  • このぱらぱらめくりによって、何を学んだのだろう?
  • 現象がある
  • 説明する仕組みを構築することは良いことだ
  • 現象に見えていたものだけでは、説明する仕組みが不足した
  • 不足したものが存在するものとしよう
  • と、こういう筋がある、と
  • 「形」は「位相」と「長さ」と「角度」、「曲線」などからなる
  • 「形集合」が何かしらの順序構造を作っており、多様体をなしているとする。形を滑らかに変形することができる、という意味で。
  • 順序構造を成り立たせるためには、「温度」が必要
  • 長さとか角度とか曲線のような、(3次元的な)物理存在は、知っている
  • 何かを知らないから、うまく話が進まないとする
  • その知らないものは「エントロピー」のようなもの。。。「形のエントロピー〜形の複雑さ+対称性」。。。多分

乱数製造器としての確率変数

  • 標準正規分布に従う乱数を作ってくれる製造器を標準正規分布確率変数と呼ぶ(と呼ぼう)
  • このように、問いかければ、何かを返してくれるもの、返してくれる何かが問いかけのたびに変わるもの、ただし、そこにはルールがある、そんなものが確率変数(としよう)
  • 一般的な1次元実数確率変数としては、一様分布に従う乱数製造器などなど、ある
  • 指数分布に従う乱数製造器も確率変数。これは、ちょっと面白い性質があって、ポアソン事象を連続して観測した時の、2つの事象の間の時間・距離がとる分布になっている
  • 何が面白いかというと、「ある乱数製造器が作った、2つの距離」になっていること
  • 乱数製造器は1つずつの乱数を独立に作ってくれるのにも関わらず、2つの乱数の距離になっている・・・1つなのに、2つ
  • こんなことを考えていた
  • 量子確率論では、行列が確率変数になっている
  • 行列をグラフの表現と見ると、グラフが確率変数になっている、とも見える
  • グラフがあった時、そこから、どんな乱数が製造できるだろうか?
  • ランダムに2点を取った時、2点間のグラフ距離はばらつく。この2点間グラフ距離のランダムな分布を作る製造器としてグラフを捉えれば、そのグラフはそのような距離分布をランダムに作ってくれる乱数製造器であり、そのような確率変数を体現していることになる。グラフ距離行列を作成し、そのセルの値をランダムに取り出せば良い(この極限が取れれば、曲面を乱数製造器とみなすこともできる)
  • 量子確率論では、グラフの隣接行列を取り、その冪乗の標準化トレースをモーメントとする確率変数としてグラフを考える、という「定番」の確率変数がある
  • これは、k-次モーメントを、k歩で、元の頂点に戻ってくる歩道の数の平均値とするような確率変数として、グラフ隣接行列を見よう、ということ
  • グラフを乱数製造器とみなすなら、他にも色々できそうだ
  • k歩が気になるなら、任意の頂点ペアについて、k歩で行きあえる歩道の数というのも確率変数になる
  • さらに、k歩にこだわるなら、k歩進んで、結局、グラフ距離としてどれくらいの所にあるか、というのも確率変数になる
  • グラフのゼータ関数は、non-backtracking cycleに関する関数だが、non-backtracking cycleの長さに着目した確率変数の性質を考えていることだとわかる

エッセンス:量子確率論

  • こちらで「量子確率論とその応用」をぱらぱらめくった
  • 文書を抜き書きしただけで、特に数式についてはあえて端折った
  • この記事では、数式関連の抜き書きをする
  • 直交多項式は以下のような漸化式で表される
    • P_0(x) = 1
    • P_1(x) = x - \alpha_1
    • P_{n+1}(x) = (x-\alpha_{n+1})P_n(x) + w_n P_{n-1}(x)
  • ここで、\{\alpha_n\}_{n=1}^{\infty}, \{w_n\}_{n=1}^{\infty}\}, \alpha_n \in R, w_n \ge 0がヤコビ系数列
  • ヒルベルト空間の正規直交基底\{\Phi_n\}_{n=0}^{\infty}があって、それらは、3つの作用素によって以下のような関係にある
    • B^+ \Phi_n = \sqrt{w_{n+1}} \Phi_{n+1}
    • B^- \Phi_0 = 0, \; B^- \Phi_n = \sqrt{w_n} \Phi_{n-1}
    • B^o \Phi_0 = \alpha_{n+1} \Phi_n
  • また、次のような関係がある
    • U : \Phi_n  \to \frac{1}{\sqrt{\prod_{i=1}^n w_i}} P_n
  • で、モーメントは
    • E(X^m) = \int_{-\infty}^{\infty} x^m  \mu (dx)= < P_0, Q^m P_0 > = < \Phi_0, (B^+ + B^o + B^-)^m \Phi_0 >
  • Rのorthopolynomパッケージを使うと、直交多項式が作れる
library(orthopolynom)
p.0 <- polynomial( c( 1 ) )
n <- 10
# ckpk+1 (x) = (dk + ekx) pk (x) − fkpk−1 (x)
# rec should specify ck,dk,ek and fk
# p_(n+1) = (x-alhap_n) p_n + w_(n-1) p_(n-1) が作りたい
rec <- data.frame(c=rep(1,n),d=-rnorm(n),e=rep(1,n),f=runif(n))
p.list <- orthonormal.polynomials( rec, p.0 )
p.list
x <- seq(from= -1,to=1,length=101)
ys <- polynomial.values(p.list,x)
ys.mat <- matrix(unlist(ys),ncol=length(p.list))
matplot(x,ys.mat,type="l")

f:id:ryamada22:20200502120320p:plain

  • こんな問題設定
    • ある関数V1とV2とがある
    • 何かの拍子で、それらと正規直交基底Rのそれぞれとの内積V1^T R,V2^T Rがわかったとする
      • この2つの関数の正規直交基底との内積が、それぞれの「モーメント」から算出できるとき、それぞれのモーメント列がわかれば、その確率関数ペアの内積は求まりそうだ・・・
    • その時、V1とV2との内積V1^T V2 = (V1^T R) (V2^T R)^T = V1^T R R^T V2 = V1^T I V2なので
    • ちょっと有限次元でやっておく
d <- 3
R <- GPArotation::Random.Start(d)
V1 <- rnorm(d)
V2 <- rnorm(d)
sum(V1*V2)
IP1 <- matrix(V1,nrow=1) %*% R
IP2 <- matrix(V2,nrow=1) %*% R
sum(IP1 * IP2)
> sum(V1*V2)
[1] -1.460819
> IP1 <- matrix(V1,nrow=1) %*% R
> IP2 <- matrix(V2,nrow=1) %*% R
> sum(IP1 * IP2)
[1] -1.460819

ぱらぱらめくる『量子確率論とその応用』 再び

  • このPDF『量子確率論とその応用』は、1年ほど前に、読みかじったのだが、消化不良だった。
  • 再読を試みる異にする
  • いつものごとく、自分の興味・目的に引きつけて読む事になるが、1年前と今とで、何が違うかというと、行列の集合を比較することへの興味が強くなったことだろうか
  • 例えば、こちらのarXivペイパー(Comparing lar-gegraphs based on quantum probability theory)のようなことに対する具体的興味が強くなっており、それが、今回の再読の動機になっている
  • このarXivペイパーを簡単に紹介すると…
    • グラフの行列表現として隣接行列を考える。グラフ・スペクトルによる、グラフ間の異同の評価は、行列の固有値列の比較にすぎなくて、弁別力が不足している
    • それは、量子確率論でいうと、正方行列Aが会った時にA^kを考えるのだが、そのトレースだけを気にしているのでは、固有値セットのみが情報量の全てになってしまうところ、A^kのトレース以外を取り出す(トレースを取り出すのも、トレース以外を取り出すのも、量子確率論では、状態と呼ばれる関数の仕事なので、「量子確率論の状態」を切り替えることに相当)ことで、Aの持つ情報を豊かにできることを書いている
    • A^kが何を表すかをグラフに即して少し補足すると、A^k[i,j]は、頂点iから頂点jへのk歩の行き方の場合の数。したがって、A^kを使った量子確率論的k-次モーメントは、2頂点間のk歩パスの数の期待値となる
  • このように、確率変数の「モーメント」に具体的な意味が見えてきたことで、量子確率論の枠組みで考えることへの興味が一新された、とそんなところ
  • さて。再読
  • 目次
    • 1 量子確率論の基礎概念
    • 2 量子分解
    • 3 代数的グラフ理論
    • 4 スペクトル・グラフ理論
    • 5 大きなグラフの漸近的スペクトル解析
  • 1 量子確率論の基礎概念
    • 代数的確率空間
      • *-代数とその上で定義された状態の組(A,\psi)が代数的確率空間、ただし、Aは*-代数、\psiは状態と呼ばれる関数で、A \to \mathbf{C}
        • ここで、具体的なものがないとイメージが湧かないので…。*-代数の好例は、複素正方行列全体、状態の例としては、行列を引数にして、その標準化トレース(トレースを次元で割ったもの、以下、Trは標準化トレースを表すものとする)を返す関数がある。ちなみに、量子確率変数の中に、実確率変数が含まれるが、実確率変数は、複素行列のうち、エルミート行列に対応する
        • 「確率」っぽさはどこからくるかと言うと:状態と言う関数は、*-代数の要素aに対して\psi(a^*a) \ge 0となると言う条件がある…これが、「至るところで正」であると言う確率っぽさをもち、\psi(1_A) = 1(単位行列1_A)と言う性質は、\psi(a^k)をk-次モーメントを返す関数だと見た時に、\psi(A^0) = \psi(1_A) = \int p(x) dx = 1となって、全確率を足すと1、と言う確率変数っぽさをもつ、この2点、か。
        • 状態に純粋状態と混合状態とがあると言う概念は、量子統計力学的な側面の印象がある
      • 複素正方行列を*-代数とする状態には、密度行列が1対1対応する。\psi(a) = Tr(\rho a),\psi(\rho a^k) = Tr(\rho a^k)。この密度行列は正定値行列であって、Tr(\rho)=1になると言う。後者は\psi(1_A) = 1から要求される。前者は「至るところで正」であると言う確率っぽさの条件に対応する
      • 密度行列はどうしてあるか…。量子力学では、純粋状態と言うものがあり、また、純粋状態がある割合で混ざった混合状態と言うものもある。この混合状態は、状態を並べて、それぞれに、確率を割り当てる、と言う形で記載できるが、これだと、2本のベクトルで書ける。物理学において実験的に観測をすると、物理量がこれこれの値をこれこれの確率で取る、と言う形で観測される。しかし、この観測される分布は、色々な混合状態に対応していて、区別ができない。区別するにはどうするか、と言うと、密度行列として表すことで解決する。解決すると言うことは、2本のベクトルで書けていたものが、正方行列に相当するたくさんの情報を持つものとして表して区別すると言うことである。しかし、物理観測では、区別がつかないので、この区別されて異なる密度行列から、同一の確率分布が観察されるべきである。この情報が落ちてしまう、観測確率がTr(\rho A)である。区別されるべきだが、観測するとトレースしかわからない、と言うところで情報が落ちている
      • 密度行列はnxnなので情報量は多いが、ランクを考えると、ランクが1のこともあるし、nのこともある。ランクが1の行列は、成分数こそnxn個あるが、n次元ベクトルのouter積になっているもののことであるから、n個の値で決まる。このような密度行列は純粋状態に対応する密度行列になっている、と言う性質もある
      • 密度行列とはそんな役どころのもの(らしい)
  • 2 量子分解
    • 実確率変数について考える。モーメント列が得られた時にどうするかと言う話
    • モーメント列を扱うための「直交多項式」があると便利
      • 確率測度\muのモーメントのためにある多項式列なので、「\muに付随する直交多項式」と呼ばれる
      • モーメント列を扱うにはx^0=1,x,x^2,x^3,...が扱いたい。このxのk次単項式そのままを使うと、単項式関数同士が直交関係にないので、使いにくい。そこで、直交多項式の系列を作りつつ、モーメント列を扱うことができるような仕組みが作りたくなる。そんな話
    • ベクトルの集合から直交ベクトル集合を作る方法にグラム・シュミットの直交化法こちらがある。順番に単位ベクトルを作る、次の単位ベクトルを作るにあたって、それまでに登録された単位ベクトルと直交しない成分を差し引くことで、「残り成分」を追加するべき単位ベクトル方向にする、と言う方法である
    • これを関数について行えば、直交関数集合が取れる
    • 直交多項式は、ヤコビ係数列と呼ばれる二種類の係数列に情報を持たせることができるのだが、そのヤコビ係数列が「きれい」な直交多項式にチェビシェフ多項式と呼ばれるものがある。これは三角関数の位相を整数倍した関数が、位相1倍の三角関数多項式となっていることを示した多項式で、ヤコビ係数列がキレイ
    • ヤコビ係数列\{\alpha_n\},\{w_n\}は、次の3項間漸化式の係数でもある
      • P_0(x)=1,P_1(x) = x- \alpha_1,xP_n(x) = P_{n+1}(x) + \alpha_{n+1} P_n(x) + w_n P_{n-1}(x)
      • ||P_0(x)|| = 1, ||P_n(x)|| = \sqrt{\prod_{i=1}^n w_i}
      • \alpha_1は期待値で、w_1は分散になってもいる
    • モーメント列から確率測度・確率密度を逆算するのは、一般に大変。な、の、で、うまく逆算できるものを作って見ようと考えてみる。モーメント列そのものからの出発もちょっと面倒なので、モーメント列とヤコビ係数列とが1対1対応であることを利用して、ヤコビ係数列から確率密度を逆算してみる。さらに、制約を課して、ヤコビ数列の自由度をぐいっと抑えてやることにする。その例として、平均を0に指定(ここをパラメタ指定することもあるようだ)、分散には自由度を与えて指定、(したがって、ヤコビ係数列の第1成分がそれぞれ決まる)、その上で、ヤコビ係数列のそのほかの値は、一定にする(自由度2)。このような制約のきついヤコビ係数列に対して、決まる確率密度分布が自由マイクスナー分布。結局、分散pと、ヤコビ係数列の大多数の値を固定的に指定するa,qとの3変数(平均をパラメタ指定する場合は4変数)で決まるのがマイクスナー分布(参考)
    • 相互作用フォック空間というものが出てくる
      • 2つのヤコビ係数列が両方、登場する関係、というような意味合いで「相互作用」と称するのだと思う
      • そもそも、ヤコビ係数列は、モーメント列を扱うにあたって登場した関数列1,x,x^2,x^3,...から直交関数列P_i(x)を作ることと関係していた
      • 今、ヒルベルト空間に正規直交基底を取ることを考える。このヒルベルト空間正規直交基底は、ヤコビ数列と関係する。直交基底のそれぞれはベクトルのようにも見えるし、(無限次元)ヒルベルト空間だと、関数のようにも見える。直交関数列なら、P_i(x)もそうだったから、このヒルベルト空間に取らんとする正規直交基底は直交関数列P_i(x)と関連の深いもののように見える
      • このヒルベルト空間正規直交基底の要素間の関係をヤコビ係数列を用いて結びつけるにあたり、3つの線形作用素B^+,B^-,B^oを用いれば良いらしい。その時に気にするのは、||P_n(x)|| = \sqrt{\prod_{i=1}^n w_i}が関係する
      • いずれにしろ、ヒルベルト空間正規直交基底が、ヤコビ係数列に3つの線形作用素を追加することで得られ、それは、モーメント系列のための直交関数列の影武者のような存在だと言えそうだ
      • 実際、この直交関数列P_i(x)ヒルベルト空間の正規直交基底は「等距離作用素」と呼ばれるもので対応づけされる
      • 結局、ヤコビ係数列が与えられた時に、そこから、ヒルベルト空間と、正規直交基底と、3つの線形作用素(生成作用素と消滅作用素と保存作用素という名がそれら3つにはついている)
      • 正規分布やベルヌーイ分布などが、この相互作用フォック空間に「真空ベクトル(ヒルベルト空間の正規直交基底の第1基底)\Psi_0」を組み合わせて得られる「相互作用フォック確率空間」の例になっている
        • \int_{-\infty}^{\infty} x^m \mu(dx) = < P_0, Q^m P_0 >  =  <\Psi_0, (B^+ +B^o + B^-)^m \Psi_0>
      • ただし、単純な実確率変数の場合2つのヤコビ係数列のうち、片方は0で、もう片方も、ごく単純(1,2,3,...,とか、0,1,0,1,...とか、1,1,1,1...とか)
  • 3 代数的グラフ理論
    • 隣接行列
    • 隣接行列を置換行列でサンドイッチすることは頂点IDの付け方の変更に相当し、グラフとしては同一のものを表している
    • 隣接行列の冪乗に係数をかけて足し合わせてできる行列全体は隣接代数をなす→行列の冪を考えてモーメントを取るあたりで、量子確率的
    • 隣接行列は特性多項式を持つ
    • パスグラフというのは、1本道状のグラフ。パスグラフの長さを伸ばしていくと、グラフの系列ができるが、それに対応して特性多項式の系列もできる。このパスグラフの特性多項式の系列は第二種チェビシェフ多項式を用いて表現できる
    • グラフは行列で、それが直交多項式と関係する
    • 量子確率論では、行列からモーメント列が出て、直交多項式があり、ヤコビ係数列が出てきた。その関係と絡んでくる話をしているのだと思われる
  • 4 スペクトル・グラフ理論
    • グラフのスペクトルは、隣接行列の(正の固有値)の昇順列と、それぞれの固有値の個数のベクトルとのペアで表すことが多い
    • グラフの固有値のところにデルタ関数があるとみなせば、グラフのスペクトルは、デルタ関数がぽつぽつと立った「確率分布」となる。これがスペクトル分布
    • スペクトル分布を代数的確率空間で扱うことが論じられる
    • 代数的確率空間では、ヒルベルト空間直交基底を使って議論したが、それは、グラフのある頂点をヒルベルト空間直交基底の一つの基底である真空状態ベクトルに対応させたときに相当し、モーメントが定まる。このモーメントは、指定した頂点を出発して自身に戻る歩道の個数になっている
    • グラフの隣接行列、そのべき乗が作る接続代数が何を表しているかというと、真空状態を基点とした、ヒルベルト空間直交基底が、グラフ距離ごとに頂点をグループ分けすることに相当し、B^+,B^-,B^o的な表現と対応する(らしい)こと
    • このようなグラフのスペクトル分布を量子確率空間的に扱い、グラフを分解して考えることは、規則的なグラフにおいてその漸化式や、真空状態、ヤコビ係数列が調べられている。