【问题标题】:Finding variance of a subset of data from a scatterplot从散点图中查找数据子集的方差
【发布时间】:2016-10-05 03:56:28
【问题描述】:

我有一个 x 与 y 的散点图。我在情节的中间画了一条abline。我想计算 abline 左侧点的方差,我想计算 abline 右侧点的方差。这很可能是一个相对简单的问题,但我正在努力寻找解决方案。任何建议表示赞赏。提前致谢。

    x = rnorm(100,mean=12,sd=2)
    y = rnorm(100,mean=20,sd=5)
    data = as.data.frame(cbind(x,y))
    plot(x=x,y=y,type="p")
    abline(v=12,col="red")

【问题讨论】:

  • 请阅读:reproducible exampleshelp/mcve
  • 查看?resid - resid(lm(y ~ x)) > 0 以定义最佳拟合线两侧的组。也许 - tapply(y, resid(lm(y~x))>0, var) 但你必须明确你想要什么。
  • 抱歉,我已经包含了一些示例代码。查看情节时,我的目标是获取红线左侧的点并找到方差。然后我想找到线右侧点的方差,以便我可以比较方差。

标签: r scatter-plot variance


【解决方案1】:

在您的示例代码中,您有一条垂直线v = 12。您的数据点 (x, y) 分为两组,分别为 x < 12x >= 12。这样做很简单:

var(y[x < 12])
var(y[x >= 12])

但我们也可以使用单个调用tapply

tapply(y, x < 12, FUN = var)

更一般地,如果您有一条线y = a * x + b,其中a 是斜率,b 是截距,您的数据点(x, y) 将分为两组:y &lt; a * x + b(线下方)和@ 987654333@(上图),方便大家使用

tapply(y, y < a * x + b, FUN = var)

【讨论】:

  • 谢谢,这成功了。我知道这并不像我做的那么困难。
猜你喜欢
  • 2022-01-07
  • 2020-07-09
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 1970-01-01
  • 2011-06-21
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多