2012-04-12 148 views
1

私は、MATLABが2次元散布図に基づいて最小二乗回帰直線の傾きと切片を公表するのに問題がありました。これはそれがより簡単になるはずですが、MATLABが回帰のために提供する既存のツールはすべて、私がやりたいより複雑なことをやっていると仮定しがちです。私はlslineのような施設から入手できるはずですが、IDEはソースコードを入手するのが難しいです。誰かがこれを行うための迅速かつ汚れた方法を知っていますか?MATLABで最小二乗回帰直線の傾きと切片を取得する方法は?

答えて

1

散布図から視覚的に回帰を推定しようとしていますか?そうでない場合は、polyfit()関数を使用して見積もりを取得することができます。あるいは、あなた自身の関数を書くだけです。 1の列を作成し、独立した軸変数を隣接する列に置き、その行列Xを呼び出し、従属変数をYという列ベクトルに格納した後、beta = (X'*X)\(X'*Y)を計算するだけです。 betaの最初のエントリはインターセプトを与え、後続のエントリは回帰変数の係数を与えます。

+0

私は仕事のためのソースデータを持っています - 私が通常の情報源と一緒に遭遇した問題は、彼らが出発方程式A * x = bのベクトルbの値を知っていると思われるようです。 Aの擬似逆行列を計算して、それを使って最小二乗パラメータ推定値を得ることは、かなり簡単であることを知っていれば。しかし、私はbが何であるか(またはあなたの例ではY)知るまで、私はそれをどうやって行うのか分かりません。 – estanford

+2

'Y'は従属変数のベクトルです(散布図のy軸に何を置いていても)。ソースデータがある場合は、そのデータに 'Y'が暗黙的に含まれている必要があります。人々が通常忘れるのは、A列に1列の列を追加することです。これは、他の係数とともに傍受項を正しく計算できるようにするものです。 – ely

+0

より簡単な式を使って 'beta'を計算することができます:' beta = X \ Y'。 MATLABは最小自乗法でこの問題を自動的に解決します。 – m7913d

関連する問題