No.14033 原点を通る直線による回帰分析における、変数の対対称性  【NIINO】 2010/12/27(Mon) 18:35

2つの変数列(x_1,...,x_n), (y_1,...,y_n)があるときに,この2つの変数の関係を,回帰分析(最小2乗法)によって調べることを考えます。このとき,「回帰直線が原点を 通る」という設定の元で回帰分析を行うと,(x:説明変数,y:従属変数,y=ax)としたときの傾きaと,(x:従属変数,y:説明変数,x=by)と したときの傾きbは,互いに逆数(a=1/b)という関係をもたないのでしょうか。xの系列とyの系列を入れ替えることは,xy平面上では,各点を直線 y=xに関して対称に移動するだけなので,回帰直線自体も当然y=xに関して対称なもの(y=axとy=(1/a)x)になるかと思ったのですが, Excelの計算によるとそうなりませんでした・・・。(つまり,LINEST(xの列,yの列,true)とLINEST(yの列,xの列,true) の積が1になりませんでした。)なにか基本的な考え違いを起こしているのでしょうか・・・。ご教示頂ければ幸いです。

No.14035 Re: 原点を通る直線による回帰分析における,変数の対対称性  【ひの】 2010/12/27(Mon) 18:51

通常の回帰直線の計算では,X軸の値は誤差を持たずY軸の値だけが誤差を持つというモデルで計算します。Y軸方向の誤差の平方和を最小化する直線を最小二乗法で求めるわけです。このため,XとYを入れ替えると誤差を持つ軸が変わるので計算結果は異なってきます。
X.Y軸両方に誤差があると考えて計算を行う方法もいくつかありますが,両軸の誤差の重みを決める必要があって話は簡単ではありません。

No.14037 Re: 原点を通る直線による回帰分析における,変数の対対称性  【NIINO】 2010/12/27(Mon) 19:04

ひのさん,ご回答どうもありがとうございます。参考までに,ひのさんが教えてくださった,両軸に誤差があると考え て計算を行う方法について,参考になるURLやテキスト,またはそれを検索する際にキーワードとして入力すると良い語などを教えて頂けませんでしょうか。 よろしくお願い致します。

No.14038 Re: 原点を通る直線による回帰分析における,変数の対対称性  【NIINO】 2010/12/27(Mon) 19:18

度々申し訳ございません。y軸方向の誤差というのは,回帰直線をy=axとして,データ(x_i,y_i)の誤差 (の2乗)を(ax_i-y_i)^2として計算するということかと思います。この回帰直線との距離(誤差?)の定義では,確かに対称性は明らかにありま せん。私は,これまで回帰直線との距離を,普通の意味での「点と直線の距離」と理解しており,この定義ならxとyに関して対称になると思っておりました。 Excelなどでは,このようなアルゴリズムで回帰分析を行うことはできないのでしょうか。(つまり,SLOPE関数やLINEST関数のような機能を, このアルゴリズムで機能させることはできないでしょうか?)また,もしよろしければ,上記のアルゴリズム(私から見ればこちらの方が至極自然な「距離」ま たは「誤差」の定義のように思えますが)に欠陥がありましたら,ご教示頂ければ幸いです。よろしくお願い致します。

No.14040 Re: 原点を通る直線による回帰分析における,変数の対対称性  【青木繁伸】 2010/12/27(Mon) 20:39

> 私は,これまで回帰直線との距離を,普通の意味での「点と直線の距離」と理解しており

RMA,MA というのがありますから,それらを調べるとあなたの望むものがあるかも。ただ,一般的に,「原点を通る」というのは望ましいモデルであることも,制約の強すぎるモデルであることも,両者の局面を持つと思います。

No.14044 Re: 原点を通る直線による回帰分析における,変数の対対称性  【ひの】 2010/12/27(Mon) 21:35

過去ログをご覧ください。

http://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc006/016.html#027

この発言より新しい情報を私は持ち合わせていません。

No.14045 Re: 原点を通る直線による回帰分析における,変数の対対称性  【青木繁伸】 2010/12/28(Tue) 11:44

R でちょっと書いて見た。解析的な解を求めるのは面倒なので,optimize 関数でお茶を濁す。
赤の直線が,原点を通り,「点と直線の距離」の二乗和が最小になる解。
reg <- function(x, y, rng)
{
func <- function(a)
{
x2 <- (x+a*y)/(a^2+1)
y2 <- a*x2
retv <- sum((x-x2)^2+(y-y2)^2)
return(retv)
}
ans <- optimize(func, rng)
return(ans)
}
x <- c(13.3, 20.5, 18, 17.5, 14.8, 18.1, 23, 14.7, 10.8, 20.1, 26,
13.5, 15.7, 14.8, 18.2, 30.4, 29.7, 26.9, 16.8, 24.5, 16.7, 24.1,
24.4, 16.9, 25.5, 19.7, 23.1, 17.9, 22.4, 22.1)
y <- c(5.9, 7.5, 6.3, 7.3, 7.5, 6.4, 8.2, 8.1, 4.9, 6.4, 9.3, 3.5,
7.9, 7.9, 10.5, 9.8, 10, 8.3, 4.9, 8.2, 7.4, 7.5, 5.9, 5.5, 11.9,
6.4, 6.7, 6.3, 10.8, 7.6)
plot(x, y, pch=19, xlim=c(0, 40), ylim=c(0, 15), asp=1)
abline(lm(y ~ x))
slope <- reg(x, y, c(0.01, 100))$minimum
abline(0, slope, col="red")


No.14051 Re: 原点を通る直線による回帰分析における,変数の対対称性  【ひの】 2010/12/28(Tue) 20:56

原点を通り,XY両軸方向の誤差の重みを均等に扱うとした場合,原点とデータの重心を結ぶ直線と一致するのかな?だとしたら計算はとても簡単になりますが。

No.14053 Re: 原点を通る直線による回帰分析における,変数の対対称性  【青木繁伸】 2010/12/28(Tue) 21:48

slope = mean(y) / mean(x) でしょうか?
別の基準の最尤推定ですね。青がその推定値に基づく予測直線です。
前のコメントで言及しませんでしたが,黒は,原点を通るという制約のない回帰直線です。


No.14125 Re: 原点を通る直線による回帰分析における,変数の対対称性  【kai】 2011/01/07(Fri) 08:30

>私は,これまで回帰直線との距離を,普通の意味での「点と直線の距離」と理解しており,この定義ならxとyに関して対称になると思っておりました。

直交回帰分析のことでしょうか?

http://www.core.kochi-tech.ac.jp/m_inoue/work/pdf/2001/bangai02/37.pdf

No.14127 Re: 原点を通る直線による回帰分析における,変数の対対称性  【青木繁伸】 2011/01/07(Fri) 11:49

質問者の求めているのが,「原点を通り,...」という条件がついているので,図で言えば青で示したもの。なお,黒で示したのが直交回帰(MA,主成分回帰),赤が RMA,点線が直線回帰。


● 「統計学関連なんでもあり」の過去ログ--- 044 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る