簡體   English   中英

在R中擬合簡單的冪律函數

[英]Fitting a simple power law function in R

我想在經典表面積與體積關系上使用冪函數。

surfaceArea<-c(6,24,54)
volume<-c(1,8,27)

記錄數據可以獲取線性函數的參數值,如下所示

logSurfaceArea<-log10(surfaceArea)
logVolume<-log10(volume)

plot(logSurfaceArea~logVolume, pch =16)
allometryModel <-lm(logSurfaceArea~logVolume)
summary(allometryModel)

但是,如何獲得原始冪函數的參數值?

一種方法是使用數學思維方式。 假設y是surfaceArea, x是體積,那么適合lm函數的是:

log10(y)= a * log10(x)+ b,

然后

y = 10 ^(a * log10(x)+ b)= 10 ^(a * log10(x))* 10 ^ b =(10 ^(log10(x)))^ a * 10 ^ b = x ^ a * 10 ^ b

您可以檢查它繪制這些圖:

 plot(volume, volume^allometryModel$coeff[2]*10.0^allometryModel$coeff[1], col="red")
 plot(volume, surfaceArea)

請注意,如果您想使用lm函數提供的系數誤差,則需要正確傳播誤差。

暫無
暫無

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

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