R语言-非线性拟合的实现-R包basicTrendline简介

标签:
r语言非线性拟合 |
使用过nls()来作非线性回归的朋友,感觉都要吐槽一下nls(formula, start = list(a =
, b = )里面的起始值(a,b)的设定,n次都设不对是怎样一个感受?抓狂到想要放弃用R有木有?
其实我们只想要像excel里面添加趋势线那样简单,就能得到非线性回归方程的各个结果而已。
最新CRAN正式上线的R函数包——“basicTrendline” package 终于解决了这个问题。
闲言太多,步入正题!
“basicTrendline”源代码直接点击
这里。 R函数包”basicTrendline”到底用来干什么?
用于一步完成绘图,添加线性或非线性拟合线,在图上显示回归方程及R2和回归模型的p值(不是参数的p值)。 并且,它默认会同时输出模型summary()的结果,即各参数的具体数值及SD值,t值,p值等等。
你能用通用的函数 “trendline()”,但只需改变参数 model 的值,即可输出不同的回归模型的结果以及图。
参数“model” 的值为 ‘lin2P’,’line3P’,’log2P’,’exp3P’,’power3P’的其中一个。
“line2P” # y=a*x+b
“line3P” # y=a*x^2+b*x+c
“log2P” # y=a*ln(x)+b
“exp3P” # y=a*exp(b*x)+c
“power3P” # y=a*x^b+c)
一个严肃的问题:它结果可信吗?
- 我们已经检测了我们的R函数包“basicTrendline”, 它工作性能稳定;
- 更重要的是它的拟合结果和商业软件OriginPro完全相等;
- 甚至对幂函数power函数(y=a*x^b +c)比OriginPro软件更好
(更高的R2,更低的p值,因为我们采取了优于Origin软件的selfStart计算方法)!在R中安装 “basicTrendline” 函数包
1. 直接从CRAN官方获取资源安装:
install.packages("basicTrendline") library(basicTrendline)
2. 使用Github资源安装:
install.packages("devtools") library(devtools) install_github("PhDMeiwp/basicTrendline@master", force = TRUE) library(basicTrendline)
使用 “basicTrendline” 函数包
建立 x,y数据集,比如:
x<-c(1,30,90,180,360) y<-c(4,8,10,11,11)
然后运行:
library(basicTrendline)
trendline(x,y,model="exp3P", summary=TRUE, eDigit=10, ePos="topleft",linecolor="red")