使用 glm() 的 R 中的逻辑回归在绘图时在 xy.coords 中产生错误

Logistic regression in R using glm() produces error in xy.coords when plotting

我正在尝试在 R 中使用 glm 进行逻辑回归。我的数据 sheet measurement.csv 的结构如下:

subject,intensity,infarcted
MR101325,1.05767712056061,1
MR1017924,0.942893526332193,1
MR1034135,1.04579279903598,1
MR1048784,0.782340895322641,1
MR1085298,0.806187306821611,0
MR1132243,0.856600956071013,0
MR1140359,0.709137967989653,0
MR1142453,0.601887753777769,0

我使用以下方法将我的数据输入到 R 中并绘制出来

data1 <- read.csv ("measurement.csv", header=TRUE, stringsAsFactors=FALSE)
    
plot(x=data1$intensity,y=data1$infarcted)`

现在我想使用 glm 拟合逻辑回归并将直线添加到图中。

glm.stroke=glm(data1$infarcted ~ data1$intensity, data = data1, family = binomial)
lines(data1$infarcted,glm.stroke$fitted.values)

最后几行导致错误 Error in xy.coords(x, y) : 'x' and 'y' lengths differ。我怀疑问题出在我的计算方式上 glm.stroke$fitted.values,但我似乎无法找出确切的问题。

如果您的数据集中缺少 (NA) 值,您可能希望在拟合中使用 na.action=na.exclude,然后使用 fitted(glm.stroke) 而不是 glm.stroke$fitted.values。 (此外,不要在公式中包含 data1$:使用 infarcted ~ intensity)。

这个情节可能更有意义:

plot(infarcted ~ intensity, data = data1)
pframe <- data.frame(intensity=seq(min(intensity, na.rm=TRUE),
                                   max(intensity, na.rm=TRUE),
                                   length=51))
pframe$infprob <- predict(glm.stroke, newdata=pframe, type="response")
with(pframe, lines(intensity,infprob)