【问题标题】:Add fitted quadratic curve添加拟合二次曲线
【发布时间】:2013-02-02 08:02:08
【问题描述】:

我正在尝试将拟合的二次曲线添加到绘图中。

abline(lm(data~factor+I(factor^2)))

显示的回归是线性的而不是二次的,我收到以下消息:

消息 d'avis : 在 abline(lm(data ~ factor + I(factor^2)), col = 调色板[迭代]):使用 des deux Premiers des 3 回归系数

意思是:

使用 3 个回归系数中的前 2 个

仅运行 lm() 函数时,我没有收到任何消息。

这是一个示例数据:

factor <- 1:7
data <- c(0.1375000,0.2500000,0.3416667,0.4583333,0.7250000,0.9166667,1.0000000)

【问题讨论】:

    标签: r lm


    【解决方案1】:

    不要使用abline,而是使用fitted,它会为您提供一个与您的预测输入长度相同的向量:

    fitted(lm(data~factor+I(factor^2)))
    #         1         2         3         4         5         6         7 
    # 0.1248016 0.2395833 0.3699405 0.5158730 0.6773810 0.8544643 1.0471230 
    

    因此,类似于:

    plot(factor, fitted(lm(data~factor+I(factor^2))), type="l")
    

    【讨论】:

      【解决方案2】:

      到目前为止,我无法得到答案,因为我使用的数据集的 x 值没有增加(如上面 David Robinson 所述)。这是我解决它的方法...

      require(ISLR)
      plot(mpg~horsepower, data=Auto)
      
      # fit the model
      glm.fit = glm(mpg~poly(horsepower,2), data=Auto)
      
      # create 100 x-values based on min/max of plotted values
      minMax = range(Auto$horsepower)
      xVals = seq(minMax[1], minMax[2], len = 100) 
      
      # Use predict based on a dataframe containing 'horsepower'
      yVals = predict(glm.fit, newdata = data.frame(horsepower = xVals))
      
      lines(xVals, yVals)
      

      【讨论】:

        【解决方案3】:

        感谢所有这些有价值的答案。小心:

        使用

        使用基于包含“马力”的数据帧的预测

        yVals = predict(glm.fit, newdata = data.frame(horsepower=xVals)
        

        使用基于包含“马力”的数据帧的预测

        yVals = predict(lm.fit, newdata = data.frame(horsepower=xVals)
        

        lm.fit 是一个函数

        【讨论】:

          猜你喜欢
          • 2017-08-03
          • 2020-10-10
          • 2014-03-05
          • 2021-02-23
          • 2019-05-11
          • 1970-01-01
          • 2017-03-13
          • 2021-01-19
          • 1970-01-01
          相关资源
          最近更新 更多