回帰係数を正規化する方法に関する質問


16

正規化がここで使用する正しい単語であるかどうかはわかりませんが、私が尋ねようとしていることを説明するために最善を尽くします。ここで使用される推定量は最小二乗です。

、で平均を中心にできると仮定します。ここでおよび、それもはや推定には影響ありません。 Y = β ' 0 + β 1 X ' 1 β ' 0 = β 0 + β 1 ˉ X 1 、X ' 1 = X - ˉ X β ' 0 β 1y=β0+β1x1y=β0+β1x1β0=β0+β1x¯1x1=xx¯β0β1

このI平均することにより中と同等です中。最小二乗計算を簡単にするために方程式を減らしました。、Y=β1、X ' 1 β 1、Y=β0+β1X1β^1y=β1x1β^1y=β0+β1x1

一般的にこの方法をどのように適用しますか?モデルがになりました。これをに削減しようとしています。y=β1ex1t+β2ex2ty=β1x


分析しているデータの種類と、モデルから共変量を削除する理由。また、インターセプトを削除する理由はありますか?データを平均中心にすると、切片の有無にかかわらずモデルの勾配は同じになりますが、切片のあるモデルはデータによりよく適合します。ex1t
caburke

@caburkeとを計算した後、それらをモデルに戻すことができるため、モデルの適合性については心配していません。この演習のためのポイントは、推定することであるβ 1。のみに元の方程式削減することにより、Y = β 1 のx "を、最小二乗計算が容易になります(xは」私は見つけるためにしようとしています何の一部であり、それが含まれるE X 1 tで)。私はメカニズムを学ぼうとしています、これはテューキーの本からの質問です。β1β2β1y=β1xex1t
セイバーCN

@caコメントの最後の観察結果は不可解です。非線形式には適用できない可能性があります-「スロープ」と合理的にみなせるものは含まれていませんが、OLS設定では正しくありません。平均中心データの適合は、切片に適合します。お使いのモデルがあいまいであるセイバー、:どのパラメータである変数としていますか?意図したエラー構造は何ですか?(そして、Tukey β1,β2,x1,x2,t
のど

1
@whuberこれは、Tukeyの本「データ分析と回帰:統計学の2番目のコース」の第14A章からのものです。、我々が推定しようとしているパラメータがあり、xは1をxは2 n個の観測と変数は、それぞれトン、私は仮定の観測に関連する時間変数である、しかし、それは指定されていませんでした。エラーは正常なはずで、この質問では無視できます。β1,β2x1,x2t
セイバーCN

1
@whuber私は主に投稿の最初の部分について言及していましたが、これは私のコメントでは明確ではありませんでした。私が意味したのは、OPでは提案されていたようにyではなく平均中心にし、切片を削除すると、if y = 0の場合とは限らないため、フィットが悪化することです。OPの最後の行に記載されているモデルの係数は、明らかにスロープではありません。xyy¯=0
caburke

回答:


38

ここでの質問に正義をかけることはできませんが、小さなモノグラフが必要になりますが、いくつかの重要なアイデアを要約すると役立つかもしれません。

質問

質問を書き直し、明確な用語を使用することから始めましょう。データは、順序付けられたペアのリストで構成さ既知の定数α 1及びα 2は、値決定、X 1 I = EXP α 1 T IX 2 I = EXP α 2 T I。モデルを仮定します(ti,yi) α1α2x1,i=exp(α1ti)x2,i=exp(α2ti)

yi=β1x1,i+β2x2,i+εi

以下のための定数 およびβ 2を、推定すべきε 私はとにかく良い近似に- -ランダムであり、独立した(その推定関心のもある)、共通の分散を持ちます。β1β2εi

背景:線形「マッチング」

MostellerとTukeyの変数を参照し = X 1 1X 1 2... 及びX 2として"照合プログラム。" これらは、特定の方法でy = y 1y 2の値を「一致」させるために使用されます。より一般的には、yxを同じユークリッドベクトル空間内の任意の2つのベクトルとし、yは「ターゲット」とxの役割を果たすx1(x1,1,x1,2,)x2y=(y1,y2,)yxyx「マッチャー」のそれ。我々は、系統的係数変化企図近似するために、yの複数によってλのX。場合に最良の近似が得られるλ xが近くにあるYできるだけ。等価的に、二乗の長さY - λ xが最小化されます。λyλxλxyyλx

このマッチングプロセスを視覚化する一つの方法は、散布することである及びYのグラフ描画されたX λ Xを。散布点とこのグラフの間の垂直距離は、構成要素である残差ベクトルY - λ X。それらの平方の合計はできるだけ小さくする必要があります。比例定数まで、これらの正方形は、残差に等しい半径を持つ点x iy iを中心とする円の面積です。これらすべての円の面積の合計を最小化します。xyxλx yλx(xi,yi)

中央のパネルにの最適値を示す例を次に示します。λ

Panel

散布図の点は青です。グラフ赤線です。この図は、赤線が原点を通過するように拘束されていることを強調して0 0 :それは、ラインフィッティングの非常に特殊な場合です。xλx(0,0)

逐次マッチングにより多重回帰を取得できます

質問の設定に戻ると、1つのターゲット2つのマッチャーx 1およびx 2があります。ここでも、yb 1 x 1 + b 2 x 2によって可能な限り近似される数値b 1およびb 2を求めます。任意にx 1で始まり、Mosteller&Tukeyは残りの変数x 2およびyx 1に一致させますyx1x2b1b2yb1x1+b2x2x1x2yx1。これらのマッチの残差を書く及びY 1それぞれ:1いることを示し、X 1は、変数「の取り出し」されています。x21y11x1

我々は書ける

y=λ1x1+y1 and x2=λ2x1+x21.

採取したからX 2及びYを、我々は目標残差に一致するように進むY 1整合残差には、xは2 1。最終の残差であるY 12。代数的に、私たちは書きましたx1x2yy1x21y12

y1=λ3x21+y12; whencey=λ1x1+y1=λ1x1+λ3x21+y12=λ1x1+λ3(x2λ2x1)+y12=(λ1λ3λ2)x1+λ3x2+y12.

このことが示す最後のステップでは、係数であり、X 2のマッチングにおけるX 1及びX 2Yλ3x2x1x2y

我々は、ちょうど同様に最初の撮影により進行している可能性がのうち、X 1及びY製造、X 1 2及びY 2を、次にとるX 1 2のうちY 2残差の異なる組得、yは21。この時間は、係数X 1最後のステップで見つかった-レッツ・コール、それはμ 3は係数--is X 1のマッチングで、X 1およびx2x1yx12y2x12y2y21x1μ3x1x1x2 to y.

Finally, for comparison, we might run a multiple (ordinary least squares regression) of y against x1 and x2. Let those residuals be ylm. It turns out that the coefficients in this multiple regression are precisely the coefficients μ3 and λ3 found previously and that all three sets of residuals, y12, y21, and ylm, are identical.

Depicting the process

これは新しいものではありません:それはすべて本文にあります。これまでに取得したすべての散布図マトリックスを使用して、画像分析を提供したいと思います。

Scatterplot

これらのデータは、シミュレートされているので、我々は、の根底にある「真」の値を示すの高級有する最後の行と列には:これらは値がβ 1 X 1 + β 2 X 2で添加エラーなし。yβ1x1+β2x2

The scatterplots below the diagonal have been decorated with the graphs of the matchers, exactly as in the first figure. Graphs with zero slopes are drawn in red: these indicate situations where the matcher gives us nothing new; the residuals are the same as the target. Also, for reference, the origin (wherever it appears within a plot) is shown as an open red circle: recall that all possible matching lines have to pass through this point.

Much can be learned about regression through studying this plot. Some of the highlights are:

  • The matching of x2 to x1 (row 2, column 1) is poor. This is a good thing: it indicates that x1 and x2 are providing very different information; using both together will likely be a much better fit to y than using either one alone.

  • Once a variable has been taken out of a target, it does no good to try to take that variable out again: the best matching line will be zero. See the scatterplots for x21 versus x1 or y1 versus x1, for instance.

  • The values x1, x2, x12, and x21 have all been taken out of ylm.

  • Multiple regression of y against x1 and x2 can be achieved first by computing y1 and x21. These scatterplots appear at (row, column) = (8,1) and (2,1), respectively. With these residuals in hand, we look at their scatterplot at (4,3). These three one-variable regressions do the trick. As Mosteller & Tukey explain, the standard errors of the coefficients can be obtained almost as easily from these regressions, too--but that's not the topic of this question, so I will stop here.

Code

These data were (reproducibly) created in R with a simulation. The analyses, checks, and plots were also produced with R. This is the code.

#
# Simulate the data.
#
set.seed(17)
t.var <- 1:50                                    # The "times" t[i]
x <- exp(t.var %o% c(x1=-0.1, x2=0.025) )        # The two "matchers" x[1,] and x[2,]
beta <- c(5, -1)                                 # The (unknown) coefficients
sigma <- 1/2                                     # Standard deviation of the errors
error <- sigma * rnorm(length(t.var))            # Simulated errors
y <- (y.true <- as.vector(x %*% beta)) + error   # True and simulated y values
data <- data.frame(t.var, x, y, y.true)

par(col="Black", bty="o", lty=0, pch=1)
pairs(data)                                      # Get a close look at the data
#
# Take out the various matchers.
#
take.out <- function(y, x) {fit <- lm(y ~ x - 1); resid(fit)}
data <- transform(transform(data, 
  x2.1 = take.out(x2, x1),
  y.1 = take.out(y, x1),
  x1.2 = take.out(x1, x2),
  y.2 = take.out(y, x2)
), 
  y.21 = take.out(y.2, x1.2),
  y.12 = take.out(y.1, x2.1)
)
data$y.lm <- resid(lm(y ~ x - 1))               # Multiple regression for comparison
#
# Analysis.
#
# Reorder the dataframe (for presentation):
data <- data[c(1:3, 5:12, 4)]

# Confirm that the three ways to obtain the fit are the same:
pairs(subset(data, select=c(y.12, y.21, y.lm)))

# Explore what happened:
panel.lm <- function (x, y, col=par("col"), bg=NA, pch=par("pch"),
   cex=1, col.smooth="red",  ...) {
  box(col="Gray", bty="o")
  ok <- is.finite(x) & is.finite(y)
  if (any(ok))  {
    b <- coef(lm(y[ok] ~ x[ok] - 1))
    col0 <- ifelse(abs(b) < 10^-8, "Red", "Blue")
    lwd0 <- ifelse(abs(b) < 10^-8, 3, 2)
    abline(c(0, b), col=col0, lwd=lwd0)
  }
  points(x, y, pch = pch, col="Black", bg = bg, cex = cex)    
  points(matrix(c(0,0), nrow=1), col="Red", pch=1)
}
panel.hist <- function(x, ...) {
  usr <- par("usr"); on.exit(par(usr))
  par(usr = c(usr[1:2], 0, 1.5) )
  h <- hist(x, plot = FALSE)
  breaks <- h$breaks; nB <- length(breaks)
  y <- h$counts; y <- y/max(y)
  rect(breaks[-nB], 0, breaks[-1], y,  ...)
}
par(lty=1, pch=19, col="Gray")
pairs(subset(data, select=c(-t.var, -y.12, -y.21)), col="Gray", cex=0.8, 
   lower.panel=panel.lm, diag.panel=panel.hist)

# Additional interesting plots:
par(col="Black", pch=1)
#pairs(subset(data, select=c(-t.var, -x1.2, -y.2, -y.21)))
#pairs(subset(data, select=c(-t.var, -x1, -x2)))
#pairs(subset(data, select=c(x2.1, y.1, y.12)))

# Details of the variances, showing how to obtain multiple regression
# standard errors from the OLS matches.
norm <- function(x) sqrt(sum(x * x))
lapply(data, norm)
s <- summary(lm(y ~ x1 + x2 - 1, data=data))
c(s$sigma, s$coefficients["x1", "Std. Error"] * norm(data$x1.2)) # Equal
c(s$sigma, s$coefficients["x2", "Std. Error"] * norm(data$x2.1)) # Equal
c(s$sigma, norm(data$y.12) / sqrt(length(data$y.12) - 2))        # Equal

1
Could multiple regression of y against x1 and x2 still be achieved by first computing y.1 and x2.1 if x1 and x2 were correlated? Wouldn't it then make a big difference whether we sequentially regressed y on x1 and x2.1 or on x2 and x1.2 ? How does this relate to one regression equation with multiple explanatory variables?
miura

1
@miura, One of the leitmotifs of that chapter in Mosteller & Tukey is that when the xi are correlated, the partials xij have low variances; because their variances appear in the denominator of a formula for the estimation variance of their coefficients, this implies the corresponding coefficients will have relatively uncertain estimates. That's a fact of the data, M&T say, and you need to recognize that. It makes no difference whether you start the regression with x1 or x2: compare y.21 to y.12 in my code.
whuber

1
I came across this today, here is what I think on the question by @miura, Think of a 2 dimensional space where Y is to be projected as a combination of two vectors. y = ax1 + bx2 + res (=0). Now think of y as a combination of 3 variables, y = ax1 + bx2 + cx3. and x3 = mx1 + nx2. so certainly, the order in which you choose your variables is going to effect the coefficients. The reason for this is: the minimum error here can be obtained by various combinations. However, in few examples, the minimum error can be obtained by only one combination and that is where the order will not matter.
Gaurav Singhal

@whuber Can you elaborate on how this equation might be used for a multivariate regression that also has a constant term ? ie y = B1 * x1 + B2 * x2 + c ? It is not clear to me how the constant term can be derived. Also I understand in general what was done for the 2 variables, enough at least to replicate it in Excel. How can that be expanded to 3 variables ? x1, x2, x3. It seems clear that we would need to remove x3 first from y, x1, and x2. then remove x2 from x1 and y. But it is not clear to me how to then get the B3 term.
Fairly Nerdy

I have answered some of my questions I have in the comment above. For a 3 variable regression, we would have 6 steps. Remove x1 from x2, from x3, and from y. Then remove x2,1 from x3,1 and from y1. Then remove x3,21 from y21. That results in 6 equations, each of which is of the form variable = lamda * different variable + residual. One of those equations has a y as the first variable, and if you just keep substituting the other variables in, you get the equation you need
Fairly Nerdy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.