📢 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>