poly 有反函数吗?

Is there an inverse function for poly?

我们可以在 R 中生成正交多项式 pp <- poly(cars$speed, 2) 有没有办法从结果 pp(反多边形函数)中获取原始值?

换句话说,函数 f 应该是什么样子 returns 结果如下:

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