相関行列、偏相関行列の計算(答え合わせ)は通常Rを使うが、今回はPythonでやってみる。
目的変数と説明変数
弊社アプリの結果画面
単相関
偏相関
PythonはQGISのPythonコンソール上で実行
実行するスクリプト
import numpy as np import scipy as sp from scipy import linalg def partialcorrcoef(c): inv_cor = linalg.inv(c) rows = inv_cor.shape[0] regu_1 = 1 / sp.sqrt(sp.diag(inv_cor)) regu_2 = sp.repeat(regu_1, rows).reshape(rows, rows) regu_1 = 1 / sp.sqrt(sp.diag(inv_cor)) regu_2 = sp.repeat(regu_1, rows).reshape(rows, rows) pcor = (-inv_cor) * regu_1 * regu_2 sp.fill_diagonal(pcor, 1) return pcor data=[ [520000,498000,447000,451000,608000], [160,120,250,105,175], [284,162,169,163,261], [400,600,600,600,600] ] C = np.corrcoef(data) PC = partialcorrcoef(C)
スクリプトを実行した後に相関行列(C)、偏相関行列(PC}を表示
計算結果は一致したのでアプリには問題はなし