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()
を指定すると、各項の係数のみを得ることができる。
利用例
- 近似対象データ
基本的にはExcelで用意されている関数LinEstと同様に扱うことができる。
近似結果を格納するセルに以下の数式を入力してCtrl
+Shift
+Enter
キーを押下する。^{1, 2, 3}
と記載しているように3次多項式での近似を表している。
=LINEST($C$7:$C$23,$A$7:$A$23^{1,2,3},TRUE(),TRUE())
この行列において、
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)