gpt4 book ai didi

r - 是什么导致了这个错误?由于奇点而未定义系数

转载 作者:行者123 更新时间:2023-12-04 07:31:05 24 4
gpt4 key购买 nike

我正在尝试为我的数据找到一个模型,但我收到消息“系数:(3 未定义,因为奇点)”
这些发生在冬天,大和高流量

我找到了这个:
https://stats.stackexchange.com/questions/13465/how-to-deal-with-an-error-such-as-coefficients-14-not-defined-because-of-singu

它说它可能是不正确的虚拟变量,但我已经检查过我的列都不是重复的。

当我使用函数 alias() 时,我得到:

Model :
S ~ A + B + C + D + E + F + G + spring + summer + autumn + winter + small + medium + large + low_flow + med_flow + high_flow

Complete :
(Intercept) A B C D E F G spring summer autumn small medium
winter 1 0 0 0 0 0 0 0 -1 -1 -1 0 0
large 1 0 0 0 0 0 0 0 0 0 0 -1 -1
high_flow 1 0 0 0 0 0 0 0 0 0 0 0 0
low_flow med_flow
winter 0 0
large 0 0
high_flow -1 -1

我的数据的 A-H 列包含数值
剩余的列取 0 或 1,我已经检查过没有冲突的值(即,如果 spring = 1,则秋季 = 夏季 = 冬季 = 0)
model_1 <- lm(S ~ A+B+C+D+E+F+G+spring+summer+autumn+winter+small+medium+large+low_flow+med_flow+high_flow, data = trainOne)
summary(model_1)

有人可以解释错误吗?

编辑:我将数据更改为二进制之前的示例
season  size   flow  A  B   C   D   E   F   G  S
spring small medium 52 72 134 48 114 114 142 11
autumn small medium 43 21 98 165 108 23 60 31
spring medium medium 41 45 161 86 177 145 32 12
autumn large medium 40 86 132 80 82 138 186 16
winter medium high 49 32 147 189 125 43 144 67
summer large high 43 9 158 64 14 146 15 71

最佳答案

问题是完全共线性。即,

spring + summer + autumn + winter == 1
small + medium + large == 1
low_flow + med_flow + high_flow == 1
Constant term == 1

我的意思是,这些身份对于每个观察都是单独成立的。 (例如,只有一个季节等于一。)

因此,例如, lm无法区分截距和所有季节影响的总和。也许 thisthis将有助于更好地理解这个想法。从技术上讲,OLS 估计涉及在这种情况下不可逆的某个矩阵。

要解决此问题,您可以运行,例如,
model_1 <- lm(S ~ A + B + C + D + E + F + G + spring + summer + autumn + small + medium + low_flow + med_flow, data = trainOne)

另见 this question .

关于r - 是什么导致了这个错误?由于奇点而未定义系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53989003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com