[R] how to plot a logarithmic regression line
David Winsemius
dwinsemius at comcast.net
Sun Feb 23 01:57:31 CET 2014
On Feb 22, 2014, at 1:06 PM, arun wrote:
> HI,
> Try ?curve
>
> fit <- lm(Mean_Percent_of_Range~log(No.ofPoints))
> coef(fit)
> # (Intercept) log(No.ofPoints)
> # -74.52645 46.14392
>
>
>
> plot(Mean_Percent_of_Range ~ No.ofPoints)
> curve(coef(fit)[[1]]+coef(fit)[[2]]*log(x),add=TRUE,col=2)
>
>
> A.K.
>
>
>
> I realize this is a stupid question, and I have honestly tried to find
> the answer online, but nothing I have tried has worked. I have two
> vectors of data:
>
> "Mean_percent_of_range"
> 10.90000 17.50000 21.86667 25.00000 25.40000 26.76667 29.53333
> 32.36667 43.13333 41.80000 50.56667 49.26667 50.36667 51.93333
> 59.70000 63.96667 62.53333 60.80000 64.23333 66.00000 74.03333
> 70.40000 77.06667 76.46667 78.13333 89.46667 88.90000 90.03333
> 91.60000 94.30000 95.50000 96.20000 96.50000 91.40000 98.20000
> 96.60000 97.40000 99.00000 100.00000
>
> and
> "No.ofPoints"
> 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
> 39 40 41 42 43
>
> When I plot these, I get a logarithmic curve (as I should for this type of data)
>> plot(Mean_Percent_of_Range ~ No.ofPoints)
>
> All that I want to do is plot best fit regression line for that
> curve. From what I have read online, it seems like the code to do that
> should be
>> abline(lm(log(Mean_Percent_of_Range) ~ log(No.ofPoints)))
> but that gives me a straight line that isn't even close to fitting the data
>
> How do I plot the line and get the equation of that line and a correlation coefficient?
The 'abline' function is not what you want. Use 'lines' to plot multiple points.
Perhaps:
mod <- lm(log(Mean_percent_of_range) ~ log(No.ofPoints))
plot(log(Mean_percent_of_range), log(No.ofPoints))
lines( log(No.ofPoints), predict(mod))
#------------
> summary(mod)
Call:
lm(formula = log(Mean_percent_of_range) ~ log(No.ofPoints))
Residuals:
Min 1Q Median 3Q Max
-0.32617 -0.04839 0.00962 0.05316 0.17316
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.19840 0.08060 14.87 <2e-16 ***
log(No.ofPoints) 0.94228 0.02609 36.12 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.09455 on 37 degrees of freedom
Multiple R-squared: 0.9724, Adjusted R-squared: 0.9717
F-statistic: 1305 on 1 and 37 DF, p-value: < 2.2e-16
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list