目前,我有一些数据,说它们存储在data.frame
data$y
和data$x
中。我使用log(y) = a + bx + cx^2
以fit <- lm(log(data$y) ~ data$x + I(data$x^2), data=data)
格式对此数据进行回归,格式为plot(log(data$y), data$x)
。
我已经使用函数fit <- lm(log(data$y) ~ data$x + I(data$x^2), data=data)
plot(log(data$y), data$x)
# what goes here to plot the fit?
绘制了一个散点图。
FROM ubuntu:latest
EXPOSE 80
ENV HELLO world \
&& DOCKER whale
RUN # Run stuff
COPY source /to/container
CMD # Do stuff
如何在情节上绘制此表格的曲线?是否有一种简单的方法来绘制它,例如,某些函数只是允许在散点图上绘制曲线?
答案 0 :(得分:4)
这不是内置函数(我知道),但predict()
+ lines()
非常简单。
设置示例:
set.seed(101)
dd <- data.frame(x=rnorm(100))
dd$y <- with(dd,exp(rnorm(100,mean=2+3*x-x^2,sd=0.5)))
适合:(请注意,不在公式中使用data$
)
fit <- lm(log(y) ~ x + I(x^2), data=dd)
简介:
plot(log(y)~x,data=dd)
添加预测:
newx <- seq(min(dd$x),max(dd$x),length.out=100)
lines(newx,predict(fit,newdata=data.frame(x=newx)))
您可以直接使用dd$x
而不是构建newx
,但当预测变量稀疏和/或不规则时,均匀间隔的点会更好。
另一种可能性是ggplot2
:
library(ggplot2)
ggplot(dd,aes(x,log(y)))+geom_point()+
geom_smooth(method="lm",formula=y~x+I(x^2))