利用excel規劃求解做非線性迴歸

2014-03-31 9:46 pm
想請教一個非線性迴歸分析問題

假設一式子如下

f(X,Y) = a*X^b*(Y+c)

其中X,Y是變數,a,b,c是常數

已有100多個不同X,Y和f值數據,

請問excel的規劃求解可以做這樣的非線性迴歸嗎?要怎麼做?

還是有其他方法可以做到呢?

回答 (11)

2014-04-09 7:38 pm
✔ 最佳答案
f(X,Y) = a*X^b*(Y+c)

其中X,Y是變數,a,b,c是常數

已有100多個不同X,Y和f值數據,



我不會 Excel 的 "規劃求解".


要用 MLE 必須知道資料的機率分布.

事實上在統計上我們是假設依變數 Z 與自變數 X, Y 的
關係是 Z = f(X,Y,ε), 比較簡單的是假設 Z = f(X,Y)+ε, 有
時候會採用 Z = f(X,Y).ε, 其中 ε 是正值干擾因子, 而後
如前面意見所提, 做對數變換.

不過, 這個例子大概無論做什麼變換都是非線性的.

2014-04-02 12:44:41 補充:
假設模型是 Z = a*X^b*(Y+c) + ε

又假設 "最小平方法" 對這份資料是適當的, 也就是說 a, b, c
可以取使 Q(a,b,c) = Σ[Zi - a(Xi)^b(Yi+c)]^2 最小化.

若 Excel 的 "規劃求解" 可以解上列最小值問題, 那就套用吧.

否則, 通常可以考慮微分的方法, 將 Q(a,b,c) 分別對 a, b, c
求偏導數, 並令其為 0, 而得到三個方程式聯立, 用 Newton-
Raphson 的方法.

2014-04-02 12:46:08 補充:
上述方法不一定能成功, 一是 Q(a,b,c) 若不是 convex, 偏導數
為 0 只是極小的必要而非充分條件; 再者 Newton-Raphson 法
不一定收斂.

當然, 有其他直接找 Q(a,b,c) 最小值的數值方法. 細節可能要
請直接去找 "數值分析" 的書.

2014-04-02 12:49:39 補充:
就統計上來說, 是直接設 Z = a*X^b*(Y+c) + ε 而套用最小平方法, 或
者需要做變數變換 g(Z) = g(a*X^b*(Y+c)) + ε* 再套用最小平方法, 或
者需要做加權處理, 這仍需視資料而定.

2014-04-02 12:55:38 補充:
如果取對數, 也就是假設干擾項是乘上去而非相加的, 那就是
log(Z) = log(a) + b log(X) + log(Y+c) + ε*
這在計算上可能比上面假設 Z = f(X,Y) + ε 要好算一點, 也可能
比較容易收斂.

不過, 統計上當然不能為了好算就任意做變換, 只不過既然 Z
於 X, Y 的關係看來是相乘的 Z = h(X)k(Y), 那麼干擾項(誤差)
可能也是乘上去的. 而這樣的猜測是否接近事實, 需看資料而定.

2014-04-02 12:59:26 補充:
因此, 建議不妨考慮上述對數轉換模型, 用最小平方法估計 a, b, c,
而後再看殘差
e*_i = log(Zi) - log(a^) - b^ log(Xi) - log(Yi+c^)
的表現, 以評估此模型合適與否, 以及什麼模型可能較適切.

上面符號 a^, b^ 及 c^ 依次代表 a, b 及 c 之估計值.

2014-04-09 11:38:51 補充:
設 z = f(x,y) = a(x^b)(y+c), 則
log(z) = log(a) + b*log(x) + log(y+c)

假設資料模型是 Zi = f(Xi,Yi)*(Ui), 即
log(Zi) = log(a) + b*log(Xi) + log(Yi+c) + log(Ui)

以 A 取代 log(a), Ei 取代 log(Ui), 得
log(Zi) = A + b*log(Xi) + log(Yi+c) + Ei

考慮 最小平方法
Minimize Q(A,b,c) = Σ[log(Zi)-A-b*log(Xi)-log(Yi+c)]^2


其標準方程式為
Σlog(Zi) = n*A + b*Σlog(Xi) + Σlog(Yi+c)
Σ(log(Xi)*log(Zi)) = A*Σlog(Xi) + b*Σ(log(Xi))^2 + Σlog(Xi)*log(Yi+c)
Σlog(Zi)/(Yi+c) = A*Σ1/(Yi+c) + b*Σlog(Xi)/(Yi+c) + Σlog(Yi+c)/(Yi+c)

可用 Newton-Raphson 疊代法或其他方法求解.


事實上, 當 c 給定時, 解 A, b 是簡單的直線迴歸問題, 也就是說由
前2式可給出 A, b 的公式解; 而給定 A, b 時, 則用解單變數方程式
的方法解第3式的 c. 因此, 整個疊代過程是:
(0) 先給定 c 的初步猜測.
(1) 利用已有的 c 求 A, b.
(2) 利用上面的 A, b 解 c.
(3) 重複 (1)-(2) 至收斂到所需精確度宣告得解,
或達疊代次數上限宣告未收斂.



得出 A, b, c 之估計值後, 計算
log(Zi^) = A+b*log(Xi)+log(Yi+c)
Ei^ = log(Zi) - log(Zi^) = log(Zi) - A - b*log(Xi) - log(Yi+c)
畫 Ei^ 對 log(Zi^), 對 log(Xi) 或 X i, 對 log(Yi+c) 或 Yi 之 scatter plot,
看看有無明顯 pattern (如: 成某種趨勢線散佈, 或上下散佈幅度趨於
放大或趨於縮小.) 若無任何 pattern 存在, 表示以上假設之模型是可
接受的. 若有某種 pattern, 則需視具體情況再設法改善.










2014-05-30 5:05 pm
參考下面的網址看看

http://phi008780520.pixnet.net/blog
2014-05-04 5:58 pm
參考下面的網址看看

http://phi008780430.pixnet.net/blog
2014-04-30 11:05 pm
下面的網址應該對你有幫助

http://phi008780430.pixnet.net/blog
2014-04-29 4:32 pm
下面的網址應該對你有幫助

http://phi008780426.pixnet.net/blog
2014-04-28 4:14 pm
下面的網址應該對你有幫助

http://phi008780426.pixnet.net/blog
2014-04-27 11:09 pm
下面的網址應該對你有幫助

http://phi008780426.pixnet.net/blog
2014-04-24 2:02 pm
下面的網址應該對你有幫助

http://phi008780424.pixnet.net/blog
2014-03-31 10:19 pm
但是用ln f = ln a + b ln X + ln(Y + c)做線性迴歸好像得不到c值..!?

2014-03-31 16:48:30 補充:
抱歉,我對你說的MLE和 likeihood function沒有概念,

這方法是能夠算出全部資料最小平方法的a,b,c值嗎?
2014-03-31 10:03 pm
依你的模型,似乎你應該先考慮用對數變換寫成:

ln f = ln a + b ln X + ln(Y + c)

然後就可以用線性迴歸

Regress "ln f" on "ln X" and "ln(Y + c)"

2014-03-31 15:01:27 補充:
嗯,你說得對...

如果不用線性廻歸就要想其他辦法...

有否分布的假設,可否用 MLE?

Excel 的 Solver 都可以解 MLE,只要你有 likelihood function 就可以。

2014-03-31 17:48:02 補充:
不同~ MLE 估算法不是用最小平方處理的~

既然如此,我們再想想..

或許稍後 老怪物 大師 可以指導一下~

2014-04-07 16:41:29 補充:
請 老怪物 大師作答~!


收錄日期: 2021-05-04 01:55:23
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20140331000016KK03053

檢視 Wayback Machine 備份