LoginSignup
0
1

More than 3 years have passed since last update.

【Python演算処理】NetworkXライブラリを導入する。

Last updated at Posted at 2021-04-08

R時代にはiGraphパッケージを使ってました。
Rとigraphを使ったネットワーク解析と可視化

pythonではNetworkXライブラリを使う様です。早速、自分のMacintoshにインストールしてみました。
【図解】Python NetworkXの使い方 | ネットワーク分析・可視化
【Python】NetworkX 2.0の基礎的な使い方まとめ
[python] Macにpygraphvizをインストールする

とりあえず以下の投稿の図示の差し替えに挑戦したいと思います。
【数理考古学】とある実数列の規定例③オイラーの等式e^πi=-1が意味するもの?

0次元(Zero Dimension)

(それ自体は観測対象となり得ない)観測原点(Observation Origin)$0$と観測限界およびその向こう側(Observation Limit)$\infty$の間に「何もない」状態から出発する。群論(Group Theory)でいう空環概念(Empty/Nullary Ring Concept)に対応し、その(Element)は空となる。
【初心者向け】群論概念②空環から整数環へ。

空環概念(Empty/Nullary Ring Concept)は「空和概念(Empty/Nullary Sum Concept)」の規約と「空積概念(Empty/Nullary Product Concept)」の規約の統合結果である。

①ここでいう「空和概念(Empty/Nullary Sum Concept)の規約」とは、群論(Group Theory)上における、空集合(Empty/Nullary Set)$\emptyset_n(n=0)=()$について「0個の因子を足し合わせた演算結果集合(Operation Result Set)で、加法単位元(Additive Identity)0*に等しい*(():=0)」とする規約をいう。

  • 二項演算(Binary Operation)のうち、加減算(Addition and Subtraction)すなわち加法単位元(Additive Identity)$0+Α+Β(Α+(-Β))$においては任意の元(Any Element)$Α_n(n=0)()=Β_n(n=0)()=Γ_n(n=0)()=0$なので結合則(Associative Law)0+(Α+Β)+C+…=0+Α+(Β+C)+…も交換則(Commutative Law)0+Α+Β+…=0+Β+Α+…も成立し、その演算結果は閉じている(演算の都度0=()に戻る)。

②ここでいう「空積概念(Empty/Nullary Sum Concept)の規約」とは、群論(Group Theory)における、空集合概念(Empty/Nullary Set)$\emptyset _n(n=0)=()$について「0個の因子を掛け合わせた演算結果集合(Operation Result Set)で、乗法単位元(Multiplicative Identity)1*に等しい*(():=1)」とする規約をいう。

  • 二項演算(Binary Operation)のうち、乗除算(Multiplying and Dividing)すなわち乗法単位元(Multiplicative Identity)$1×Α×Β(Α×(1/Β))$においては任意の元(Any Element)$Α_n(n=0)()=Β_n(n=0)()=Γ_n(n=0)()=1$となるので結合則(Associative Law)1×(Α×Β)×C+…=1×Α×(Β×C)×…も交換則(Commutative Law)1×Α×Β×…=1×Β×Α×…も成立し、その演算結果は閉じている(演算の都度1=()に戻る)。
  • 二項演算(Binary Operation)のうち、冪算(Exponentiation)それ自体こそ分配法則や交換法則を満たさないものの、その計算範囲自体は上掲の演算に内包され、自明の理として演算結果も同じ範囲で閉じている($…A^2=A×A,A^2=A,A^0=\frac{A}{A}=1,A^-1=\frac{1}{A},A^-2=\frac{1}{A×A},…・$)。

③この時点ではあくまで空集合$\emptyset _n(n=0)()=(加減算における単位元)0=(乗除算における単位元)1$と規約されるだけで$\emptyset _n(n=2)=(0,1)$が成立する訳ではない点に注意されたい。

  • 実際、単元集合(Singleton)/単位集合(Unit Set)$Α_n(n=1)=(0)$及び$Β_n(n=1)=(1)$、さらには二つを合算した集合$Γ_n(n=2)=(0,1)$全てが空環/空群$\emptyset(n=0)=()$と異なりそれ自体は群も環も構成しない。

まるで禅問答の様ですが、この概念を幾何学的イメージに置き換えたのが以下。有向グラフ(Directed graph)で表すと「観測者側からの観測対象に対する一方的観察」と図示される点が重要。

空積概念(Empty/Nullary Sum Concept)

  • 観測限界を点と置いた場合、(0~$\infty$の範囲に渡る)観測原点との距離$x$は、何倍にしても何分の1にしても値は変わらない。
  • ただし例外的に$\frac{x}{x}=1$となり、これが乗法単位元(Multiplicative Identity)の概念の出発点になる。

tmpja7jjltg.png

import networkx as nx

G = nx.DiGraph()
G.add_edge("Observation Origin(0)","Observation Limit(∞)")
nx.nx_agraph.view_pygraphviz(G, prog='fdp') 

空和概念(Empty/Nullary Sum Concept)

  • 観測限界を(0~$\infty$の範囲に渡る)観測原点との距離$x$を半径とする円弧/球面と置いた場合、それをどんなに足し合わせても値は変わらない。
  • ただし例外的に$x-x=0$となり、これが加法単位元(Additive Identity Identity)の概念の出発点になる。

tmpog2lnpsb.png

import networkx as nx

G = nx.DiGraph()
G.add_edge("Origin(0)","Limit(01=∞)")
G.add_edge("Origin(0)","Limit(02=∞)")
G.add_edge("Origin(0)","Limit(03=∞)")
G.add_edge("Origin(0)","Limit(04=∞)")
G.add_edge("Origin(0)","Limit(05=∞)")
G.add_edge("Origin(0)","Limit(06=∞)")
G.add_edge("Origin(0)","Limit(07=∞)")
G.add_edge("Origin(0)","Limit(08=∞)")
G.add_edge("Origin(0)","Limit(09=∞)")
G.add_edge("Origin(0)","Limit(10=∞)")
nx.nx_agraph.view_pygraphviz(G, prog='fdp') 
  • この状態はある意味、統計学における「統計対象に値しない名義尺度(Nominal scale, Stanley Smith Stevens,1946年)、あるいは仮説検定において棄却される帰無仮説、すなわち「ここで証明したい事は証明不可能である」とする論拠に対応する。まさしく「(数理処理可能な有意味水準を超えるデータは)存在しない」状態の数理化という訳である。
    確率変数とは
    確率変数の尺度
    帰無仮説 (null hypothesis)

0.5次元(0.5 Dimension)

次元抽出や中心割り出しが可能そうな有望な観測結果集合(Observation Result Set)が得られて初めて「統計科学的/確率論的アプローチ」が可能となる。最初の評価軸であるから、当然それはX軸時間軸(t軸)の形で与えられる。

tmpsppviz17.png

import networkx as nx

G = nx.DiGraph()
G.add_edge("Observation Origin(0)","Elements(0<x<∞)")
G.add_edge("Elements(0<x<∞)","Observation Limit(∞)")
G.add_edge("Elements(0<x<∞)","Observation Origin(0)",)
G.add_edge("Observation Limit(∞)","Elements(0<x<∞)")
nx.nx_agraph.view_pygraphviz(G, prog='fdp') 

tmp93bjyv9h.png

import networkx as nx

G = nx.DiGraph()
G.add_edge("Start(0)","Observation Result set(0<=t<=T)")
G.add_edge("Observation Result set(0<=t<=T)","End(T)")
G.add_edge("Observation Result set(0<=t<=T)","Start(0)")
G.add_edge("End(T)","Observation Result set(0<=t<=T)")
nx.nx_agraph.view_pygraphviz(G, prog='fdp') 

統計の対象となる実データには当然(観測不可能な)両極限は現れず、最大値(Max)と最小値(Min)がそれが推察可能な形で得られるとも限らない。
tmpjjlbvf7n.png

import networkx as nx

G = nx.DiGraph()
G.add_edge("Min","Elements(Min<=x<=Max)")
G.add_edge("Elements(Min<=x<=Max)","Max")
G.add_edge("Elements(Min<=x<=Max)","Min",)
G.add_edge("Max","Elements(Min<=x<=Max)")
nx.nx_agraph.view_pygraphviz(G, prog='fdp') 

この辺りのニュアンスも含め、確率変数の尺度(Stanley Smith Stevens,1946年)では「データ間の順位にのみ意味がある順位尺度(Ordinal scale)から「データ間の差にのみ意味がある間隔尺度(Interval scale)にかけてが該当する。
確率変数の尺度

1次元(1.0 Dimension)

中心検出に成功したら、いよいよこれを単位元(Identity Element)として反元(Inverse Elements)を設定し、(Group)を定義する事が可能となります。確率変数の尺度(Stanley Smith Stevens,1946年)では比例尺度(Proportional Scale)に該当。これ以降、関数列(Function Sequance)を含む演算結果集合(Operation Result Set)が、観測結果集合(Ovsevation Result Set)と矛盾しない限り、その(Famiry)を代表する形となるのです。
確率変数の尺度

加法実数群(Additive Real Group)の場合

【数理考古学】とある実数列の規定例①等差数列から加法整数群へ
10進法(Decimal System)、すなわち10を法とする加法整数群(Additive Integer Group)の剰余類(Residue Class)の多層添字化によって理論上、小数点下を含む実数全体を扱える様に拡張された両側無限数列(Both-sides Infinite Sequance)。
tmpi_zdfl10.png

import networkx as nx

G = nx.DiGraph()
G.add_edge("Observation limit(-∞)","Inverse(-∞<x<0)")
G.add_edge("Inverse(-∞<x<0)","Identity(0)")
G.add_edge("Identity(0)","Elements(0<x<+∞)")
G.add_edge("Elements(0<x<+∞)","Observation Limit(+∞)")
G.add_edge("Inverse(-∞<x<0)","Observation limit(-∞)")
G.add_edge("Identity(0)","Inverse(-∞<x<0)")
G.add_edge("Elements(0<x<+∞)","Identity(0)")
G.add_edge("Observation Limit(+∞)","Elements(0<x<+∞)")

nx.nx_agraph.view_pygraphviz(G, prog='fdp')

乗法実数群(Multiplicative Real Group)の場合

【数理考古学】とある実数列の規定例②等比数列から乗法群へ
上掲の加法実数群(均等尺)を$-\infty→0,0→1,+\infty→\infty$に射影した片側無限数列(One-sides Infinite Sequance)。均等尺上の乗除算が加減算、冪乗算が乗算に置き換えられる。
tmpapj3itug.png

import networkx as nx

G = nx.DiGraph()
G.add_edge("Observation limit(0)","Inverse(0<x<1)")
G.add_edge("Inverse(0<x<1)","Identity(1)")
G.add_edge("Identity(1)","Elements(1<x<+∞)")
G.add_edge("Elements(1<x<+∞)","Observation Limit(+∞)")
G.add_edge("Inverse(0<x<1)","Observation limit(0)")
G.add_edge("Identity(1)","Inverse(0<x<1)")
G.add_edge("Elements(1<x<+∞)","Identity(1)")
G.add_edge("Observation Limit(+∞)","Elements(1<x<+∞)")

nx.nx_agraph.view_pygraphviz(G, prog='fdp')

おやおや? 正負の概念が導入され、無限遠点$\infty$が無限大$+\infty$と無限小$-\infty$に引き裂かれると同時に、観測原点(Observation Origin)が座標上から消えてしまいました。このタイミングで偶奇(Parity)の概念は導入されるのは決して偶然でなく、どうやら「観測原点と観測対象の関係」もまた偶数系(Even System)と奇数系(Odd System)に引き裂かれてしまった様なのです。

そんな感じで以下続報…

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1