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

make.tran生成asin.sqrt变换后,joint_tests报错的解决方法咨询

joint_tests()处理asin.sqrt变换模型时出错的解决办法

问题重现

构建的模型代码:

tran = make.tran("asin.sqrt", 100)

mod <- with(tran,
lm(linkfun(cty) ~ manufacturer +  drv * linkfun(hwy), data = mpg))

执行joint_tests(mod)生成方差分析表时出现错误:

joint_tests(mod)
Error in ratios && true.con && misc$tran %in% c("log", "log2", "log10",  : 
  'length = 5' in coercion to 'logical(1)'

但emmeans可以正常识别该变换,运行结果如下:

emmeans(mod, ~ manufacturer, type = "response")
manufacturer response    SE  df lower.CL upper.CL
 audi             15.0 0.258 214     14.4     15.5
 chevrolet        16.1 0.240 214     15.7     16.6
 dodge            16.2 0.216 214     15.8     16.6
 ford             16.6 0.223 214     16.2     17.1
 honda            17.4 0.390 214     16.7     18.2
 hyundai          16.1 0.289 214     15.5     16.7
 jeep             16.5 0.362 214     15.8     17.2
 land rover       15.2 0.480 214     14.2     16.1
 lincoln          15.7 0.634 214     14.4     16.9
 mercury          16.0 0.479 214     15.1     17.0
 nissan           16.8 0.289 214     16.2     17.3
 pontiac          14.8 0.423 214     14.0     15.7
 subaru           16.9 0.356 214     16.2     17.6
 toyota           16.9 0.206 214     16.5     17.3
 volkswagen       16.5 0.248 214     16.0     17.0

Results are averaged over the levels of: drv 
Confidence level used: 0.95 
Intervals are back-transformed from the asin(sqrt(mu/100)) scale 

解决办法

方法1:手动创建变换变量后拟合模型

直接手动生成变换后的响应变量和协变量,避免make.tran的结构导致joint_tests识别异常:

# 手动计算asin.sqrt变换(基于100的缩放)
mpg$cty_tran <- asin(sqrt(mpg$cty / 100))
mpg$hwy_tran <- asin(sqrt(mpg$hwy / 100))

# 拟合线性模型
mod2 <- lm(cty_tran ~ manufacturer + drv * hwy_tran, data = mpg)

# 执行joint_tests
joint_tests(mod2)

方法2:使用基础包的anova()替代

如果仅需要效应的联合检验结果,线性模型可以直接用anova()函数,输出标准方差分析表:

anova(mod2)

方法3:手动修复模型的变换属性

报错根源是模型的misc$tran属性为长度5的向量,导致逻辑判断失败。手动设置为单个字符串即可:

# 给原模型添加正确的变换属性
mod$misc$tran <- "asin.sqrt"

# 重新运行joint_tests
joint_tests(mod)

此方法保留了make.tran的变换信息,不影响后续emmeans的使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:21:02