当 formula=y~exp(x) 时如何解释 lm() 系数?
How to interpret lm() coefficients when formula=y~exp(x)?
我用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" )
我用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" )