2016-02-25 44 views
0

我建立逻辑回归模型在x轴(称为“mylogit”)使用GLM功能中的R,如下所示:排序中的R

mylogit <- glm(answer ~ as.factor(gender) + age, data = mydata, family = "binomial") 

其中年龄是数字和性别分类(男性和女性) 。

然后我开始用建好的模型做出预测。

pred <- predict(mylogit, type = "response") 

我可以很容易地通过做使预测的时间序列图:

plot.ts(ts(pred)) 

给一个情节,看起来像这样:

Plot of Time against Predictions

这给出了一个阴谋的预测。

我的问题是这样的: 根据glm中指定的性别(男性或女性)是否可以将x轴放入段中?换句话说,我可以预测y轴,并且在x轴上有性别(分为男性和女性)吗?

我想从绘制数据的样本与此类似:

我所做的:

bind = cbind(mydata, pred) 

'捆绑' 看起来是这样的:

pred   age  gender 
0.9461198  32   male 
0.9463577  45   female 
0.9461198  45   female 
0.9461198  37   female 
0.9477645  40   male 
0.8304513  32   female 
+0

所以基本上你想排序的X轴,而不是添加任何额外的轴?在这种情况下,我认为你应该改变问题的标题。 – Backlin

+0

@Backlin会做 – user1783739

+0

太棒了,您还可以添加一个小样本数据集,例如:与'输入(头(mydata))'?我想问题是你从ts(pred)获得的对象已经以某种随机的不想要的方式排序,但是如果没有与你相同的数据很难说清楚。也许在用'glm'建模之前基于性别对'mydata'进行排序可能会解决问题。 – Backlin

回答

1

退房# 4,this blog post,“4.如何创建两个不同的X轴或Y轴”。

我给你的建议是,你看看一些专用的R绘图工具,如ggplot2

+1

请注意,在ggplot它积极劝阻有多个轴和相当诀窍实现 - 看到这个问题http://stackoverflow.com/questions/3099219/plot-with-2-y-axes-one-y-axis在左边和另一个Y轴在右边 – bdecaf

+2

'ggplot2'不会帮助你在这里。基于[图形语法](http://www.springer.com/gb/book/9780387245447),它认为任何需要多轴的图形在其设计中本质上存在缺陷。就我所知,您必须坚持使用基本图形。 – Backlin

+0

关于ggplot理论和执行的好处。我之所以建议ggplot正是因为它确实有一种非常具体的做事方式,即框架,并且可以帮助您思考如何使用R。 –

0

我不认为你需要使用tsplot.ts,因为你拥有的数据不是时间序列,对不对?在绘图之前对pred进行排序。

# Get data 
str <- "pred,age,gender 
0.9461198,32,male 
0.9463577,45,female 
0.9461198,45,female 
0.9461198,37,female 
0.9477645,40,male 
0.8304513,32,female" 
bind <- read.csv(textConnection(str)) 

# Plot 
bind <- bind[order(bind$gender),] 
plot(bind$pred, col = bind$gender) 

library(ggplot2) 
ggplot(bind, aes(x = gender, y = pred)) + 
    geom_point(position = position_jitter(width = .3)) 

或者不创建bind你可以做plot(pred[order(mydata$gender)])

+0

伟大的洞察力。那么问题就是如何确定x轴上的男性或女性,并相应地标记它们。 – user1783739

+0

您可以按性别对点进行着色或分组点图(请参阅更新后的答案)。 – Backlin

+0

你是数据分析的天才 – user1783739