我不会在@Alecos的出色答案中重新分配分布(这是标准结果,请参阅此处以获取其他信息)很好的讨论),但我想填写有关后果的更多详细信息!首先,对于和值范围,的零分布是什么样的?@Alecos的答案中的图形可以很好地说明实际多元回归中发生的情况,但有时从较小的案例中可以更容易地获得见识。我已经包括了均值,众数(存在)和标准偏差。图表/表格值得关注:以全尺寸观看时效果最佳R2nknkBeta(k−12,n−k2)R2nk。我本来可以包含较少的方面,但是模式会不太清楚;我附加了R
代码,以便读者可以尝试使用和不同子集。nk
形状参数值
图形的颜色方案指示每个形状参数是小于一个(红色),等于一个(蓝色)还是大于一个(绿色)。左侧显示的值,而在右侧。由于,因此当我们从一列移到另一列时,它的值在算术级数中会以的共同差值增加(在模型中添加回归变量)而对于固定,减少。每行的总是固定的(对于给定的样本大小)。如果相反,我们修复β α = ķ - 1αβ 1α=k−12 Ñβ=ñ-ķ12n 1β=n−k2 α+β=ñ-112 ķαβ1α+β=n−12k并向下移动该列(将样本大小增加1),然后保持不变,增加。用回归术语来说,是模型中包含的回归变量的一半,是剩余自由度的一半。为了确定分布的形状,我们对或等于1的位置特别感兴趣。αβ12αβαβ
对于,代数很简单:我们有所以。实际上,这是构面图中唯一在左侧填充为蓝色的列。类似地,对于(列在左侧为红色),对于,(从列起,左侧为绿色)。αk−12=1k=3α<1k<3k=2α>1k>3k=4
对于我们有因此。请注意,这些案例(标有蓝色右侧)是如何在小平面图中横切一条对角线的。对于我们得到(带有绿色左侧的图形位于对角线的左侧)。对于我们需要,这仅涉及我图上最右边的情况:在我们有且分布是退化的,但在,绘制(右侧为红色)。β=1n−k2=1k=n−2β>1k<n−2β<1k>n−2n=kβ=0n=k−1β=12
由于PDF是,因此很明显,如果(且仅当)然后为。我们可以在图中看到这一点:当左侧被遮蔽红色,为0观察行为类似地,当则作为。看右边是红色的地方!f(x;α,β)∝xα−1(1−x)β−1α<1f(x)→∞x→0β<1f(x)→∞x→1
对称性
图表最醒目的功能之一是对称性,但是当涉及Beta分布时,这并不奇怪!
如果则Beta分布本身是对称的。对于我们来说,如果可以正确识别面板,,和。上的分布对称程度取决于我们在模型中针对该样本量包含的回归变量。如果,则的分布在0.5左右完全对称;如果我们包含的变量少于该变量,变量将变得越来越不对称,并且质量的大部分概率移近Ñ = 2 ķ - 1 (ķ = 2 ,Ñα=βn=2k−1(k=2,n=3)(k=3,n=5)(k=4,n=7)(k=5,n=9)R2=0.5k=n+12R2R2=0; 如果我们包含更多变量,则它会更接近。请记住,在其计数中包括了截距,并且我们在空值下工作,因此在正确指定的模型中,回归变量的系数应为零。R2=1k
对于任何给定的(即构面网格中的任何行),分布之间也显然存在对称性。例如,将与。是什么原因造成的?回想一下是在的镜像。现在我们有了和。考虑,我们发现:(k = 3 ,n = 9 )(n(k=3,n=9)(k=7,n=9)Beta(α,β)Beta(β,α)x=0.5αk,n=k−12βk,n=n−k2k′=n−k+1
αk′,n=(n−k+1)−12=n−k2=βk,n
βk′,n=n−(n−k+1)2=k−12=αk,n
因此,这解释了对称性,因为我们针对固定样本大小更改了模型中回归变量的数量。在特殊情况下,它还解释了本身是对称的分布:对于它们,因此它们必须与自己对称!k′=k
这告诉我们一些我们可能没有想到的关于多元回归的方法:对于给定的样本量,并且假设没有回归变量与有真正的关系,则使用回归变量加截距的模型的具有相同的分布就像对于剩余剩余自由度的模型所做的那样。nYR2k−11−R2k−1
特别发行
当我们有,这不是有效参数。但是,当,分布会随着尖峰而退化,从而。这与我们对具有与数据点一样多参数的模型所了解的一致-它可以实现完美拟合。我没有在图表上绘制简并分布,但包括均值,众数和标准差。k=nβ=0β→0P(R2=1)=1
当和我们得到,它是反正弦分布。这是对称的(因为)和双峰的(0和1)。由于这是和(两侧都标记为红色)的唯一情况,因此这是我们唯一的分布,在支撑的两端均达到无穷大。k=2n=3Beta(12,12)α=βα<1β<1
的分布是唯一的Beta分布是矩形(均匀)。从0到1的所有值都是同等可能。的唯一组合和为其时是和(标在两侧蓝色)。Beta(1,1)R2knα=β=1k=3n=5
先前的特殊情况适用范围有限,但是和(左侧为绿色,右侧为蓝色)的情况很重要。现在所以我们有一个[0,1]上的幂律分布。当然,我们不太可能在出现这种情况时执行和的回归。但是,根据先前的对称性参数或PDF上的一些平凡代数,当且,这是具有两个回归数和对非平凡样本大小的截距的多次回归的常见过程。α>1β=1f(x;α,β)∝xα−1(1−x)β−1=xα−1k=n−2k>3k=3n>5R2将遵循下[0,1]上的反射幂律分布。H0这对应于和因此在左侧标记为蓝色,在右侧标记为绿色。α=1β>1
您可能还注意到处的三角分布及其反射。从他们的和看出,它们只是幂律和反射幂律分布的特例,其中幂为。(k=5,n=7)(k=3,n=7)αβ2−1=1
模式
如果和,则图中的所有绿色是凹形的,其中且Beta分布具有唯一模式。将它们用和,条件为且而模式为。α>1β>1f(x;α,β)f(0)=f(1)=0α−1α+β−2knk>3n>k+2k−3n−5
上面已经处理了所有其他情况。如果我们放松不等式以允许,那么我们将包括(绿色-蓝色)幂律分布,其中且(等效地,)。这些情况显然具有模式1,因为,所以实际上与先前的公式一致。相反,如果我们允许但仍然要求,那么我们将找到且的(蓝绿色)反射幂律分布。它们的模式为0,与。但是,如果我们同时放松两个不等式以允许β=1k=n−2k>3n>5(n−2)−3n−5=1α=1β>1k=3n>53−3n−5=0α=β=1,我们将找到和的(全蓝色)均匀分布,它没有唯一的模式。此外,在这种情况下,不能使用先前的公式,因为它将返回不确定的形式。k=3n=53−35−5=00
当我们得到模式1的简并分布。当(按回归术语,,只有一个剩余自由度),则为,并且(按回归术语,是一个具有截距和一个回归变量的简单线性模型),则为。除了在和(将简单线性模型拟合到三个点)(在0和1处为双峰)的异常情况之外,这些都是独特的模式。 n=kβ<1n=k−1f(x)→∞x→1α<1k=2f(x)→∞x→0k=2n=3
意思
这个问题询问了模式,但是在零下的平均值也很有趣-它具有非常简单的形式。对于固定样本大小,随着向模型中添加更多回归变量,其算术级数增加,直到时平均值为1 。Beta分布的平均值为因此从我们较早的观察中不可避免地得出这样的算术级数:对于固定,总和是恒定的,但是增加0.5对于添加到模型的每个回归变量。R2k−1n−1k=nαα+βnα+βα
αα+β=(k−1)/2(k−1)/2+(n−k)/2=k−1n−1
地块代码
require(grid)
require(dplyr)
nlist <- 3:9 #change here which n to plot
klist <- 2:8 #change here which k to plot
totaln <- length(nlist)
totalk <- length(klist)
df <- data.frame(
x = rep(seq(0, 1, length.out = 100), times = totaln * totalk),
k = rep(klist, times = totaln, each = 100),
n = rep(nlist, each = totalk * 100)
)
df <- mutate(df,
kname = paste("k =", k),
nname = paste("n =", n),
a = (k-1)/2,
b = (n-k)/2,
density = dbeta(x, (k-1)/2, (n-k)/2),
groupcol = ifelse(x < 0.5,
ifelse(a < 1, "below 1", ifelse(a ==1, "equals 1", "more than 1")),
ifelse(b < 1, "below 1", ifelse(b ==1, "equals 1", "more than 1")))
)
g <- ggplot(df, aes(x, density)) +
geom_line(size=0.8) + geom_area(aes(group=groupcol, fill=groupcol)) +
scale_fill_brewer(palette="Set1") +
facet_grid(nname ~ kname) +
ylab("probability density") + theme_bw() +
labs(x = expression(R^{2}), fill = expression(alpha~(left)~beta~(right))) +
theme(panel.margin = unit(0.6, "lines"),
legend.title=element_text(size=20),
legend.text=element_text(size=20),
legend.background = element_rect(colour = "black"),
legend.position = c(1, 1), legend.justification = c(1, 1))
df2 <- data.frame(
k = rep(klist, times = totaln),
n = rep(nlist, each = totalk),
x = 0.5,
ymean = 7.5,
ymode = 5,
ysd = 2.5
)
df2 <- mutate(df2,
kname = paste("k =", k),
nname = paste("n =", n),
a = (k-1)/2,
b = (n-k)/2,
meanR2 = ifelse(k > n, NaN, a/(a+b)),
modeR2 = ifelse((a>1 & b>=1) | (a>=1 & b>1), (a-1)/(a+b-2),
ifelse(a<1 & b>=1 & n>=k, 0, ifelse(a>=1 & b<1 & n>=k, 1, NaN))),
sdR2 = ifelse(k > n, NaN, sqrt(a*b/((a+b)^2 * (a+b+1)))),
meantext = ifelse(is.nan(meanR2), "", paste("Mean =", round(meanR2,3))),
modetext = ifelse(is.nan(modeR2), "", paste("Mode =", round(modeR2,3))),
sdtext = ifelse(is.nan(sdR2), "", paste("SD =", round(sdR2,3)))
)
g <- g + geom_text(data=df2, aes(x, ymean, label=meantext)) +
geom_text(data=df2, aes(x, ymode, label=modetext)) +
geom_text(data=df2, aes(x, ysd, label=sdtext))
print(g)