簡體   English   中英

如何在R中的nls包(非線性模型)中計算R平方?

[英]How to calculate R-squared in nls package (non-linear model) in R?

我使用 nls 包分析了非線性回歸。

power<- nls(formula= agw~a*area^b, data=calibration_6, start=list(a=1, b=1))
summary(power)

我聽說在非線性模型中,R 平方無效,而不是 R 平方,我們通常顯示 R 提供的殘差標准誤差

但是,我只想知道 R 平方是什么。 是否可以在 nls 包中檢查 R 平方?

非常感謝!!!

  • 輸出

在此處輸入圖片說明

我找到了解決方案。 這種方法在統計方面可能不正確(因為 R^2 在非線性模型中無效),但我只想看看我的非線性模型的整體擬合優度。

步驟1>將數據轉換為對數(常用對數)

當我使用非線性模型時,我無法檢查 R^2

nls(formula= agw~a*area^b, data=calibration, start=list(a=1, b=1))

因此,我將數據轉換為日志

x1<- log10(calibration$area)
y1<- log10(calibration$agw)  

cal<- data.frame (x1,y1)

Step 2> 分析線性回歸

logdata<- lm (formula= y1~ x1, data=cal)
summary(logdata)

Call:
lm(formula = y1 ~ x1)

在此處輸入圖片說明

該模型提供,y= -0.122 + 1.42x

但是,我想強制截距為零,因此,

步驟 3> 強制截距為零

logdata2<- lm (formula= y1~ 0 + x1)
summary(logdata2)

在此處輸入圖片說明

現在方程是 y= 1.322x,這意味着 log (y) = 1.322 log (x),

所以它是 y= x^1.322。

在功率曲線模型中,我強制截距為零。 R^2 是 0.9994

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM