✔ 最佳答案
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, 則需視具體情況再設法改善.