我有一个tibble,它有2列200行。第一行是OS的总生存天数,另一行是性别的“m”或“f”。任何地方都没有缺失值。
现在,如果我想用finalfit做一个多变量对数表达式,像这样:
library(tidyverse)
library(finalfit)
fit <- data %>%
finalfit("OS","Sex",metrics = TRUE)
并得到以下输出:
[[1]]
Dependent: OS unit value Coefficient (univariable) Coefficient (multivariable)
Sex f Mean (sd) 568.8 (380.6) - -
m Mean (sd) 601.5 (378.0) 32.75 (-77.03 to 142.52, p=0.557) 32.75 (-77.03 to 142.52, p=0.557)
所以它基本上不产生女性的系数,只产生男性的系数,我在处理更多的分类变量时也遇到了这个问题,函数对于分类变量的某个值不返回系数。
对于连续变量,我没有这个问题,例如使用年龄而不是性别。
我不知道为什么会这样。任何关于从哪里开始调试的帮助都很感激。
1条答案
按热度按时间deikduxw1#
这是模型的期望行为。假设你想用
sex
预测y
,sex
的值为m
和f
。你要寻找的是m
和f
的系数。这将给予你一个设计矩阵,看起来像:你可以看到
Intercept
,m
和f
是完全共线的,因为f = Intercept-m
,f
是Intercept
和m
的完全线性变换。这意味着没有唯一的解来找到所有三个系数。你用finalfit()
估计的模型为你提供了相关信息。