我试图用对数轴制作一个简单的体型/体重回归图,但我似乎无法在图中拟合直线回归线。
我尝试过使用untf功能,但没有生成任何行。
以下是我尝试的简化示例:
config/routes.rb
我已经查看了之前有关同一问题的问题,但无法找到适合我的任何解决方案。
答案 0 :(得分:2)
在对数刻度中绘制原始变量不同于在原始刻度中绘制(拟合的回归线)对数变换后的变量,我们应该做后者以获得所需的结果(绘制拟合的回归线与原始比例中的对数转换变量),mtcars数据集的示例:
plot(log(mtcars$mpg)~log(mtcars$wt)) # plot the log-transformed variables, not in log-scale
reg=lm(log(mtcars$mpg)~log(mtcars$wt))
abline(reg, untf=F)
另一种选择是以对数比例绘制所有内容,但在原始比例中拟合回归线。
plot(mtcars$mpg~mtcars$wt, log="xy")
reg=lm(mtcars$mpg~mtcars$wt)
abline(reg, untf=T)
当我们想要将对数刻度图与回归拟合与log-tranformed结合使用时,用OLS计算的截距不是对数刻度的,所以我想我们需要用它进行一些对数转换,但它会产生下面的图,具有正确的线斜率,但偏移量不正确。
plot(mtcars$mpg~mtcars$wt, log="xy")
reg=lm(log(mtcars$mpg)~log(mtcars$wt))
abline(log(reg$coefficients[1]), reg$coefficients[2], untf=F)
答案 1 :(得分:0)
我发现如果我按如下方式生成对数转换数据的线性回归:
plot(logWet.weight~logAverageBL, data=mtrosslog)
reg<-lm(logWet.weight~logAverageBL, data=mtrosslog)
Call:
lm(formula = logWet.weight ~ logAverageBL, data = mtrosslog)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.73798 0.11997 -31.16 <2e-16 ***
logAverageBL 2.86705 0.09002 31.85 <2e-16 ***
然后用log-log轴生成一个图,我可以将从对数转换数据(reg)生成的回归拟合到这个未转换数据图中:
plot(Wet.weight~Average.BL, data = mtross, log = 'xy')
ablineclip(reg)
答案 2 :(得分:0)
您仍然可以将回归线直接绘制到对数-对数图上。您只需要使用以10为底的对数(因为这就是对数-对数图所使用的)。
plot(mtcars$mpg~mtcars$wt, log="xy")
reg=lm(log(mtcars$mpg,base=10)~log(mtcars$wt,base=10))
abline(reg, untf=F)