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

时间:2015-01-01 23:20:20

标签: r logistic-regression

我试图在R中绘制逻辑回归,用于连续自变量和二分因变量。我对R的经验非常有限,但是我的教授让我把这个图添加到我写的一篇论文中,他说R可能是创建它的最好方法。无论如何,我确定这里有很多错误,但这是之前在StackOverflow上提出的那种错误:

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如下,其中百分比是特定区域中物种存在/不存在的初始概率,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

1 个答案:

答案 0 :(得分:0)

正如@MrFlick评论的那样,V1可能是一个因素。所以,首先你必须将它改为数字类。这只是替代&#34;%&#34;什么都没有,除以100,所以你将比例作为数字类:

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有什么意义。从我的问题中我可以理解,这足以满足您的需求。