R语言中lm()模型summary输出里分类变量系数的解读
R线性模型系数解读问题解答
1. 模型理解是否正确?
你的理解不完全准确,有两个关键问题:
- Age的系数是-5.264e-03(即-0.005264),你写成了正数,正确的模型表达式应为:
Strength = -0.1838 + (-0.005264 * Age) + (0.326 * Sex.L) - Sex.L不是常规的0/1哑变量,它是正交多项式编码(后缀.L代表Legendre多项式),这种编码的取值逻辑和哑变量完全不同。
2. Sex的取值是1代表某一性别、0代表另一性别吗?
不是。对于只有两个水平的因子,Legendre正交多项式编码下,Sex.L的取值通常是**-1和1**,分别对应两个性别,而非0和1。这种编码的核心目的是让自变量之间正交,减少共线性影响。
3. 如何查看Sex.L对应哪个性别?
可以用以下几种R命令直接确认:
- 查看因子的编码规则:
输出结果会明确显示每个性别对应的Sex.L取值,比如若输出显示Male对应-1、Female对应1,就能直接对应上关系。contrasts(mydata$Sex) - 查看模型的设计矩阵,直观看到每个样本的Sex.L取值:
找到Sex.L列,结合数据中的Sex列就能匹配到具体性别。model.matrix(fit) - 先确认因子水平的默认顺序:
正交编码下,第一个水平通常对应-1,第二个对应1,再结合levels(mydata$Sex)contrasts()的结果验证即可。
内容的提问来源于stack exchange,提问作者PhelsumaFL
相关产品推荐
相关产品推荐

