问题描述
我使用 lm() 函数来获得指数曲线并且效果很好(公式是 y~exp(x))。 但我不明白如何手动使用系数?
我做 lm(y~exp(x)),提取系数: b = 截距 a = 系数
然后,如果我尝试使用以下命令“手动”进行预测: a * exp(x) + b 结果是错误的。
但是使用 predict() 它完全正常。所以我想我不明白 lm() 是如何做模型的?
编辑:只是混合了所有东西哈哈,效果很好。
解决方法
此代码表明您的方法应该有效:
set.seed( 100 )
x <- rnorm(10)
y <- runif(10)
m <- lm( y~exp(x) )
cf <- coef(m)
yp1 <- predict( m,newdata=data.frame(x=x) )
yf <- fitted.values(m)
stopifnot( max( abs(yp1 - yf) ) < 1e-10 )
yp2 <- cf[1] + cf[2] * exp(x)
stopifnot( max( abs(yp1 - yp2) ) < 1e-10 )
cat( "Hi-Ho Silver - Away!\n" )