「なぜ経済予測は間違えるのか」読んだ

なぜ経済予測は間違えるのか?---科学で問い直す経済学

著者はカナダ出身のオックスフォード大学の応用数学者,デイヴィッド・オレル.

本書は一貫して,複雑系科学の研究者の彼が新古典派経済学をイデオロギーだと一刀両断する.

新古典派経済学では一般均衡モデルにより数学的手法,すなわち凸解析,最適化やゲーム理論を用いた解析がなされるが,現実の経済は売り手と買い手には非対称な情報格差が存在し,予測困難な気象現象にあまりにも大きく左右され,各個人の幸福感のような量化困難な質的指標が蔑ろにされ,また(少々穿った見方をすれば)この業界には健全な倫理基準がないのにもかかわらず,新古典派経済学は大学の経済学部では今なお教えられてきている.

特に従来の数理モデルが,いわば机上の空論でこれからは応用数学者による新しい数理モデル,新しい経済学が必要だと著者は説く.

経済学は「賭け」の研究から始まった.これはブレーズ・パスカルの研究に端を発する.今でいう「格子モデル」だ.

その後,進化論を発表したチャールズ・ダーウィンの従兄弟にあたるフランシス・ゴルトンが正規分布の布教を始めた.正規分布は至る所に現れる.例えば,日本人男性の身長の度数分布は正規分布に従う.

これを金融商品のリスク計算に役立てようとするのは自然な流れだった.

正規分布によるリスク計算はしばらく順調だった,そう,ブラック・マンデーその日までは.

それはいわばある日突然やってきた地震のようだった.これは冗談ではなく,実際に価格変動と地震は酷似していた.

figure

価格変動は地震と同じような動きを示す.

正確には価格変動は正規分布には従っていない.べき分布だ.

ここからは複雑系科学の方向からいくつかの結果がある.

例えばシェルピンスキーのギャスケットには辺長対個数がべき乗則に従う.このようにフラクタル(自己相似的な)図形にはべき乗則が多く現れる.

また,ネットワーク理論ではスモールワールド・スケールフリーネットワークで次数分布がべき乗則に従う.バラバシ・アルバートモデルである.

人類はべき乗則な事象の発生を予測出来るか,が間違いなく21世紀の科学に問われている事の一つだ.それは地震が統計的に予測できる日かもしれない.(地学的な「予知」ではない)

だから,新古典派経済学者,ならびに金融分野の人間はもっと謙虚にすべきだ.

特に,間違った分布,正規分布から計算したリスクをCDOのようなリスク分散商品を多くの人に売りつけた.それはいわば「病気の家畜の肉を細かくして全体に拡散するソーセージ工場」のようなものだ.

そして,実際に大暴落が起こると,AIGのように政府に泣きついておきながら,重役には高額のボーナスが支払われる.同業他社へ行かれると困るからだ.この業界は政府との繋がりも強く,どう転んでも彼らは損をしないことになる.

FRBのような自浄作用は不可欠だ.医者にも技術者にも存在するような倫理規定が,金融分野では健全な倫理基準が育っていない.

そもそも経済学は利己的な人間のみから構成されることを大前提としている.経済学の原理として鞘取引が市場を適正にする,というのは一見正しそうであるが,倫理的には「安い卸売業者に適正価格を教えてあげる」ことのはずだ.

報酬が過剰で社会的には生産性が低い,この金融という分野はこれからもますます影響力を増していくだろう.

広告

C言語ポインタ完全制覇を読んだ

久々の読書記録.

今回は「本を読みながら,LaTeXで自分なりにまとめておく」というライフハックを初めて実践しました.

ポインタからメモリ管理まわりに関して,凄く詳しく徹底的に書かれていて,逆にこっちが引くぐらい.Cの入門書を1冊終えて,2冊目あたりにおすすめです.

ただし,何回も同じことを繰り返すところがあり,そこは一長一短だと思います.(大事なことなので二回言いました的な)

ここにも,まとめておきます.

  • p[i]は*(p+i)のシンタックスシュガー(人間の可読性のために実装されたもので意味は同じ)→p[i]とi[p]は同じ,でも意味不明なので書くな!
  • 式の中では「型Tの配列」は「型Tへのポインタ」に常に置き換えられ,「関数」は「関数へのポインタ」に自動的に変換される
  • 復習ですが,
    • 間接参照演算子*はポインタをオペランドとして受けとり,その指し示すオブジェクトまたは関数を返す.*が返す式の型は,受け取ったオペランドの型からポインタを 1 つ剥がした型.
    • アドレス演算子&はオブジェクトをオペランドとして受けとり,それを指すポインタを返す.その型はオペランドの型にポインタを 1 つ付け加えた型になる.
    • 添字演算子 [] はポインタと整数をオペランドとして受け取る.p[i] は*(p + i) のシンタックスシュガーで,返す型は p の型からポインタを 1 つ剥がした型.
    • 関数呼び出し演算子 () は「関数」ではなく「関数へのポインタ」をオペランドとする

これを頭に入れて初めて,Cの宣言が「解読」できます.なお,英語の知識は仮定します.

int (*func_p)(double); を解読してみます.

  1. まず最初に,識別子に注目.
    func p is
  2. 括弧があるので,次は*に注目.
    func p is pointer to
  3. 関数を意味する () に行きます.引数は double.
    func p is pointer to function(double) returning
  4. 最後に,型指定子 int に行きます.
    func p is pointer to function(double) returning int
  5. 日本語に訳す.
    func p は,int を返す関数 (ちなみに引数は double) へのポインタ

int hoge[3][5]; は

  1. hoge の型は「int の配列 5 ,の配列 3」である.(要素数を配列の直後に示す)
  2. 式の中なので配列はポインタに読み替えられる.よって,hoge の型は「int の配列 5 へのポインタ」
  3. hoge[i] は*(hoge + i) のシンタックスシュガーである.

    (a) ポインタに i 加算することは,(そのポインタが指す型のサイズ)× i だけ,ポインタを進めることを意味する. hoge の指す先の型は「int の配列 5」であるから,hoge + i では,sizeof(int[5]) * i だけ進む.

    (b) *(hoge + i) の*により,ポインタが 1 つ剥がされる.*(hoge + i) の型は「int への配列 5」となる

    (c)式の中なので,配列がポインタに読み替えられる.*(hoge + i)の最終的な型は「intへのポインタ」となる.

  4. (*(hoge + i))[j] は,*((*(hoge + i)) + j) に等しい.したがって,(*(hoge + i))[j] は「int へのポイ ンタに j だけ加算したアドレスの内容」であり,型は int である.

最後に,int atexit(void (*func)(void)); の例も.

  1. atexit is
  2. atexit is function() returning
  3. atexit is function(func is) returning
  4. atexit is function(func is pointer to) returning
  5. atexit is function(func is pointer to function() returning) returning
  6. atexit is function(func is pointer to function(void) returning void) returning
  7. atexit is function(func is pointer to function(void) returning void) returning int

Wikipedia – 糖衣構文 も少し参考になります.

2次曲線上の有理点

岩波講座 現代数学の基礎の 数論1 (加藤和也)を少し参照する機会があったのでメモ.

この本では,

2次曲線 ax^2+by^2=c\ \ \ (a,b,c\in \mathbb{Q})に有理点(x,yの値が共に有理数の点)は存在するか?

という問題に照準を絞って,前半が書かれている.

割と重い本なのであるが,ここはサクッと備忘録.

まず,両辺をcで割って,ax^2+by^2=1について考察すれば十分なので,以下そうする.

そして,定理2.3 (p.79-83)

ax^2+by^2=1となる有理数x,yが存在するための必要十分条件は,(a,b)_{\infty}=1かつ,(a,b)_{p}=1が全ての素数pについて成立する.

ここで,(a,b)_{v} (vは素数または\infty )はHilbert記号というそうな.その定義は次のとおり.

(a,b)_{\infty}=1 (a>0 または b>0 のとき), -1 (a<0 かつ b<0 のとき)

p\neq 2のとき,(a,b)_{p} = (\dfrac{r\ \ {\rm mod}\ p}{p})

(a,b)_{2} = (-1)^{\frac{r^2-1}{8}}\cdot (-1)^{\frac{u-1}{2}\frac{v-1}{2}}

 ここで,平方剰余記号が出てきました.復習しましょう.
平方剰余記号の定義は
\exists x s.t. x^2 \equiv a \Rightarrow (\dfrac{a}{p}) = 1
具体的には,次のように計算します.
x^2 \equiv a\ \ ({\rm mod}\ p) \Rightarrow (\dfrac{a}{p})=a^{\frac{p-1}{2}}
そして,rとuとvの説明をします.
r=(-1)^{ij}a^i b^j = (-1)^{ij} u^i v^j
ここで,i,jは a=p^i u, b=p^j v\ \ (i,j\in \mathbb{Z}, u,v\in \mathbb{Z}_{p})
ここの\mathbb{Z}_{p}\mathbb{Q}の部分環で,定義は
\mathbb{Z}_{p}=(\dfrac{a}{b}\ \ {\rm for}\ a,b\in \mathbb{Z}) (ただし,bはpで割れない)です.
…分かりました!?
ここではx^2+y^2=3に有理点が存在しないことの証明をして,お茶を濁そうと思います.
まず,両辺を3で割り,\frac{x^2}{3}+\frac{y^2}{3}=1となる.
定理2.3を利用するために,Hilbert記号を調べる.
(\frac{1}{3},\frac{1}{3})_{\infty}=1
そして,p=3のとき,
a=b=3^{-1}\cdot 1(なぜなら,i=j=-1, u=v=\frac{1}{1})
r=(-1)^{(-1)(-1)}\cdot 1^{-1} \cdot 1^{-1} = -1
よって,
(\frac{1}{3},\frac{1}{3})_{3}=(\dfrac{-1}{3})=(-1)^{\frac{3-1}{2}}=-1\neq 1
これにより,有理点は存在しないことが分かる.