gpt4 book ai didi

r - 在 r 中,获取 'a' 和 'b' 值的功率曲线输出值

转载 作者:行者123 更新时间:2023-12-04 02:43:28 24 4
gpt4 key购买 nike

对于这个基本问题,我深表歉意,但无论出于何种原因,我真的被困住了。我希望从 y = a*x^b 的 'a' 和 'b' 的幂曲线中获得输出值。假设我有这个数据集:

 x       y       log10(x)         log10(y)
7 240 0.84509804 2.380211242
45 610 1.653212514 2.785329835
14 340 1.146128036 2.531478917
30 500 1.477121255 2.698970004
24 450 1.380211242 2.653212514
57 690 1.755874856 2.838849091

它在 excel 中生成此图: enter image description here

使用 excel 示例,我如何在 r 中获取 a=2.465 和 b=0.2401 的输出值。

最佳答案

您的数据:

DF <- read.table(text="x       y       log10(x)         log10(y)
7 240 0.84509804 2.380211242
45 610 1.653212514 2.785329835
14 340 1.146128036 2.531478917
30 500 1.477121255 2.698970004
24 450 1.380211242 2.653212514
57 690 1.755874856 2.838849091", header=TRUE)

创建自启动模型:(免责声明:函数名不代表本人政治立场,仅符合自启动函数的命名方案。)

SSpower <- selfStart(~ A*x^B,
function(mCall, data, LHS)
{
xy <- sortedXyData(mCall[["x"]], LHS, data)
if(nrow(xy) < 3) {
stop("Too few distinct x values to fit a power function")
}
z <- xy[["y"]]
xy[["logx"]] <- log(xy[["x"]])
xy[["logy"]] <- log(xy[["y"]])
aux <- coef(lm(logy ~ logx, xy))
pars <- c(exp(aux[[1]]), aux[[2]])
setNames(pars,
mCall[c("A", "B")])
}, c("A", "B"))

使用自启动模型进行拟合:

fit <- nls(y ~ SSpower(x, A, B), data=DF)

剧情:

plot(y~x, data=DF)
lines(x=1:60, y=predict(fit, newdat=list(x=1:60)))

enter image description here

关于r - 在 r 中,获取 'a' 和 'b' 值的功率曲线输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19375182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com