だから私はスクリプトに以下を使用しています:
area <- c(1854,2001,2182,2520,4072,1627,1308,1092,854,1223,2231,1288,898,2328,1660,6018,5420,943,1625,1095,1484,929,1178,4072,2413)
weight1 <- c(24281,28474,33725,40707,76124,16263,12190,10153,8631,13690,34408,15375,8806,36245,20506,109489,104014,11308,23262,11778,20650,8771,12356,76124,28346)
weight <- weight1/1000
df <- data.frame(weight = log10(weight), area = log10(area))
fit_line <- predict(lm(area ~ weight, data=df))
fit_power <- predict(nls(area ~ i*weight^z, start=list(i=2,z=0.7), data=df))
plot(df$weight,df$area)
lines(df$weight,fit_line,col="red")
lines(sort(df$weight),sort(fit_power), col="blue")
ログを実行するには-ログプロット。で直線をプロットできますlm()
が、パワーフィットを使用nls()
すると、直線ではなく曲線がプロットされます。以下を参照してください。
パワーフィットを直線の形でプロットするにはどうすればよいですか、またはからどのように導出できますかlm()
。だから私は次の形で答えを持っています:y = a * x ^ b