问题描述
我们可以在 R 中生成正交多项式
pp <- poly(cars$speed,2)
有没有办法从结果pp
(逆多边形函数)中获取原始值?
换句话说,返回以下结果的函数 f
应该是什么样子:
f(poly(cars$speed,2)) == cars$speed
?
解决方法
cars$speed
对于某些标量 a 和 b 必须是 a + b * pp[,1] 形式,并且知道 poly 对象的 coefs
属性包含可用于重建的值,我们找到 cars$speed
的以下重构为 speed
。
pp <- poly(cars$speed,2)
speed <- with(attr(pp,"coefs"),alpha[1] + sqrt(norm2)[3] * pp[,1])
all.equal(speed,cars$speed)
## [1] TRUE