我只是不明白修剪的概念。我以为一开始是四舍五入,但这没有道理。任何人都可以澄清一下这里的装饰吗?
# The linkedin and facebook vectors have already been created for you
linkedin <- c(16, 9, 13, 5, 2, 17, 14)
facebook <- c(17, 7, 5, 16, 8, 13, 14)
# Calculate the mean of the sum
avg_sum <- mean(c(linkedin+facebook))
# Calculate the trimmed mean of the sum
avg_sum_trimmed <- mean(c(linkedin+facebook), trim = 0.2)
# Inspect both new variables
avg_sum
[1] 22.28571
avg_sum_trimmed
[1] 22.6
我要放置两个均值函数,一个带平均值函数,另一个不带trim参数。欢迎对如何阐明这一概念发表任何评论。
答案 0 :(得分:4)
根据?mean
trim-在计算平均值之前,将从x的每个末端开始修剪的观察值的分数(0到0.5)。超出该范围的修剪值被视为最近的端点。
如果我们使用向量'v1'
v1 <- c(linkedin + facebook)
在length
为7的情况下,sort
的值应为
v2 <- sort(v1)
从sort
ed vector
的任一端删除20%的观察值大约是第一和最后一个观察值被删除
mean(v2[-c(1, 7)])
#[1] 22.6
等于
mean(v1, trim = 0.2)
#[1] 22.6
-使用trim = 0.4
mean(v2[-c(1:2, 6:7)])
#[1] 22.33333
mean(v1, trim = 0.4)
#[1] 22.33333
答案 1 :(得分:0)
您展示的代码看起来像是来自 Datacamp 的中级 R 的示例。不幸的是,该课程没有进一步解释修剪后的含义以及何时应该实际使用它。我也发现自己很困惑为什么我们应该使用它。这是我发现的:
首先,修剪后的均值是集中趋势的稳健估计量。它的计算非常简单,因为您只需要 1) 在分布的每一侧删除预定数量的观测值,然后 2) 平均剩余的观测值。 通过这种方式,通过去除不对称分布每一侧的一些观察,对大部分观察的修剪平均估计相当好,并且其标准误差受异常值的影响较小(与“传统”均值相比) .
让我们看看您提供的 Datacamp 示例:
linkedin <- c(16, 9, 13, 5, 2, 17, 14)
facebook <- c(17, 7, 5, 16, 8, 13, 14)
如果你添加它们
link_and_fb <- linkedin+facebook
#You get
> link_and_fb
[1] 33 16 18 21 10 30 28
现在记住你想要一个 0.2 的修剪平均值。在这样做之前,R 会对你的向量进行排序
sorted <- sort(link_and_fb)
> sorted
[1] 10 16 18 21 28 30 33
假设您有 7 个观测值 (0.2*7 = 1.4),您将从分布的每一侧删除 1.4 个观测值。因此,您将去掉 10 和 33,然后将剩余观测值的总和除以 5
(16+18+21+28+30)/5 = 22.6
#Which is what you get with
mean(c(linkedin+facebook), trim = 0.2)
[1] 22.6