从散点图中查找数据子集的方差
Finding variance of a subset of data from a scatterplot
我有一个 x 与 y 的散点图。我在情节的中间画了一条斜线。我想计算 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")
在您的示例代码中有一条垂直线 v = 12
。您的数据点 (x, y)
分为两组,即 x < 12
和 x >= 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 < a * x + b
(在线下方)和y >= a * x + b
(在线上方),以便您可以使用
tapply(y, y < a * x + b, FUN = var)
我有一个 x 与 y 的散点图。我在情节的中间画了一条斜线。我想计算 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")
在您的示例代码中有一条垂直线 v = 12
。您的数据点 (x, y)
分为两组,即 x < 12
和 x >= 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 < a * x + b
(在线下方)和y >= a * x + b
(在线上方),以便您可以使用
tapply(y, y < a * x + b, FUN = var)