理解局部多项式回归

时间:2016-10-13 17:02:13

标签: r regression

有人可以解释我为什么在拍摄时会得到不同的线条吗?不知怎的,我认为这条线应该是相同的

    data(aircraft)
    help(aircraft)
    attach(aircraft)

    lgWeight <- log(Weight)


    library(KernSmooth)

    # a) Fit a nonparametric regression to data (xi,yi) and save the estimated values mˆ (xi).

    # Regression of degree 2 polynomial of lgWeight against Yr
    op <- par(mfrow=c(2,1))
    lpr1 <- locpoly(Yr,lgWeight, bandwidth=7, degree = 2, gridsize = length(Yr))
    plot(Yr,lgWeight,col="grey", ylab="Log(Weight)", xlab = "Year")
    lines(lpr1,lwd=2, col="blue")
    lines(lpr1$y, col="black")

enter image description here

如何从模型中获取值?如果我打印模型,它会在$x$y上给出值,但如果我绘制它们,则不一定与蓝线相同。我需要每个x的拟合模型(蓝色)的值,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

拟合模型(蓝色曲线)在lpr1中正确显示。正如您所说,正确的y值位于lpr1$y,正确的x值位于lpr1$x

第二个图看起来像一条直线的原因是因为你只给plot函数一个变量lpr1$y。由于您没有指定x坐标,因此R将自动沿索引绘制它们,从1到y变量的长度。

以下是绘制曲线和直线的两种明确且等效的方法:

lines(x = lpr1$x, y = lpr1$y,lwd=2, col="blue")  # plots curve
lines(x = 1:length(lpr1$y), y = lpr1$y, col="black")  # plot line
相关问题