2014-02-08 51 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