【问题标题】:How to generate OUTLIER-FREE data in R?如何在 R 中生成 OUTLIER-FREE 数据?
【发布时间】:2016-02-21 08:49:04
【问题描述】:

我想知道如何使用 R 生成无异常数据。 我正在使用 RNORM 生成数据。

假设我有一个线性方程

   Y = B0 + B1*X + E,     where X~N(5,9) and E~N(0,1).

我将使用 RNORM 生成 X 和 E。 以下是使用的代码:

  X <- rnorm(50,5,3)       #I'm generating 50 Xi's w/ mean=5 & var=9
  E <- rnorm(50,0,1)       #I'm generating 50 residuals w/ mean=0 & var=1

现在,我将通过将生成的 X 和 E 上的数据代入线性方程来生成 Y。

如果我在上面生成的数据没有异常值(没有影响观察),那么库克的观察距离不应超过 4/n,这是检测有影响/异常观察的通常截止值。

但到目前为止,我无法做到这一点。按照此过程生成数据后,我仍然会遇到异常值。

你能帮我解决这个问题吗?您知道如何生成无异常数据的方法吗?

非常感谢!

【问题讨论】:

    标签: r random linear-regression


    【解决方案1】:

    嗯,一种方法是通过查找超过某个截止值的生成点来检测和删除这些异常值。当然,这会损害您生成的数据中的“随机性”,但您对无异常数据的请求意味着根据定义。可能,减小 X 的方差也会有所帮助。

    【讨论】:

    • 我无法删除异常数据。那将是对模拟数据的篡改,正如您所说,会损害生成数据的“随机”过程。我已经尝试减少 X 的方差,结果仍然相同。
    【解决方案2】:

    是否有特殊原因需要 X 呈正态分布?回归中的正态性假设适用于残差(误差项)。通常,测量的自变量不会呈正态分布——在平衡的(准)实验设置中,X 应该接近均匀分布。 X 的均匀分布(甚至是使用seq() 生成的均匀划分的序列)将在这里为您提供帮助,因为离群值的“离群值”源于远离样本空间的中心并且数量相对较少。通过均匀分布,它们的数量不再很少,从而降低了它们的影响力。

    作为补充:真实数据存在异常值。这实际上是我们可以在科学中检测修改甚至伪造数据的方法之一。如果您对与现实中的某些事物相对应的模拟感兴趣,那么异常值可能不是一件坏事。并且有很多稳健的方法可以以有原则的方式处理具有任意不良异常值的数据,而不是任意截止点。

    【讨论】:

    • 嗨,利维厄斯!实际上,我的目标是模拟可以在线性和非线性建模中使用的无异常数据。我将尝试在均匀分布下生成 X,看看这是否会使我的数据无异常值。顺便说一句,您知道生成无异常数据的其他方法吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 2022-07-05
    • 2021-01-07
    • 2012-05-16
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多