在 R 中绘制逻辑回归,但我不断收到错误

Plotting Logistic Regression in R, but I keep getting errors

我正在尝试在 R 中针对连续自变量和二分因变量绘制逻辑回归。我对 R 的经验非常有限,但我的教授要求我将这张图添加到我正在写的论文中,他说 R 可能是创建它的最佳方式。无论如何,我敢肯定这里有很多错误,但这是之前在 Whosebug 上建议的那种:

ggplot(vvv, aes(x = vvv$V1, y=vvv$V2)) + geom_point() + stat_smooth(method="glm", family="binomial", se=FALSE) 
curve(predict(ggg, data.frame(V1=x), type="response"), add=TRUE)     

其中 vvv 是我的 csv 文件的名称(2 个变量的 31 个观测值),V1 是连续变量,V2 是二分变量。此外,ggg(30 人名单?)如下:

ggg<- glm(formula = vvv$V2 ~ vvv$V1, family = "binomial", data = vvv)    

ggplot 函数生成我的数据点的图表,但没有逻辑回归曲线。曲线函数导致以下错误:

 "Error in curve(predict(ggg, data.frame(V1 = x), type = "resp"), add = TRUE) : 'expr' did not evaluate to an object of length 'n'    

In addition: Warning message:'newdata' had 101 rows but variables found have 31 rows"    

我不确定问题出在哪里,而且我找不到针对这个特定问题的资源。有人可以帮忙吗?将不胜感激:)

编辑:感谢任何回复的人!我的数据 vvv 如下,其中百分比是特定区域中某个物种 presence/absence 的初始概率,1 和 0 表示该物种是否最终被观察到。:

    V1  V2
1   95.00%  1
2   95.00%  0
3   95.00%  1
4   92.00%  1
5   92.00%  1
6   92.00%  1
7   92.00%  1
8   92.00%  1
9   92.00%  1
10  92.00%  1
11  85.00%  1
12  85.00%  1
13  85.00%  1
14  85.00%  1
15  85.00%  1
16  80.00%  1
17  80.00%  0
18  77.00%  1
19  77.00%  1
20  75.00%  0
21  70.00%  1
22  70.00%  0
23  70.00%  0
24  70.00%  1
25  70.00%  0
26  69.00%  1
27  65.00%  0
28  60.00%  1
29  50.00%  1
30  35.00%  0
31  25.00%  0

正如@MrFlick 评论的那样,V1 可能是一个因素。因此,首先您必须将其更改为数字 class。这只是将“%”替换为空并除以 100,因此您将得到数字 class:

的比例
vvv$V1<-as.numeric(sub("%","",vvv$V1))/100

这样做,您可以使用自己的代码,并且您将获得逻辑回归图:

ggplot(vvv, aes(x = vvv$V1, y=vvv$V2)) + geom_point() + stat_smooth(method="glm", family="binomial", se=F) 

这不仅应该打印点,还应该打印逻辑回归曲线。我不明白使用 curves 有什么意义。从你的问题我可以理解,这足以满足你的需要。