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

在R语言中使用lm函数执行线性回归,如何获取结果中的n值?

获取线性回归模型的样本量n

嘿,这问题我经常碰到,给你分享几个简单靠谱的方法来获取线性回归的样本量n:

首先建议你先把拟合的模型和结果存到变量里,这样后续操作更方便:

# 拟合线性回归模型并保存
model <- lm(y ~ b1 + b2)
# 生成模型摘要并保存
summary_model <- summary(model)

方法1:用nobs()函数(最推荐)

R里有个专门的函数nobs()可以直接返回模型的样本量,不管是传入lm对象还是它的summary对象都能生效:

# 从lm对象获取
sample_size <- nobs(model)
# 或者从summary对象获取
sample_size <- nobs(summary_model)

这个函数会自动返回实际参与拟合的有效样本量(也就是剔除了含缺失值的观测后的数量),完全符合你的需求。

方法2:从模型的残差长度获取

每个参与拟合的观测都会对应一个残差值,所以残差向量的长度就是样本量:

sample_size <- length(model$residuals)

方法3:通过自由度计算

回归模型的残差自由度等于n - p(其中p是模型的参数个数,包括截距项),所以反过来就能算出n:

# 残差自由度
residual_df <- summary_model$df.residual
# 模型参数个数(截距+b1+b2,共3个)
param_count <- length(coef(model))
# 计算样本量
sample_size <- residual_df + param_count

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:50:57