📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の2版が非表示) | |||
| 14行目: | 14行目: | ||
残差平方和 (RSS : Residual Sum of Squares) は、次式のように表される。<br> | 残差平方和 (RSS : Residual Sum of Squares) は、次式のように表される。<br> | ||
<math>RSS = \sum_{i=1}^n (y_{i} - (a x_{i} + b))^{2}</math> | <math>RSS = \sum_{i=1}^n (y_{i} - (a x_{i} + b))^{2}</math> | ||
または | |||
<math>RSS = \sum_{i=1}^n (y_{i} - \hat y_{i})^{2} \quad \because \hat y_{i} = a x_{i} + b</math> | |||
<math>(y_{i}, x_{i})</math> は実測データの点である。 | <math>(y_{i}, x_{i})</math> は実測データの点である。 | ||
<br> | <br> | ||
真値との誤差の2乗 <math>RSS^{2} = (y_{i} - \hat{y_{i}})^{2}</math> の総和が最小になれば、直線モデル(回帰直線)が最良になる。<br> | |||
この残差平方和を最小化するために、aとbに関する偏微分を0とおく。<br> | この残差平方和を最小化するために、aとbに関する偏微分を0とおく。<br> | ||
<br> | <br> | ||
| 30行目: | 33行目: | ||
<math> | <math> | ||
\begin{align} | \begin{align} | ||
a &= \dfrac{\sum_{i=1}^n {(x_i - \bar{x})(y_i - \bar{y})}}{\sum_{i=1}^n {(x_i - \bar{x})^{2}}} \\ | a &= \dfrac{\dfrac{1}{n} \sum_{i=1}^n {(x_i - \bar{x})(y_i - \bar{y})}}{\dfrac{1}{n} \sum_{i=1}^n {(x_i - \bar{x})^{2}}} \\ | ||
&= \dfrac{\sum_{i=1}^n {(x_i - \bar{x})(y_i - \bar{y})}}{\sum_{i=1}^n {(x_i - \bar{x})^{2}}} \\ | |||
&= \dfrac{C_{xy}}{\sigma_{x}^{2}} \\ | &= \dfrac{C_{xy}}{\sigma_{x}^{2}} \\ | ||
&= \dfrac{\mbox{ x と y の 共 分 散 }}{\mbox{ x の 母 分 散 }} | &= \dfrac{\mbox{ x と y の 共 分 散 }}{\mbox{ x の 母 分 散 }} | ||
| 240行目: | 244行目: | ||
<br> | <br> | ||
===== CMakeLists.txtを使用する場合 ===== | |||
<syntaxhighlight lang="cmake"> | |||
# Pkg-configを使用する場合 | |||
find_package(Eigen3 <Eigenライブラリのバージョン 例: 3.3> REQUIRED NO_MODULE) | |||
# Pkg-configを使用しない場合 (Eigenライブラリのインクルードパスを直接指定) | |||
# 例えば、Eigenライブラリを手動でダウンロードした場合は、EIGEN3_INCLUDE_DIRにパスを設定する | |||
# set(EIGEN3_INCLUDE_DIR "<Eigenのインクルードディレクトリ>") | |||
# include_directories(${EIGEN3_INCLUDE_DIR}) | |||
# Eigenライブラリとのリンク (find_packageを使用する場合) | |||
# add_executableコマンドの後 | |||
target_link_libraries(${PROJECT_NAME} PRIVATE | |||
Eigen3::Eigen | |||
) | |||
# ビルド設定 | |||
if(CMAKE_BUILD_TYPE STREQUAL "Debug") | |||
# デバッグビルド設定 | |||
add_definitions(-DEIGEN_INITIALIZE_MATRICES_BY_NAN) | |||
add_definitions(-DEIGEN_DEBUG) | |||
endif() | |||
# 最適化オプション | |||
if(CMAKE_BUILD_TYPE STREQUAL "Release") | |||
add_definitions(-DNDEBUG) | |||
if(CMAKE_COMPILER_IS_GNUCXX) | |||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native") | |||
endif() | |||
endif() | |||
# OpenMPサポートを追加 (オプション) | |||
# 行列演算の並列化に使用可能 | |||
# find_package(OpenMP) | |||
# if(OpenMP_CXX_FOUND) | |||
# target_link_libraries(my_program OpenMP::OpenMP_CXX) | |||
# endif() | |||
</syntaxhighlight> | |||
<br> | |||
===== Eigenライブラリの使用例 ===== | ===== Eigenライブラリの使用例 ===== | ||
行列計算ライブラリであるEigenライブラリを使用することもできる。<br> | 行列計算ライブラリであるEigenライブラリを使用することもできる。<br> | ||