【问题标题】:Logistic regression plot in R gives a straight line instead of an S-shape curveR中的逻辑回归图给出一条直线而不是S形曲线
【发布时间】:2017-01-24 02:48:33
【问题描述】:

我正在绘制逻辑回归的结果,但我得到的不是预期的 S 曲线,而是这样的直线:

这是我使用的代码:

我从原始 x 轴创建了一系列数据,将其转换为数据框,然后预测并绘制线条。

 model = glm(SHOT_RESULT~SHOT_DISTANCE,family='binomial',data = df_2shot)
 summary(model)
 #Eqn : P(SHOT_RESULT = True) = 1 / (1 + e^-(0.306 - 0.0586(SHOT_DISTANCE)))

 r = range(df_2shot$SHOT_DISTANCE) # draws a curve based on prediction
 x_range = seq(r[1],r[2],1)
 x_range = as.integer(x_range)
 y = predict(model,data.frame(SHOT_DISTANCE = x_range),type="response")
 plot(df_2shot$SHOT_DISTANCE, df_2shot$SHOT_RESULT, pch = 16,
      xlab = "SHOT DISTANCE", ylab = "SHOT RESULT")
 lines(x_range,y)

旁注:我正在关注本教程:http://www.theanalysisfactor.com/r-glm-plotting/

任何见解将不胜感激!谢谢! :)

【问题讨论】:

    标签: r plot regression logistic-regression


    【解决方案1】:

    哈哈,我明白了。这是因为您绘制的范围。我从您的注释行中看到了曲线的函数形式,并将其定义为函数:

    f <- function (x) 1 / (1 + exp(-0.306 + 0.0586 * x))
    

    现在,如果我们绘图

    x <- -100 : 100
    plot(x, f(x), type = "l")
    

    Logistic 曲线在中间具有近乎线性的形状。这就是你的目标!

    【讨论】:

    • 啊,这只是情节的尺寸!谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2016-08-09
    • 2013-08-29
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    相关资源
    最近更新 更多