簡體   English   中英

R中的冪回歸系數與Excel不匹配

[英]Coefficients from power regression in R do not match Excel

我在R和Excel中都創建了長度與干重的冪回歸方程,但是系數不匹配。

我從此鏈接使用了Hong Ooi的答案R中的冪回歸類似於excel 在該代碼中,他們能夠使用R代碼從Excel復制冪方程。 但是,當我嘗試時,我得到了一些非常奇怪的系數。 使用隨機長度進行測試時,來自冪趨勢線的Excel方程更為精確。

代碼如下:

#sample dataset of Lengths and Dry Masses
test <- structure(list(
  Length = c(23, 17, 16, 25, 15, 25, 11, 22, 13, 21, 31), 
  DryMass = c(3.009, 1.6, 1, 4.177, 0.992, 6.166, 0.7, 1.73, 0.613, 3.429, 7.896)), 
  .Names = c("Length", "DryMass"), 
  row.names = c(NA, 11L), 
  class = "data.frame")

#log-log regression
lm(formula = log(Length) ~ log(DryMass), data = test)

Coefficients:
 (Intercept)  log(DryMass)  
      2.7048        0.3413  

一旦我轉換了截距(EXP(2.7048)= 14.9515),這應該給我方程式“ 14.9515 * x ^ 0.3413”。 我試圖用一些隨機長度對其進行測試,但預測還很遙遠。

但是,Excel給出的公式為“ 0.0009 * x ^ 2.6291”,經測試,該公式非常准確。 我只是使用Excel中的方程式,但我需要再增加50個方程式,並希望使用R將其自動化。

您正在嘗試擬合以下模型。

library(ggplot2)
ggplot(test, aes(x = log(DryMass), y = log(Length))) +
  theme_bw() +
  geom_point() +
  scale_y_continuous(limits = c(0, 5)) +
  geom_smooth(formula = y ~ x, method = "lm", se = FALSE)

在此處輸入圖片說明

我相信(截距)(第一個系數)是線在x = 0處與y交叉的位置。 在上面的圖像中,該值似乎介於2.5和3之間,所以說2.8,如果您問我的話,這很接近2.7。 也許Excel是錯誤的,在這種情況下,我建議您聯系他們的作者? 或者,也許您正在Excel中做某事而在這里沒有被聽到,因此可以說該工具的可重復性。

編輯:

您在R中切換了x和y。

mod_linearized <- lm(formula = log(DryMass) ~ log(Length), data = test)

exp(coef(mod_linearized)[1])
# (Intercept) 
#0.0008775079 

舊答案(可能仍然有用):

線性化模型的逆變換與非線性模型不同,因為誤差項不同:

逆變換的線性化模型導致乘法誤差:y = exp(a)* x ^ b * exp(epsilon)

非線性模型具有加法誤差:y = a * x ^ b + epsilon

基本上,線性化等效於數據點的不同加權(較大的值加權較小)。 這實際上可能是理想的(取決於您的特定數據生成過程)。 但是有時您想要相等的權重,然后應該擬合非線性模型。

您可以在R中進行非線性回歸:

mod_linearized <- lm(formula = log(Length) ~ log(DryMass), data = test)

exp(coef(mod_linearized)[1])
#(Intercept) 
#   14.95152 


mod_nonlinear <- nls(Length ~ a * DryMass ^ b, data = test, 
                     #use result from linearization as starting values:
                     start = list(a = exp(coef(mod_linearized)[1]), 
                                  b = coef(mod_linearized)[2]))

coef(mod_nonlinear)[1]
#      a 
#15.2588 

暫無
暫無

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

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