R语言优雅进行nls模型分析
2023-02-18 16:35:32 时间
❝本节来介绍如何使用R语言进行「nls」模型分析,通过两个案例进行介绍;代码过程很是简洁,各位观众老爷细细品味 ❞
案例一
加载R包
library(tidyverse)
library(ggpmisc)
library(gginnards)
library(ggtext)
nls分析即可视化
args <- list(formula = y ~ k * e ^ x,
start = list(k = 1, e = 2))
ggplot(mtcars,aes(wt,mpg)) +
geom_point() +
stat_fit_augment(method = "nls",method.args = args) +
stat_fit_tidy(method = "nls",method.args = args,label.x = "right",
label.y = "top",
aes(label = sprintf("\"y\"~`=`~%.3g %%*%% %.3g^{\"x\"}",
after_stat(k_estimate),
after_stat(e_estimate))),parse = TRUE )
❝第一种方法非常简单,但是通用性不强只适合数据量小的数据集进行分析,若使用数据较多则会进行报错提示,那么处理起来就比较棘手,下面介绍第二种方法分步进行「nls」分析。 ❞
案例二
nlsFit <- nls(formula=`mpg` ~ k*e^`wt`,
start = list(k=1,e=2),
data=mtcars,
control=nls.control(maxiter=200))
Nonlinear regression model
model: mpg ~ k * e^wt
data: mtcars
k e
49.6597 0.7456
residual sum-of-squares: 213.5
Number of iterations to convergence: 10
Achieved convergence tolerance: 2.043e-06
构建标签
nlsParams <- nlsFit$m$getAllPars()
nlsEqn <- substitute(italic(y) == k %.% e^ italic(x),
list(k=format(nlsParams['k'],digits=3),
e=format(nlsParams["e"],digits=3)))
dlabel <- tibble(label="y = 49.7*0.746<sup>x</sup>",x=4,y=35)
自定义添加标签
ggplot(mtcars,aes(wt,mpg)) +
geom_point()+
stat_smooth(method = 'nls',
method.args = list(start = c(a=1, b=1)),
formula = y~a*exp(b*x), se = FALSE)+
geom_richtext(data=dlabel,aes(x=x,y=y,label=label),
fill=NA,label.color=NA,show.legend = F)+
theme_bw()
相关文章
- JAVA只要掌握内部类,多继承和单继承都不是问题
- 今儿直白的用盖房子为例,给你讲讲Java建造者模式
- 用实例带你深入理解Java内存模型
- 你知道,java项目中是如何获取文件地址的吗?
- 【架构师(第十五篇)】脚手架之创建项目模板开发
- 【架构师(第十六篇)】脚手架之创建项目模板的下载与更新
- 【架构师(第十八篇)】脚手架之项目模板的安装
- 【架构师(第十九篇)】脚手架之组件库模板开发
- 【架构师(第二十篇)】脚手架之自定义模板及第一阶段总结
- 【架构师(第二十一篇)】编辑器开发之需求分析和架构设计
- 【架构师(第二十二篇)】编辑器开发之项目整体搭建
- 【架构师(第二十三篇)】编辑器开发之画布区域组件的渲染
- 【架构师(第二十四篇)】编辑器开发之添加模版到画布
- Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序
- 我以订披萨为例,给女朋友详细讲了Java设计模式的3种工厂模式
- 【架构师(第二十五篇)】编辑器开发之属性编辑区域表单渲染
- 【架构师(第二十六篇)】编辑器开发之属性编辑同步渲染
- 2021年度“CCF-腾讯犀牛鸟基金”发布结题评优结果
- 【架构师(第二十七篇)】前端单元测试框架 Jest 基础知识入门
- 太空噗|重燃太空热潮!与噗噗星人一同探索星海浪漫