LoginSignup
1
0

More than 5 years have passed since last update.

LibreOfficeで最小二乗近似

Last updated at Posted at 2015-06-27

LibreOfficeのCalcで最小二乗法による近似多項式の各項の係数を求める方法を記録する。

LinEst関数

LinEst(既知のy, 既知のx, 定数項, 補正)

既知のy 計測値などを入力する。1行もしくは1列の配列。
既知のx 既知のyと同じ行、もしくは列方向に並んだデータ。^{1, 2, 3}を付けることで1乗、2乗、3乗のベクトルを表す。
定数項 TRUE()/FALSE()で与える。TRUE()は定数項を計算することを示す。FALSE()は定数項を0とすることを示す。
補正 TRUE()は計算結果の詳細を返す。確実度であるR^2値を得るためにTRUE()を指定する。FALSE()を指定すると、各項の係数のみを得ることができる。

利用例

  • 近似対象データ
    • xデータ: A7:A23
    • yデータ: C7:C23
      にそれぞれ格納されているものとする。
      LinEst_data.png

基本的にはExcelで用意されている関数LinEstと同様に扱うことができる。
近似結果を格納するセルに以下の数式を入力してCtrl+Shift+Enterキーを押下する。^{1, 2, 3}と記載しているように3次多項式での近似を表している。

=LINEST($C$7:$C$23,$A$7:$A$23^{1,2,3},TRUE(),TRUE())

算出結果は次の通り
estimate_3.png

この行列において、
1行1列目: 3次の項の係数(0.05099148)
1行2列目: 2次の項の係数(-1.04515833)
1行3列目: 1次の項の係数(4.44312349)
1行4列目: 定数項(3.79586792)
3行1列目: R^2値(0.98690446)
である。

各項の係数を個別に取得する場合は、INDEX()関数を用いる。
1次の項の場合

=INDEX(LINEST($C$7:$C$23,$A$7:$A$23^{1,2,3},TRUE(),TRUE()), 1, 3)
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0