2021/06/01

[note] excel dynamic range linest 動態範圍回歸

先前因為工作,摸了好久沒看的數值分析,上次用都研究所課程的時候了...老本科...學GPS的都會...。
因為某公司在使用說明內說只能用迴歸分析器做,覺得很蠢,想說自己用excel矩陣公式刻一個,
就用excel的indirect刻了一個動態調整範圍的matrix,去算最小平方法,
結果Google可變範圍矩陣運算還要配合自定變數"=evaluate"來執行,
導致整個excel sheet被判定為帶巨集的文件,相當不方便。

最近重看了一次,發現2013後的excel有個LineST,直接可以算最小平方法,
搭配offset可以直接完成我要的功能。乾。

##ReadMore##

用法大概是這樣:
=LINEST(OFFSET(Y1,0,0,YH,1),OFFSET(X1,0,0,XH,XW))
Y1 = Y matrix start reference,Y矩陣起點
YH = Y matrix height,Y矩陣高度
X1 = X matrix start reference,X矩陣起點
XH = X matrix height,X矩陣高度
XW = X matrix width,X矩陣寬度

要注意linest吐回來的參數,必須用矩陣輸入完成(ctrl+enter還ctrl+alt+enter)
吐回來的參數,以y=m1*x1+m2*x2+m3*x3+c,
假設餵進去的是(y,x1,x2,x3),吐回來是會是(m3,m2,m1,b)。一整個反邏輯。
判定XY矩陣寬高就看各人了。

參考:
https://support.microsoft.com/zh-tw/office/linest-%E5%87%BD%E6%95%B8-84d7d0d9-6e50-4101-977a-fa7abf772b6d
https://stackoverflow.com/questions/13827931/use-indirect-range-in-linest-formula
https://www.mrexcel.com/board/threads/linest-with-dynamic-range-using-offset-wont-spill.1125227/

沒有留言: