目次

Matlab

Matlab は行列演算ソフト

$$ \begin{aligned}AX=&B\\ X=&A^{-1}B\end{aligned} $$

2x + 5y = 12
3x + 4y = 11

>> A = [2 5; 3 4]
>> B = [12, 11]
>> X = inv(A)*B

$$ \begin{aligned}\left( \begin{matrix}2&5\\ 3&4\end{matrix} \right) \left( \begin{matrix}x\\ y\end{matrix} \right) =&\left( \begin{matrix}12\\ 11\end{matrix} \right) \\ \left( \begin{matrix}x\\ y\end{matrix} \right) =&\left( \begin{matrix}2&5\\ 3&4\end{matrix} \right)^{-1} \left( \begin{matrix}12\\ 11\end{matrix} \right) \end{aligned} $$

値の推定

pinv function でやっていること

$$ Y=\beta_{1} \times \text{Age} +C $$

$$ \left[ \begin{matrix}Y_{1}\\ Y_{2}\\ \vdots \\ Y_{n}\end{matrix} \right] =\left[ \begin{matrix}\text{Age}_{1} &1\\ \text{Age}_{2} &1\\ \vdots &\vdots \\ \text{Age}_{n} &1\end{matrix} \right] \left[ \begin{matrix}\beta \\ C\end{matrix} \right] $$

$$ \begin{aligned}Y=&XB\\ X^{T}Y=&X^{T}XB\\ \left( X^{T}X\right)^{-1} X^{T}Y=&B &\end{aligned} $$

>> B = pinv(X) * Y   % Xは患者個別データ(年齢),Yはボクセル値,Bが求めたい係数
>> y = XB  % 上記操作で B が求められたので,XBをプロットできる
>> plot(age, y)  % y = XB に基づいて回帰直線が引かれる

重回帰も同じ要領

$$ Y=\beta_{1} \times \text{Age} +\beta_{2} \times \text{Sex} +\beta_{3} \times \text{TIV} +C+\epsilon $$

Matlab の文法

%コメントアウト
%%2つ続くとセクション扱いになる

セミコロンの使い方

  1. 行列を表す時に改行する
    • [2 4; 3 5]
    • $ \left( \begin{matrix}2&4\\ 3&5\end{matrix} \right) $
  2. コマンド結果を出力しない

コロンの使い方

  1. 数字a:数字b:数字c とすると,a から c まで b 刻みで連続する値を意味
    • 1:2:10 → 「1 3 5 7 9」 と同義
  2. 単独で使うことで,全行・全列を指定する
    • A(:,2) → 全行 2 列目

参考文献

1)
Nemoto K, Shimokawa T, Fukunaga M, et al. Differentiation of schizophrenia using structural MRI with consideration of scanner differences: A real-world multisite study. Psychiatry Clin Neurosci. 2020;74(1):56-63. DOI