首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

basicTrendline:CRAN最新发布的线性非线性拟合的R函数包介绍

CRAN官网链接: https://cran.r-project.org/web/packages/basicTrendline/index.html

使用过nls()来作非线性回归的朋友,感觉都要吐槽一下nls(formula, start = list(a =, b =)里面的起始值(a,b)的设定,n次都设不对是怎样一个感受?抓狂到想要放弃用R有木有?

其实我们只想要像excel里面添加趋势线那样简单,就能得到非线性回归方程的各个结果而已。

最新CRAN正式上线的R函数包——“basicTrendline” package 终于解决了这个问题。

先来看两张效果图(第一张为log线性回归,第二张为包含线性和非线性回归方程的组合图):

闲言太多,步入正题!

R函数包”basicTrendline”到底用来干什么?

用于一步完成绘图,添加线性或非线性拟合线,在图上显示回归方程及R2和回归模型的p值(不是参数的p值)。 并且,它默认会同时输出模型summary()的结果,即各参数的具体数值及SD值,t值,p值等等。

一个严肃的问题:它结果可信吗?

我们已经检测了我们的R函数包“basicTrendline”, 它工作性能稳定;

更重要的是它的拟合结果和商业软件OriginPro完全相等

甚至对幂函数power函数(y=a*x^b +c)比OriginPro软件更好

(更高的R2,更低的p值,因为我们采取了优于Origin软件的selfStart计算方法)!

在R中安装 “basicTrendline” 函数包

1. 直接从CRAN官方获取资源安装:

2. 使用Github资源安装:

使用 “basicTrendline” 函数包

建立 x,y数据集,比如:

然后运行:

你能用通用的函数 “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)

创新点(再强调一下而已)

“basicTrendline”函数包对幂函数的拟合(’power3P’ model:y = ax^b +c)能得到比OriginPro软件更好的结果(更高的R^2,更低的p值)。为什么呢?因为我们采取了比OriginPro软件更高级的针对幂函数回归的selfStart算法呀,其实核心是OriginPro软件里面的幂函数回归没有考虑数据的 凹凸趋势(增凹趋势,降凸趋势等等,文末 Examples 的代码里有提到)。下面是例子:

formula as y=a*x^b +c

x

y

OriginPro软件结果:

c=-7344.578

a=7347.183

b=43224.4

adjR^2= 0.97129 # lower adjR^2 value

p-value of model=2.24891e-4

‘basicTrendline’函数包结果:

c=34.671

a=-32.703

b=-0.13999

adjR^2= 0.99346 > 0.97129 # higher (or better ) adjR^2 value

p-value of model= 2.44924-5 < 2.24891e-4

输出图

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180113G0LBVA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券