如何绘制用于预测虹膜数据集的glm输出的图

时间:2014-05-30 10:40:15

标签: r regression data-visualization

我在数据集的iris值上运行glm函数。预测和回归模型完美地运作,但我无法绘制相同的图。

这是我的代码 -

   #glm
    library(datasets)
    isSetosa=(iris$Species == 'setosa');
     newcol = data.frame(isSetosa)
     traindata1 <- cbind(iris, newcol)
     head(traindata1)

    formula1 <- isSetosa ~ Petal.Length + Sepal.Width 
    #control=glm.control(maxit=50) increases the number of iterations
    glm <- glm(formula1,data = traindata1,family="binomial",control=glm.control(maxit=50))
    summary(glm)
    prob <- predict(glm,testdata,type = 'response')
    round(prob,3)

    plot(  iris$Petal.Length+iris$Sepal.Width,isSetosa)
    with(subset(iris,Species == 'setosa'),points(iris$Sepal.Width,iris$Petal.Length, col = "blue"))

    curve(predict(glm,iris = x,type="resp"),add=TRUE)

我面临的问题是最后一行即曲线,或者我必须说我正面临整个绘图基础的问题,因为我对这个R及其理解我是一个新的...

我想知道这个特定的例子或任何例子 -

  1. 情节首先应该是什么样的,一般来说它必须是X. 这是我输入的输入是(petal.Length + Sepal.Width)和y应该是输出,即isSetosa。该怎么办? 我的实际数据图看起来像
  2. 我应该如何将线性回归输出绘制到我的数据或预测中。
  3. 目前我得到的情节看起来像 -

    enter image description here

    在询问此查询之前,我已经进行了很多研究,是的,我发现了很多类似的问题,但我无法做到这一点。

1 个答案:

答案 0 :(得分:0)

我能够管理为线性回归绘制的线

plot(  iris$Petal.Length+iris$Sepal.Width,isSetosa)
with(subset(iris,Species == 'setosa'),points(iris$Sepal.Width,iris$Petal.Length, col = "blue"))

lines(testdata$Petal.Length + testdata$Sepal.Width,prob)