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

R语言calibrate.lm()报错:仅允许一个自变量,求解决方案

问题原因与解决方案

报错根源

calibrate.lm() 执行逆预测时要求模型仅包含一个自变量,你当前代码里的模型 speed~Logdist+LogdistSq+LogdistCube 有3个自变量,违反了这个限制,所以触发Only one independent variable allowed报错。而且你原本需求是基于speed~dist模型估计,代码却偏离成了多自变量模型。

修正方案

回归单自变量模型(符合你的原始需求),以下是修正后的代码:

library(investr)

cars

List <- vector()

NoSamples <- 50
GivenSpeed <- 12.5

p <- 0.2
SampleSize <- floor(p*nrow(cars))

# 重复采样并执行逆预测
for (i in 1:NoSamples) {
  # 采样测试集
  Index <- sample(1:nrow(cars), size = SampleSize, replace=TRUE)
  SAMPLE <- cars[Index ,]
  
  # 使用单自变量模型:speed~dist(或根据需要换成单变换模型如speed~log(dist))
  ModelSAMPLE <- lm(speed~dist, data=SAMPLE)
  
  # 执行逆预测:给定speed值,估计对应的dist
  Pred_dist <- calibrate(ModelSAMPLE, y0=GivenSpeed, interval = "Wald", level=0.95)
  
  List <- append(List, Pred_dist$estimate)
}

补充说明

  • 如果你确实需要使用dist的变换形式(比如对数),可以改成单变换的单自变量模型,比如lm(speed~log(dist), data=SAMPLE),同样符合calibrate()的要求。
  • 逆预测的核心是给定因变量y反推自变量x,多自变量场景下无法得到唯一的x解,因此calibrate()仅支持单自变量线性模型的逆预测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 16:12:31