誰かが2つのステートメント(a)と(b)をリンクする数学的論理を明確に説明してもらえますか?値のセット(分布)があります。さて、
a)中央値はすべての値に依存するわけではありません[1つまたは2つの中間値に依存するだけです]。b)中央値は、そこからの絶対偏差の最小値の軌跡です。
同様に、対照的に、
a)(算術)平均はすべての値に依存します。b)平均は、それからの最小二乗偏差の軌跡です。
私の把握はこれまでのところ直感的です。
誰かが2つのステートメント(a)と(b)をリンクする数学的論理を明確に説明してもらえますか?値のセット(分布)があります。さて、
a)中央値はすべての値に依存するわけではありません[1つまたは2つの中間値に依存するだけです]。b)中央値は、そこからの絶対偏差の最小値の軌跡です。
同様に、対照的に、
a)(算術)平均はすべての値に依存します。b)平均は、それからの最小二乗偏差の軌跡です。
私の把握はこれまでのところ直感的です。
回答:
これは2つの質問です。1つは平均と中央値が損失関数を最小化する方法、もう1つはこれらの推定値のデータに対する感度に関する質問です。後で説明するように、2つの質問はつながっています。
数値のバッチの中心の要約(または推定値)は、要約値を変更し、バッチ内の各数値がその値に復元力を及ぼすと想像することで作成できます。フォースが値を数値から押し出さない場合、おそらく、フォースのバランスがとれている任意のポイントがバッチの「中心」になります。
たとえば、要約と各数値の間に古典的なばね(フックの法則に従う)を付けると、力は各ばねまでの距離に比例します。スプリングは、このように要約を引き出し、最終的にはエネルギーが最小限の独自の安定した場所に落ち着きます。
発生したばかりの小さな手の動きに注意を喚起したいと思います。エネルギーは距離の2乗の合計に比例します。ニュートン力学は、力とはエネルギーの変化率であることを教えてくれます。 平衡を達成すること、つまりエネルギーを最小化することは、力のバランスをとることになります。エネルギーの正味の変化率はゼロです。
これを「サマリー」または「二乗損失サマリー」と呼びましょう。
値とデータ間の距離に関係なく、復元力のサイズが一定であると仮定すると、別の要約を作成できます。ただし、力自体は一定ではありません。常に各データポイントに向かって値をプルする必要があるためです。したがって、値がデータポイントよりも小さい場合、力は正に向けられますが、値がデータポイントよりも大きい場合、力は負に向けられます。これで、エネルギーは値とデータ間の距離に比例します。通常、エネルギーが一定で、正味の力がゼロである領域全体が存在します。この地域の任意の値は、「サマリー」または「絶対損失サマリー」と呼ばれる場合があります。
これらの物理的アナロジーは、2つの要約に関する有用な直観を提供します。たとえば、データポイントの1つを移動すると、サマリーはどうなりますか?ばねが取り付けられた場合、1つのデータポイントを移動すると、ばねが伸びたり緩んだりします。その結果、サマリーの有効性が変更されるため、それに応じて変更する必要があります。 しかし、L 1の場合、ほとんどの場合、データポイントの変更は要約に何もしません。これは、力が局所的に一定だからです。フォースを変更できる唯一の方法は、データポイントがサマリー全体を移動することです。
(実際、値に対する正味の力は、それよりも大きいポイントの数(それを上に引き上げる)-それよりも小さいポイントの数を差し引いて下に引くことによって与えられることは明らかです。したがって、概要は、データ値の数は、それが正確にそれより少ないデータ値の数に等しい超える任意の位置で生じなければなりません。)
力とエネルギーの両方が加算されるため、どちらの場合でも、正味のエネルギーをデータポイントからの個々の寄与に分解できます。サマリー値の関数としてエネルギーまたは力をグラフ化することにより、これは何が起こっているかの詳細な図を提供します。要約は、エネルギー(または統計用語の「損失」)が最小になる場所になります。同様に、それはバランスを強制する場所になります。損失の正味の変化がゼロになるデータの中心が発生します。
この図は、6つの値の小さなデータセットのエネルギーと力を示しています(各プロットの細い垂直線でマークされています)。黒い破線の曲線は、個々の値からの寄与を示す色付き曲線の合計です。x軸は、サマリーの可能な値を示します。
算術平均は、それが左上プロットにおける黒放物線の頂点(底部)に位置する。乗損失が最小化される点です。それは常にユニークです。中央値は、絶対的な損失が最小化される点です。上記のように、データの途中で発生する必要があります。必ずしも一意ではありません。右上の破線の黒い曲線の下部に配置されます。(底は実際間の短い平坦部から成りと- 0.17 ;この間隔内の任意の値が中央値です。)
前に、データポイントが変化したときにサマリーに何が起こるかを説明しました。単一のデータポイントの変更に応じてサマリーがどのように変化するかをプロットすることは有益です。(これらのプロットは、本質的に経験的影響関数です。通常の定義とは異なり、これらの値がどれだけ変化するかではなく、実際の値を示します。)サマリーの値は、y -axesは、この要約がデータセットの中央の位置を推定していることを思い出させます。各データポイントの新しい(変更された)値は、x軸に表示されます。
この図が提示バッチ内のデータ値のそれぞれの変化の結果(同じものは最初の図において分析)。各データ値に対して1つのプロットがあり、そのプロットでは、下の軸に沿って長い黒い目盛りで強調表示されます。(残りのデータ値は短い灰色の目盛りで表示されます。)青い曲線はL 2の要約(算術平均)をトレースし、赤い曲線はL 1をトレースします要約-中央値。(多くの場合、中央値は値の範囲であるため、ここではその範囲の中央をプロットする規則に従います。)
通知:
平均の感度には制限がありません。これらの青い線は上下に無限に伸びています。中央値の感度には限界があります。赤い曲線には上限と下限があります。
ただし、中央値が変化する場合は、平均値よりもはるかに急速に変化します。 各青い線の傾きは(一般的には、1 / NとデータセットのN個の赤線の傾斜部の傾きが全てであるのに対し、値)1 / 2。
平均はすべてのデータポイントに敏感であり、この感度には境界がありません(最初の図の左下のプロットのすべての色付き線のゼロ以外の勾配が示すように)。中央値はすべてのデータポイントに対して敏感ですが、感度には限界があります(これが、最初の図の右下のプロットの色付き曲線がゼロ付近の狭い垂直範囲内にある理由です)。もちろん、これらは単に基本的な力(損失)の法則の視覚的な反復です:平均は2次、中央値は線形です。
中央値を変更できる間隔は、データポイントによって異なる場合があります。変化しないデータの中間値の2つによって常に制限されます。(これらの境界は、かすかな垂直の破線でマークされています。)
中央値の変化率が常にあるので、、量が異なる場合があり、したがってこれによって、データセットの近くの中間値との間のこのギャップの長さによって決定されます。
一般的に最初のポイントのみが記載されていますが、4つのポイントすべてが重要です。特に、
「中央値がすべての値に依存しない」ことは間違いです。 この図は反例を示しています。
それでも、個々の値を変更すると中央値を変更できるという意味で、中央値はすべての値に「実質的に」依存しませんが、変更量はデータセットの中間値間のギャップによって制限されます。特に、変化の量には限界があります。中央値は「耐性のある」要約であると言います。
が平均が耐性ではない、そしていつでも変更される任意のデータ値が変更され、変化率が比較的小さいです。データセットが大きいほど、変化率は小さくなります。同様に、大きなデータセットの平均値に重大な変化をもたらすためには、少なくとも1つの値に比較的大きな変動が生じている必要があります。これは、平均の非抵抗性は、(a)小さいデータセット、または(b)1つ以上のデータがバッチの中央から極端に離れた値を持つ可能性があるデータセットにのみ関係することを示唆しています。
これらの発言-数字が明らかになることを願っています-は、損失関数と推定量の感度(または抵抗)の間の深い関係を明らかにします。 これについて詳しくは、M-estimatorsに関するWikipediaの記事の1つから始めて、好きな限りそれらのアイデアを追求してください。
このR
コードは図を生成し、同じ方法で他のデータセットを調査するために簡単に変更できy
ます。ランダムに作成されたベクトルを数字のベクトルで置き換えるだけです。
#
# Create a small dataset.
#
set.seed(17)
y <- sort(rnorm(6)) # Some data
#
# Study how a statistic varies when the first element of a dataset
# is modified.
#
statistic.vary <- function(t, x, statistic) {
sapply(t, function(e) statistic(c(e, x[-1])))
}
#
# Prepare for plotting.
#
darken <- function(c, x=0.8) {
apply(col2rgb(c)/255 * x, 2, function(s) rgb(s[1], s[2], s[3]))
}
colors <- darken(c("Blue", "Red"))
statistics <- c(mean, median); names(statistics) <- c("mean", "median")
x.limits <- range(y) + c(-1, 1)
y.limits <- range(sapply(statistics,
function(f) statistic.vary(x.limits + c(-1,1), c(0,y), f)))
#
# Make the plots.
#
par(mfrow=c(2,3))
for (i in 1:length(y)) {
#
# Create a standard, consistent plot region.
#
plot(x.limits, y.limits, type="n",
xlab=paste("Value of y[", i, "]", sep=""), ylab="Estimate",
main=paste("Sensitivity to y[", i, "]", sep=""))
#legend("topleft", legend=names(statistics), col=colors, lwd=1)
#
# Mark the limits of the possible medians.
#
n <- length(y)/2
bars <- sort(y[-1])[ceiling(n-1):floor(n+1)]
abline(v=range(bars), lty=2, col="Gray")
rug(y, col="Gray", ticksize=0.05);
#
# Show which value is being varied.
#
rug(y[1], col="Black", ticksize=0.075, lwd=2)
#
# Plot the statistics as the value is varied between x.limits.
#
invisible(mapply(function(f,c)
curve(statistic.vary(x, y, f), col=c, lwd=2, add=TRUE, n=501),
statistics, colors))
y <- c(y[-1], y[1]) # Move the next data value to the front
}
#------------------------------------------------------------------------------#
#
# Study loss functions.
#
loss <- function(x, y, f) sapply(x, function(t) sum(f(y-t)))
square <- function(t) t^2
square.d <- function(t) 2*t
abs.d <- sign
losses <- c(square, abs, square.d, abs.d)
names(losses) <- c("Squared Loss", "Absolute Loss",
"Change in Squared Loss", "Change in Absolute Loss")
loss.types <- c(rep("Loss (energy)", 2), rep("Change in loss (force)", 2))
#
# Prepare for plotting.
#
colors <- darken(rainbow(length(y)))
x.limits <- range(y) + c(-1, 1)/2
#
# Make the plots.
#
par(mfrow=c(2,2))
for (j in 1:length(losses)) {
f <- losses[[j]]
y.range <- range(c(0, 1.1*loss(y, y, f)))
#
# Plot the loss (or its rate of change).
#
curve(loss(x, y, f), from=min(x.limits), to=max(x.limits),
n=1001, lty=3,
ylim=y.range, xlab="Value", ylab=loss.types[j],
main=names(losses)[j])
#
# Draw the x-axis if needed.
#
if (sign(prod(y.range))==-1) abline(h=0, col="Gray")
#
# Faintly mark the data values.
#
abline(v=y, col="#00000010")
#
# Plot contributions to the loss (or its rate of change).
#
for (i in 1:length(y)) {
curve(loss(x, y[i], f), add=TRUE, lty=1, col=colors[i], n=1001)
}
rug(y, side=3)
}
の量を追加するとします
そして
ちょっと読んだ後のちょっとした貢献です。おそらく尋ねた人には少し遅れましたが、誰か他の人にとっては価値があるかもしれません。
平均的な場合:
問題を検討する
導入する
関数が凸であるため、これは最小です
中央値の場合
問題を考える
f (xを導入
(ここではxの符号です:s g n (x )= 1 if
は空間の基数であるため、この離散的なケースでは、その中の要素の数)
関数も凸であるため、これもまた最小値です。
#
ですか?