trim参数在mean()函数中代表什么?

时间:2019-05-21 13:49:12

标签: r

我只是不明白修剪的概念。我以为一开始是四舍五入,但这没有道理。任何人都可以澄清一下这里的装饰吗?

# 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参数。欢迎对如何阐明这一概念发表任何评论。

2 个答案:

答案 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