【发布时间】:2017-06-12 19:43:03
【问题描述】:
我对房价数据集进行了 OLS 回归。我计算了每栋房屋的误差与预测值。我在数据框中有一列,其中包含每所房屋所属的城镇。我想计算每个城镇的 MAPE。我的数据框看起来像这样:
HomePr Error Town
1390 0.40093 Clarkvile
2010 0.348902 Petersburg
2393 0.348902 Petersburg
2000 0.348902 Clarkvile
7030 0.348902 Pleasant Place
4025 0.348902 Petersburg
4000 0.348902 Millerstown
2086 0.348902 Pleasant Place
6058 0.348902 Schneider
2000 0.348902 Jebtown
我想通过Town 计算 MAPE。所以我的第一步是获取唯一Towns 的列表,然后使用共享该组的所有Errors 计算 MAPE。然后我想要一个新的专栏DF$Mape,它会给我 MAPE,它只使用每组 Town 中的房屋。
我不确定该怎么做。寻找建议。
【问题讨论】:
-
假设 HomePr 是实际值,然后做
tapply(X = df$Error/df$HomePr, INDEX = df$Town, mean) -
您应该查看 dplyr 包。您可以 group_by(Town),然后 mutate(Mape = HomePr * Error) 或您将使用的任何公式。在此处查看 dplyr 备忘单:rstudio.com/wp-content/uploads/2015/02/…
-
@Vlo 这实际上看起来不错,但有没有办法将它作为新列附加到 df 上?
-
x <- tapply(X = df$Error/df$HomePr, INDEX = df$Town, mean); merge(df, data.frame(Town = names(x), MAPE = x))
标签: r statistics grouping