相関係数の計算公式について教えてください

n00=76; n10=4; n01=9; n11=1;
phi = (n11*n00 - n10*n01) / sqrt( (n10+n11)*(n00+n01)*(n01+n11)*(n00+n10) )
/* = 0.068599434057... */
( 出典: https://eloquentjavascript.net/04_data.html ページ中段にてリス(squirrel)とピザ(pizza)の相関係数 "phi coefficient (ϕ)" を求めています )
統計変数が真偽値 (true, false) をとる場合は 数値化 (true→1, false→ 0 ) して処理したらよい
その程度の知識はあったものの こんな簡単な式になるとは知りませんでした

定義通りに計算すると
( ただし スケールしても相殺されるので true = → +1, false → -1 の対応にした )
N = n00+n10+n01+n11;
Mx = (+n10+n11 -n00-n01)/N;
My = (+n01+n11 -n00-n10)/N;
/* Sx = sqrt( (n10+n11)*(+1 - Mx)^2 + (n00+n01)*(-1 - Mx)^2 ); Sy = ... */
Sx = sqrt( (n10+n11)*(n00+n01)^2 + (n00+n01)*(n10+n11)^2 ) * 2/ N;
Sy = sqrt( (n01+n11)*(n00+n10)^2 + (n00+n10)*(n01+n11)^2 ) * 2/N;
phi = (+n00*(-1-Mx)*(-1-My)+n10*(+1-Mx)*(-1-My)+n01*(-1-Mx)*(+1-My)+n11*(+1-Mx)*(+1-My) ) / (Sx*Sy)
/* = 0.068599434057... */
合ってはいるもののどういう式変形で冒頭の式になるのかさっぱり分かりません
数式処理ソフトに頼らず何かスマートな方法があれば教えてください (きっとありますよね?)