2014-02-08 80 views
2

請看下面的圖,請忽略實線(只需看看虛線/虛線)。MATLAB中的線性對數迴歸:2輸入參數

對於每條曲線,g介於[0,255](因此總是正數)之間,凹,雙射。 我知道從措施背後的過程,通過增加V,相應的曲線變平。

變化時產生不同曲線V。頂部的橙色曲線與V=100相似,V=180的底部曲線(紅色/洋紅色)結果。

我已經在以下形式的測量數據有很多更多的數據點:

T[1] V[1] g[1] 
T[2] V[1] g[2] 
T[3] V[1] g[3] 
... V[1] g[4] 
T[N] V[1] g[5] 
....... 
T[1] V[N] g[1] 
T[2] V[N] g[2] 
T[3] V[N] g[3] 
... V[N] g[4] 
T[N] V[N] g[5] 

現在我想是這樣一個迴歸:

g = g(V, T) 

這將產生曲線對於固定的V -value:

g = g(T), V=Vfix 

MATLAB中的哪種迴歸函數你認爲能算出最好的辦法? 以及如何在這裏假設一個「模型」? 我只知道(從過程本身,顯然來自劇情),它在開始時的某種線性曲線,轉變爲對數曲線,但我不知道V的值是如何引起的呢?

非常感謝提前:任何建議..

回答

2

@bjoern,每個固定V,似乎你的曲線是凹的,只有正面的價值觀。所以,我的第一選擇是假設Y=A X^r。估計這個最簡單的方法是在雙方中應用日誌以獲得線性迴歸log Y = log A + r log X(您可能會發現0<r<1)。因此,對於V的每個值,我將使用matlab中的函數regress應用於值log Ylog X,以便估計參數Ar。該函數被稱爲柯布 - 道格拉斯,它在經濟學中非常有用:http://en.wikipedia.org/wiki/Cobb%E2%80%93Douglas_production_function

對於大多數曲線而言,似乎V的效果表現良好,但藍色曲線的行爲非常奇怪。我會說,總的來說V的效果是翻譯點。

如果V的行爲真的是線性的,也許你可以估計Y = A V X^r。因此,您必須估計logY = log A + log V + r log X.在這種情況下,您的因變量是log Y和您的自變量log X和log V.

在這兩種情況下,我認爲matlab的函數迴歸不會自動包含迴歸的常量(A代表我們)。所以記得要包括一個樣本大小的向量作爲自變量,

此外,如果您確實想測試V的行爲是否線性,則只需估計 logY = log A + slog V + r log X ehich相當於Y = AV^s X^r

我希望它有幫助。

+0

感謝您的回覆。是的,忘記了實線,所以藍色被忽略;-)(或者你的意思是藍色虛線的IMO,看起來並不奇怪!?)。是的,曲線總是正的,總是在0到255之間,凹和雙射。我會嘗試你的建議。 – tim

+0

謝謝,我現在在wiki上查看它,功能看起來非常相似。我希望這可以幫助我擺脫困境。唯一的事情是:如果我只能得到一個包含'V'的方程,那將是相當了不起的,因爲我需要稍後在另一個腳本中重用它,因此保存不同曲線會更容易和更少空間。這種方法是不可能的,是嗎?據我所知,你希望我自己適應每條曲線,對吧?但是,沒關係,我也可以這樣做,只保存Matrix中的'A'和'r'。 – tim

+0

@bjoern,看到更新的答案!丹尼爾 – DanielTheRocketMan