为什么glm()和多项式()产生的图之间的差异

时间:2017-02-01 12:17:12

标签: r logistic-regression polynomials

library(polynom)
set.seed(12345)
x<-seq(1,5,0.01)
lp<-rnorm(401,-0.7,1)-20*x+7*x^2
link_lp <- exp(lp)/(1 + exp(lp))
y<-(runif(401) < link_lp)
f<-glm(y~poly(x,degree=2),family="binomial")
par(mfrow=c(1,3))
plot(x,f$linear.predictors)
plot(polynomial(coef(f)),xlim=c(1,5))
plot(x,f$fitted)

使用上述代码生成的数据

enter image description here

线性预测器和多项式()产生的数字应该是相同的,但实际上它们是不同的。我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

您需要学习help("poly")并需要了解正交多项式是什么。

f<-glm(y~poly(x,degree=2, raw = TRUE),family="binomial")
par(mfrow=c(1,3))
plot(x,f$linear.predictors)
plot(polynomial(coef(f)),xlim=c(1,5))
plot(x,f$fitted)

resulting plot