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

如何基于预设线性方程构建模型对象并检验数据拟合度?

解决方案

方法一:使用fixest包(简便推荐)

fixest包支持固定系数的回归建模,无需手动计算统计量,直接调用summary()就能得到所需的拟合指标。

操作步骤:

  1. 安装并加载fixest包:
install.packages("fixest")
library(fixest)
  1. 基于给定方程构建模型,指定固定系数:
    假设你的数据存储在数据框df中,包含变量e(利率)、x1(通胀)、x2(产出):
# 用feols()固定系数,fixef.coef参数传入预设的系数值
mod <- feols(e ~ 1 + x1 + x2, data = df, 
             fixef.coef = c(`(Intercept)` = 2, x1 = 1.5, x2 = 0.5))
  1. 查看拟合指标:
summary(mod)

输出结果会包含调整R²、系数的标准误、t值、p值等你需要的统计量。

方法二:基础R手动构建lm对象

如果不想额外安装包,可以手动修改lm模型对象的组件,让summary()能正确计算指标:

操作步骤:

  1. 先创建一个空的lm模型框架(用于获取结构):
mod <- lm(e ~ x1 + x2, data = df)
  1. 替换模型的系数为预设值:
mod$coefficients <- c(2, 1.5, 0.5)
  1. 重新计算拟合值和残差:
mod$fitted.values <- predict(mod, newdata = df)
mod$residuals <- df$e - mod$fitted.values
  1. 计算并填充关键统计量:
# 残差自由度
mod$df.residual <- nrow(df) - length(mod$coefficients)
# 残差平方和与总平方和
rss <- sum(mod$residuals^2)
tss <- sum((df$e - mean(df$e))^2)
# R²与调整R²
mod$r.squared <- 1 - rss/tss
mod$adj.r.squared <- 1 - (rss/mod$df.residual)/(tss/(nrow(df)-1))
# 残差标准差
mod$sigma <- sqrt(rss/mod$df.residual)
# 计算系数的方差-协方差矩阵
X <- model.matrix(mod)
mod$vcov <- mod$sigma^2 * solve(t(X) %*% X)
  1. 查看结果:
summary(mod)

此时summary()会输出包含调整R²、系数的标准误、p值等指标的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:17:35