You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中基于指定R²值生成回归数据集:求解残差SD计算方法

生成指定R²的回归数据集(R语言实现)

核心逻辑

R²代表回归拟合值的方差占总y值方差的比例,公式为:

R² = Var(ŷ) / Var(y) = 1 - Var(e)/Var(y)

其中ŷ是回归拟合值,e是服从均值为0的正态分布的残差。我们可以通过这个公式反推出残差的标准差sd_e。

具体步骤与代码

1. 生成自变量x

根据给定范围生成200个随机样本:

n <- 200
x_min <- 23
x_max <- 30
x <- runif(n, x_min, x_max) # 生成均匀分布的x,也可用seq生成等距值

2. 计算回归拟合值ŷ

代入给定的回归参数:

a <- 55.118
b <- 1.218
y_hat <- a - b * x

3. 推导残差的标准差sd_e

先计算拟合值ŷ的方差,再结合R²公式求解:

r_squared <- 0.47
var_yhat <- var(y_hat) # 也可用理论值:b^2 * ((x_max - x_min)^2 / 12)
var_e <- var_yhat * (1 - r_squared) / r_squared
sd_e <- sqrt(var_e)

4. 生成残差与最终y值

set.seed(123) # 设置随机种子确保结果可复现
e <- rnorm(n, mean = 0, sd = sd_e)
y <- y_hat + e

5. 验证结果

用线性回归验证生成数据的R²是否符合预期:

model <- lm(y ~ x)
summary(model)$r.squared # 结果应接近0.47

注意事项

  • 若x采用等距序列,拟合值的方差var(y_hat)会和理论计算值完全一致。
  • 受随机抽样影响,生成数据集的R²会与0.47略有偏差,样本量越大偏差越小。

内容的提问来源于stack exchange,提问作者TKH_9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:42:51