![](/img/trans.png)
[英]How to fit logarithmic regression to a “negative exponential” scatterplot in R
[英]Exponential fit on logarithmic scale R
这是我的代码:
a<-c(0.83, 1.67, 2.5, 3.33,6.39)
b<-c(34252553.89, 34430947.5, 36494798.86, 66156794.56, 248698700.1)
plot(a,b)
plot(a,b, log='y')
现在我想为我的情节添加指数拟合(应该与对数刻度呈线性关系)
我怎样才能做到这一点?
你可以使用lm
:
dat <- as.data.frame(cbind(a,b))
绘制数据:
plot(log(b)~a, data=dat)
适合线性模型:
fit <- lm(log(b) ~ a, data=dat)
summary(fit)
Call:
lm(formula = log(b) ~ a, data = dat)
Residuals:
1 2 3 4 5
0.27207 -0.04616 -0.30751 -0.03222 0.11383
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 16.75764 0.20360 82.31 3.95e-06 ***
a 0.38502 0.05798 6.64 0.00696 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.2481 on 3 degrees of freedom
Multiple R-squared: 0.9363, Adjusted R-squared: 0.9151
F-statistic: 44.09 on 1 and 3 DF, p-value: 0.006959
预测值并绘制它们:
lines(predict(fit)~dat$a)
这对你有帮助吗?
使用基本绘图,您需要在外部调整数据并添加它。 使用ggplot2
更容易做到这一点。 例如:
dat <- data.frame(x=a,y=b)
library(ggplot2)
ggplot(dat,aes(x=x,y=y))+
geom_point(size=5) +
stat_smooth(method='glm')+
scale_y_log10()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.