r中的对数线性拟合绘图

logarithmic linear fit plotting in r

我有一个数据框对应于每个变量的频率 (例子:变量1出现1984次,变量2出现974次...)

dff<-data.frame(Var1=c(1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11, 12 ,13 ,14 ,15 ,16 ,27, 30 ,35 ,36 ,38 ,39 ,40 ,41), Freq=c(1984,  974,  464 , 251 , 127 ,  83 ,  45 ,  26  , 16  , 12 ,   9   , 5 ,   5  ,  2    ,3  ,  1   , 1  ,  1 ,   1   , 2  ,  5,4,2,1))

plot(dff$Var1,log(dff$Freq))

对数图

如图所示,存在线性回归,

我只是想找到一种方法,只能拟合线性拟合与x轴相交的回归部分。

因为,我需要提取其他未拟合线性拟合的点(dff$Var1=20 之后的点),这意味着不是噪声点

这个怎么样:

plot(dff$Var1, log(dff$Freq))
lr <- lm(log(Freq) ~ Var1, data = dff[dff$Var1 < 20, ])
abline(lr)

分界点是 20。但您可以根据自己的工作进行调整。

如果要计算

where the linear fit intersect the x axis.

获取系数:

coef(lr)
(Intercept)        Var1 
  7.4636699  -0.4741615 

并求解方程7.4636699 + Var1*(-0.4741615) = 0.