使用R

时间:2017-08-15 23:11:54

标签: r statistics regression

我对统计数据和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)。对于像这样的案件,做什么是正确的?

1 个答案:

答案 0 :(得分:1)

是的,请关注@ RemkoDuursma使用lm(Size ~ factor(Item) + factor(Town) + Value,...)的建议,并通过比较残差来查看其他学位(您选择平方的原因吗?)。

关于替换NA值,您有很多选择:

  1. 用中值变量值替换所有
  2. 用平均变量值替换所有
  3. 根据其他变量的值将每个替换为预测
  4. 祝你好运,下次你可能想看看https://stats.stackexchange.com/