前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言优雅进行nls模型分析

R语言优雅进行nls模型分析

作者头像
R语言数据分析指南
发布2022-12-20 19:58:51
6840
发布2022-12-20 19:58:51
举报

❝本节来介绍如何使用R语言进行「nls」模型分析,通过两个案例进行介绍;代码过程很是简洁,各位观众老爷细细品味 ❞

案例一

加载R包
代码语言:javascript
复制
library(tidyverse)
library(ggpmisc)
library(gginnards)
library(ggtext)

nls分析即可视化

代码语言:javascript
复制
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」分析。 ❞

案例二

代码语言:javascript
复制
nlsFit <- nls(formula=`mpg` ~ k*e^`wt`,
              start = list(k=1,e=2),
              data=mtcars,
              control=nls.control(maxiter=200))
代码语言:javascript
复制
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

构建标签

代码语言:javascript
复制
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)

自定义添加标签

代码语言:javascript
复制
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()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 案例一
    • 加载R包
    • nls分析即可视化
    • 案例二
    • 构建标签
    • 自定义添加标签
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档