R 如何为绘图上的每个因子添加回归线
我已经创建了一个模型,我正在尝试添加适合数据两部分的曲线,绝缘和无绝缘。我在考虑使用绝缘系数作为真/假术语,但我不确定如何将其转换为代码。条目1:56为“w/o”,条目57:101为“w/”。我不确定如何包含我正在使用的数据,但这里是头尾信息:R 如何为绘图上的每个因子添加回归线,r,plot,R,Plot,我已经创建了一个模型,我正在尝试添加适合数据两部分的曲线,绝缘和无绝缘。我在考虑使用绝缘系数作为真/假术语,但我不确定如何将其转换为代码。条目1:56为“w/o”,条目57:101为“w/”。我不确定如何包含我正在使用的数据,但这里是头尾信息: month year kwh days est cost avgT dT.yr kWhd.1 id insulation 1 8 2003 476 21 a 33.32 69 -8 22.66667 1
month year kwh days est cost avgT dT.yr kWhd.1 id insulation
1 8 2003 476 21 a 33.32 69 -8 22.66667 1 w/o
2 9 2003 1052 30 e 112.33 73 -1 35.05172 2 w/o
3 10 2003 981 28 a 24.98 60 -6 35.05172 3 w/o
4 11 2003 1094 32 a 73.51 53 2 34.18750 4 w/o
5 12 2003 1409 32 a 93.23 44 6 44.03125 5 w/o
6 1 2004 1083 32 a 72.84 34 3 33.84375 6 w/o
month year kwh days est cost avgT dT.yr kWhd.1 id insulation
96 7 2011 551 29 e 55.56 72 0 19.00000 96 w/
97 8 2011 552 27 a 61.17 78 1 20.44444 97 w/
98 9 2011 666 34 e 73.87 71 -2 19.58824 98 w/
99 10 2011 416 27 a 48.03 64 0 15.40741 99 w/
100 11 2011 653 31 e 72.80 53 1 21.06452 100 w/
101 12 2011 751 33 a 83.94 45 2 22.75758 101 w/
bill$idggplot2
使这比基本打印容易得多。像这样的方法应该会奏效:
ggplot(bill, aes(x = avgT, y = kWhd.1, color = insulation)) +
geom_smooth(method = "lm", formula = y ~ x + I(x^2), se = FALSE) +
geom_point()
在base
中,我将创建一个数据帧,其中包含您要预测的点,如
pred_data = expand.grid(
kWhd.1 = seq(min(bill$kWhd.1), max(bill$kWhd.1), length.out = 100),
insulation = c("w/", "w/o")
)
pred_data$prediction = predict(m1, newdata = pred_data)
然后使用行
将预测添加到绘图中。我的基本图形非常生锈,因此如果您需要,我将把它留给您(或其他回答者)。在基本R中,订购x
-值很重要。由于这需要在多个因素上完成,因此我们可以通过by
来完成,从而生成一个列表L
由于您的示例数据不完整,这里有一个例子,代码<> IRIS >我们考虑<代码>物种<代码>作为“因素”。
收益率
可能有一个ggplot(…组=绝缘)
缺失?
pred_data = expand.grid(
kWhd.1 = seq(min(bill$kWhd.1), max(bill$kWhd.1), length.out = 100),
insulation = c("w/", "w/o")
)
pred_data$prediction = predict(m1, newdata = pred_data)
L <- by(iris, iris$Species, function(x) x[order(x$Petal.Length), ])
with(iris, plot(Sepal.Width ~ Petal.Length, col=Species))
sapply(seq(L), function(x)
lines(L[[x]]$Petal.Length,
predict(loess(Sepal.Width ~ Petal.Length, L[[x]], span=1.1)), # span=1.1 for smoothing
col=x))