我对统计数据和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
值。在上面的数据集中,我在NA
列中有一个Value
值。根据我的理解,R忽略列中具有NA
值的行。但是,如果我有很多NA
值呢?此外,如果列中只有一个NA
值,则自动消除整行似乎浪费数据,所以我想知道是否有更好的方法来解决或解决此问题。谢谢!
编辑:我还有一个问题:在我创建的回归模型中,测试数据中出现了新的“级别”,这些级别不在训练数据中(例如,错误显示为factor(Town) has new levels
)。对于像这样的案件,做什么是正确的?
答案 0 :(得分:1)
是的,请关注@ RemkoDuursma使用lm(Size ~ factor(Item) + factor(Town) + Value,...)
的建议,并通过比较残差来查看其他学位(您选择平方的原因吗?)。
关于替换NA值,您有很多选择: