2016-02-17 3 views
0

Я хочу использовать функцию питания в классическом соотношении площади поверхности к объему.Установка простой функции закона мощности в 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) 

Но как я могу получить значение параметров для исходной функции питания?

+0

Вы начинаете с модели, в которой 'S = k * V^alpha', затем берете' журнал', и вы получаете 'logS = log k + alpha * log V'. Это линейная модель, которую вы оценили в объекте 'allometryModel'. Как вы видите, перехват - это «log k», поэтому «k = exp (intercept)». Коэффициент 'alpha' является коэффициентом' logVolume'. – nicola

ответ

1

Один из способов сделать это - использовать математический способ мышления. Скажем у является площадь поверхности и х объемно, то, что вы фитинг с лм функция заключается в следующем:

log10 (у) = а * log10 (х) + б,

затем

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.

+0

Так что это довольно крутой способ получить функцию закона власти. Могу ли я настроить его так, чтобы я мог извлечь коэффициенты из этой модели? –