除此之外,我們亦可利用變形法(Transformation),將一數學模型轉換成只包含線性參數的模型。例如,假設一模型為: $$ y=ae^{bx} $$
取自然對數,可得
$$ \ln y = \ln a + bx $$此時,$\ln a$ 及 $b$ 變成線性參數,我們可用“最小平方法”找出其值,請見下列使用變形法的範例:
在上述圖形中,第一個小圖是 $\ln y$ 對 $x$ 的作圖,而第二個小則是 $y$ 對 $x$ 的作圖。請特別注意,經由變形法之後,此最小平方法所得到的最小總平方誤差是 $$ E'=\sum_{i=1}^m (\ln y_i - \ln a - bx_i)^2 $$
而不是原模型的總平方誤差: $$ E=\sum_{i=1}^m (y_i - ae^{bx_i})^2 $$
通常 $E'$ 為最小值時,$E$ 不一定是最小值,但通常亦離最小值亦不遠矣!若要精益求精,可再用 fminsearch 求取 $E$ 的最小值,並以(變形後)最小平方法得到的 a 及 b 為搜尋的起點,請見下列範例:
由上述範例可以看出,我們可以先使用變形法,先找出大略的參數值,然後再用 fminsearch 來對誤差平方和進行最小化,因此得到的誤差平方和,會比前一個範例(只用變形法)還要小。(當然,在這個範例中,我們定義了一個必須被最小化的誤差總和函式 errorMeasure3.m,為節省篇幅,其內容不再列出,讀者請自行參考光碟中的檔案。)
事實上,很多看起來是非線性的迴歸模型,經過了一些轉換後,就會變成線性的迴歸模型,因此就可以使用我們這一節所說明的變形法,來進行線性迴歸的參數求取。以下是一些變形法可用的非線性模型,以及相關的轉換方法:
編號 非線性模型 轉換後的線性模型 參數轉換公式 1 $y=\frac{ax}{1+bx}$ $\underbrace{\frac{1}{y}}_Y=\underbrace{\frac{1}{a}}_\alpha \frac{1}{x}+\underbrace{\frac{b}{a}}_\beta$ $a=\frac{1}{\alpha}$, $b=\frac{\beta}{\alpha}$ 2 $y=\frac{a}{x+b}$ $\underbrace{\frac{1}{y}}_Y=\underbrace{\frac{1}{a}}_\alpha x+\underbrace{\frac{b}{a}}_\beta$ $a=\frac{1}{\alpha}$, $b=\frac{\beta}{\alpha}$ 3 $y=\frac{ax}{x^2+b^2}$ $\underbrace{\frac{1}{y}}_Y=\underbrace{\frac{1}{a}}_\alpha x+\underbrace{\frac{b^2}{a}}_\beta \frac{1}{x}$ $a=\frac{1}{\alpha}$, $b=\pm\sqrt{\frac{\beta}{\alpha}}$ 4 $y=ax^b$ $\underbrace{\ln y}_Y = \underbrace{b}_\alpha \ln x + \underbrace{\ln a}_\beta$ $a=e^\beta, b=\alpha$ 5 $y=\frac{1}{1+ax^b}$ $\underbrace{\ln \frac{1-y}{y}}_Y = \underbrace{b}_\alpha \ln x + \underbrace{\ln a}_\beta$ $a=e^\beta, b=\alpha$ 6 $y=\frac{1}{1+exp\left(\frac{ax}{b+x}\right)}$ $\underbrace{\left[\ln \frac{1-y}{y}\right]^{-1}}_Y=\underbrace{\frac{b}{a}}_\alpha \frac{1}{x}+\underbrace{\frac{1}{a}}_\beta$ $a=\frac{1}{\beta}, b=\frac{\alpha}{\beta}$ 7 $y=\ln a + x - \ln (e^x+b)$ $\underbrace{e^{-y}}_Y=\underbrace{\frac{b}{a}}_\alpha e^x+\underbrace{\frac{1}{a}}_\beta$ $a=\frac{1}{\beta}, b=\frac{\alpha}{\beta}$ 8 $\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1$ $\underbrace{y^2}_Y=\underbrace{-\frac{b^2}{a^2}}_\alpha x^2+\underbrace{b^2}_\beta$ $a^2=-\frac{\beta}{\alpha}, b^2=\beta$ 9 $(x-a)^2+(y-b)^2=c^2$ $\underbrace{x^2+y^2}_Y=\underbrace{2a}_\alpha x+\underbrace{2b}_\beta y+\underbrace{c^2-a^2-b^2}_\gamma$ $a=\alpha/2, b=\beta/2\\c=\gamma+\frac{\alpha^2}{4}+\frac{\beta^2}{4}$ 10 $y=a e^{\left[-\left(\frac{x-c}{b}\right)^2\right]}$ $\underbrace{\ln y}_Y = \underbrace{-\frac{1}{b^2}}_\alpha x^2+ \underbrace{\frac{2c}{b^2}}_\beta x+\underbrace{\ln a-\frac{c^2}{b^2}}_\gamma$ $a=exp \left( \gamma - \frac{\beta^2}{4}\right)\\b=\pm \sqrt{-\frac{1}{\alpha}}\\c=-\frac{\beta}{2\alpha}$ 11 $y=\frac{a}{\sqrt{(1+bx^2)^2+c}}$ $\underbrace{\frac{1}{y^2}}_Y=\underbrace{\frac{b^2}{a^2}}_\alpha x^4+\underbrace{\frac{2b}{a^2}}_\beta x^2+\underbrace{\frac{c+1}{a^2}}_\gamma$ $a=\pm\frac{\sqrt{4\alpha}}{\beta}\\b=\frac{2\alpha}{\beta}\\c=\frac{4\alpha\gamma}{\beta^2}-1$
MATLAB程式設計:進階篇