R语言绘制Logistic曲线失败:曲线未显示问题的解决方案求助
解决Logistic曲线无法显示的问题
我帮你排查出两个导致曲线不显示的核心问题,咱们一步步来修正:
问题1:X1是字符类型,无法进行回归拟合
从你提供的dput结果能看到,X1列的数值都是字符串格式(带引号),ggplot没法用字符型变量做连续的回归拟合,所以第一步要把它转换成数值型。
问题2:geom_smooth的method参数错误
你用了method = "lm",但lm是普通线性回归,要拟合logistic模型得用method = "glm",再配合family = "binomial"参数才对。
修正后的完整代码
library(tidyverse) # 先转换X1为数值型,再拟合绘图 los1 %>% mutate( X1 = as.numeric(X1), # 关键:把字符转成数值 prob = ifelse(X2 == "Yes", 1, 0) ) %>% ggplot(aes(X1, prob)) + geom_point(alpha = 0.2) + geom_smooth(method = "glm", se = FALSE, method.args = list(family = "binomial")) + # 改成glm labs( title = "Logistic Regression Model", x = "Plasma Glucose Concentration", y = "Probability of being diabetes-positive" )
额外提示
你可以先检查一下转换后的数据有没有异常值(比如X1里的264.13这类极大值),如果需要的话可以考虑做数据截断或者变换,让曲线的展示效果更直观。
内容的提问来源于stack exchange,提问作者lola
相关产品推荐
相关产品推荐

