Ame*_*eya 5 statistics r normal-distribution
我试图了解从中生成的样本的直方图的特定行为rnorm
.
set.seed(1)
x1 <- rnorm(1000L)
x2 <- rnorm(10000L)
x3 <- rnorm(100000L)
x4 <- rnorm(1000000L)
plot.hist <- function(vec, title, brks) {
h <- hist(vec, breaks = brks, density = 10,
col = "lightgray", main = title)
xfit <- seq(min(vec), max(vec), length = 40)
yfit <- dnorm(xfit, mean = mean(vec), sd = sd(vec))
yfit <- yfit * diff(h$mids[1:2]) * length(vec)
return(lines(xfit, yfit, col = "black", lwd = 2))
}
par(mfrow = c(2, 2))
plot.hist(x1, title = 'Sample = 1E3', brks = 100)
plot.hist(x2, title = 'Sample = 1E4', brks = 500)
plot.hist(x3, title = 'Sample = 1E5', brks = 1000)
plot.hist(x4, title = 'Sample = 1E6', brks = 1000)
Run Code Online (Sandbox Code Playgroud)
您会注意到在每种情况下 (我没有进行交叉比较;我知道随着样本量变大,直方图和曲线之间的匹配更好),直方图更接近尾部的标准法线,但是朝向模式更差.简单地说,我试图理解为什么每个直方图在中间比尾部更粗糙.这是预期的行为还是我错过了一些基本的东西?
我们的眼睛在愚弄我们.模式附近的密度很高,因此我们可以更明显地观察变化.尾巴附近的密度很低,所以我们无法发现任何东西.以下代码执行一种"标准化",允许我们以相对比例显示变化.
set.seed(1)
x1 <- rnorm(1000L)
x2 <- rnorm(10000L)
x3 <- rnorm(100000L)
x4 <- rnorm(1000000L)
foo <- function(vec, title, brks) {
## bin estimation
h <- hist(vec, breaks = brks, plot = FALSE)
## compute true probability between adjacent break points
p2 <- pnorm(h$breaks[-1])
p1 <- pnorm(h$breaks[-length(h$breaks)])
p <- p2 - p1
## compute estimated probability between adjacent break points
phat <- h$count / length(vec)
## compute and plot their absolute relative difference
v <- abs(phat - p) / p
##plot(h$mids, v, main = title)
## plotting on log scale is much better!!
v.log <- log(1 + v)
plot(h$mids, v.log, main = title)
## invisible return
invisible(list(v = v, v.log = v.log))
}
par(mfrow = c(2, 2))
v1 <- foo(x1, title = 'Sample = 1E3', brks = 100)
v2 <- foo(x2, title = 'Sample = 1E4', brks = 500)
v3 <- foo(x3, title = 'Sample = 1E5', brks = 1000)
v4 <- foo(x4, title = 'Sample = 1E6', brks = 1000)
Run Code Online (Sandbox Code Playgroud)
相对变化在中间附近(朝向0)最低,但在两个边缘附近非常高.这在统计数据中有很好的解释:
(sample sd) : (sample mean)
有较低的样品;(sample sd) : (sample mean)
有很大的.我对日志转换的一点解释
v.log = log(1 + v)
.它的泰勒展开确保v.log
接近v
非常小的v
大约0.随着v
变得越来越大,log(1 + v)
越接近log(v)
,因此恢复了通常的对数变换.
这不仅仅适用于普通样品。如果我们有固定的箱(而不是像我们通常那样由数据确定的箱)并且我们以观察总数为条件,那么计数将是多项式的。
\n\nbin i中计数的预期值为n\xc2\xb7p(i),其中 p(i) 是 bin (i) 中人口密度的比例。
\n\nbin i中计数的方差将为 n\xc2\xb7p(i)\xc2\xb7(1-p(i))。对于许多箱和像正常情况一样平滑的非峰值密度,(1-p(i)) 将非常接近 1;p(i) 通常较小(远小于 1/2)。
\n\n\n\n计数的方差(及其标准差)是预期高度的增函数:
\n\n对于固定的 bin 宽度,高度与预期计数成正比,并且 bin 高度的标准偏差是高度的递增函数。
\n\n所以这正是你所看到的动机。
\n\n实际上,bin 边界并不是固定的;而是固定的。当您添加观察值或生成新样本时,它们会发生变化,但是箱数随着样本大小(通常作为立方根,有时作为对数)以及比此处更复杂的分析而变化相当缓慢需要获得准确的表格。然而,结果是相同的——在常见的观察条件下,容器高度的方差通常随着容器的高度单调增加。
\n