首页 > 解决方案 > R中basicTrendline包的功率回归

问题描述

我想为我的水质分析执行一个幂回归模型。在其中一个部分中,我有这两个系列数据:

 Q=  0.7409845 1.2736854 0.0713900 1.5316926 1.4607059 0.6124793 1.5902551 1.7286422
  1.6547936 1.6088377 1.6054299 1.7810355 1.4429110 1.1905836 2.2374064 1.3004641
 1.7137979 1.6578471 1.6386083 1.0181250

Cl= 1.6863990 0.9932518 1.7749524 1.1631508 2.0918641 0.9162907 1.1631508 1.3862944
  1.2809338 1.0647107 2.3978953 1.4350845 1.6677068 1.8245493 1.7578579 1.6677068
 1.4816045 1.3862944 1.2527630 1.3862944

我想像在 Excel 中执行的那样设置功率回归: 在此处输入图像描述

因此,请在 R 的图中显示方程、平方 R 和回归线。我只知道这项工作的基本趋势线包,它适用于线性模型,但适用于功率,不。

   library(basicTrendline)
Q = log(gol$debi)
Cl = log(gol$Cl)
trendline(x = Q,y = Cl, model ="power2P",show.pvalue = F
          ,ePos.x = "topleft",eDigit = 3,CI.level = 0.95,xlab = "Q",ylab = "Cl"
          ,type="p",Pvalue.corrected = F)

当我运行它时它显示了这条消息,而我的数据都没有低于零:

Error in trendline_summary(x = x, y = y, model = model, Pvalue.corrected = Pvalue.corrected,  : 
  
           'power2P' model need ALL x values greater than 0. Try other models.

请帮助我使用这个打包程序,其他我只想制作我在 R Studio 中发送图片的 excel 之类的东西。

标签: rexcelmodelnon-linear-regression

解决方案


结果似乎与 Excel 版本有点不同。想知道这些“日志”是否在不同的基础上完成?

 plot(log(Cl) ~ log(Q) )
 trendline <- lm(log(Cl)~log(Q))
 abline(trendline)
 trendline
#------
Call:
lm(formula = log(Cl) ~ log(Q))

Coefficients:
(Intercept)       log(Q)  
    0.37431     -0.02898  
#---------------
 title(main="Log(Cl)~Log(C)")

在此处输入图像描述

您的 Excel“日志”都大于 0,因此 Excel 不会使用 log-base-10。这将使价值更加消极。所以 0.7 的对数如何变成正数是一个很大的谜。也许您需要解释或引用这种“功率回归”方法。它看起来不像标准的统计数据或数学。


推荐阅读