首页 文章

添加拟合二次曲线

提问于
浏览
10

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

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

显示的回归是线性的而不是二次的,我得到这样的信息:

Message d'avis:在abline(lm(data~factor I(factor ^ 2)),col = palette [iteration]):利用des deux premiers des 3 systemsderégression

意思是:

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

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

这是一个示例数据:

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

3 回答

  • 10

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

    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")
    
  • 0

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

    require(ISLR)
    plot(mpg~horsepower,data=Auto)
    
    
    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(lm.fit, newdata = data.frame(horsepower=xVals))
    
    lines(xVals, yVals)
    
  • 3

    感谢所有这些有 Value 的答案 . 小心点:

    使用

    根据包含'horsepower'的数据框使用预测

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

    根据包含'horsepower'的数据框使用预测

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

    lm.fit是一个功能

相关问题