我正在尝试使用ggplot2
绘制一些基本模拟和多变量回归模型的图表,但我不知所措。
我正在使用Zelig 3.5
(因为较新的Zeligs有模拟故障)
根据我发现的博客,我试过这个
AppMod1 <- (s1$qi)
AppMod1 <- data.frame(AppMod1$ev)
AppMod1 <- melt(AppMod1, measure=1:86)
AppMod1 <- ggplot(AppMod1, aes(approve, year)) +
geom_point() +
geom_smooth(colour="blue") +
theme_tufte()
AppMod1
` 这没用。我收到了一个错误
“错误:测量数据中未找到的变量:NA”
我的模型是m1,m2和m3,我的模拟是m1和m2。我正在使用Zelig中的“批准”数据集。
模型计算如下
data(approval)
m1 <- zelig(approve~avg.price, model="ls", data=approval)
m2 <- zelig(approve~avg.price+sept.oct.2001+iraq.war, model="ls", data=approval)
m3 <- zelig(approve~avg.price+sept.oct.2001+avg.price:sept.oct.2001, model="ls", data=approval)
模拟是
x1 <- setx(m2, sept.oct.2001= 1)
s1 <- sim(m2, x=x1)
summary(s1)
x1 <- setx(m2, sept.oct.2001= 0)
s1 <- sim(m2, x=x1)
summary(s1)
oilprice <- min(approval$avg.price):max(approval$avg.price)
x2 <- setx(m2, sept.oct.2001=0, avg.price=oilprice)
s2 <-sim (m2, x=x2)
plot.ci(s2)
oilprice <- min(approval$avg.price):max(approval$avg.price)
x2 <- setx(m2, sept.oct.2001=1, avg.price=oilprice)
s2 <-sim (m2, x=x2)
plot.ci(s2)
答案 0 :(得分:0)
看起来您拨打melt
时出错了。
请注意,在第二行代码AppMod1 <- data.frame(AppMod1$ev)
中,您将覆盖您在第一行代码AppMod1 <- (s1$qi)
中所做的分配。因此,在这两行代码AppMod1
等于具有单列ev
的数据框之后。
现在melt
尝试融合此数据框,并且对melt
的调用表明有measure.vars
的86列,而实际上数据框中只有一列。这会导致您描述的错误。
我无法从您的代码中了解您期望AppMod1
看起来像什么。运行代码时,s1$qi
仅包含NULL
个值。至少,您需要AppMod1
包含approve
和year
的列,以便您的ggplot
代码按照书面形式工作。
希望这是足够的信息,现在继续。如果您在调用AppMod1
之前和之后显示期望melt
的内容,将会更容易提供其他帮助。