【发布时间】:2017-08-15 23:11:53
【问题描述】:
我对统计和 R 很陌生,所以我的问题可能有点愚蠢,但由于我无法在网上找到我的解决方案,我想我应该尝试在这里提问。
我有一个包含很多不同变量的数据框dataset,如下所示:
Item | Size | Value | Town
----------------------------------
A | 10 | 800 | 1
B | 11 | 100 | 2
A | 17 | 900 | 2
D | 13 | 200 | 3
B | 15 | 500 | 1
C | 12 | 250 | 3
E | 14 | NA | 2
A | | 800 | 1
C | | 800 | 2
基本上,我必须尝试根据物品的类型、价值和出售的城镇来“猜测”尺寸,所以我认为回归方法是个好主意。
我尝试使用多项式回归(尽管我什至不确定这是否正确)通过使用类似于以下的函数来查看它的外观:
summary(lm(Size~ polym(factor(Item), Value, factor(Town), degree=2, raw=TRUE), dataset))
但当我尝试执行此操作时收到此警告消息:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
In addition: Warning message:
In Ops.factor(X, Y, ...) : ‘^’ not meaningful for factors
谁能告诉我为什么会这样?更重要的是,我所做的是否正确?
我的第二个问题是关于回归中的 NA 值。在上面的数据集中,Value 列中有一个NA 值。据我了解,R 会忽略列中具有NA 值的行。但是如果我有很多 NA 值怎么办?此外,如果一列中只有一个 NA 值,那么自动消除整行似乎是浪费数据,所以我想知道是否有更好的方法来解决或解决这个问题。谢谢!
编辑:我还有一个问题:在我创建的回归模型中,测试数据中似乎存在新的“级别”,而这些新“级别”不在训练数据中(例如,错误为 factor(Town) has new levels)。对于这种情况,应该怎么做?
【问题讨论】:
-
从
polym中删除因子 - 您正在尝试对无意义的因子变量求平方。首先尝试lm(Size ~ factor(Item) + factor(Town) + Value,...),然后根据需要添加一个平方项Value。 -
@RemkoDuursma 啊,谢谢,我现在就试试 :)
标签: r statistics regression