R 如何绘制实际值和预测值?

R 如何绘制实际值和预测值?,r,R,我是一名统计学的学生,我想请求一些帮助。我想在我的数据集中绘制100天内的预测值和实际值: 样本数据: set.seet(1010) count<-rpois(100, lambda = 5) mood<- rbinom(100, size = 1, prob = .7) temp<-rnorm(100, mean = 20, sd = 5) win

我是一名统计学的学生,我想请求一些帮助。我想在我的数据集中绘制100天内的预测值和实际值:

样本数据:

             set.seet(1010)
             count<-rpois(100, lambda = 5)
             mood<- rbinom(100, size = 1, prob = .7)
             temp<-rnorm(100, mean = 20, sd = 5)
             wind<-rbinom(100, size = 3, prob = .7)
             days<-seq(1,100,by=1)
             df<-data.frame(count,mood,temp,wind,days)
回归:

             poisson <- glm(count ~mood+wind+temp)
我被卡住了。因此,我希望在一个绘图上获得100天的预测值和实际值


谢谢

您的对象
poisson
属于
glm
类,因此在给定任何数据时,它有一个
predict
方法

poisson <- glm(count ~mood+temp+ wind)
df$pred<-predict(poisson,df[,2:4])
plot(df$days,df$count)
lines(df$days, df$pred,type='l',col='blue')
poisson试试这个:

set.seed(1010)
count<-rpois(100, lambda = 5)
mood<- rbinom(100, size = 1, prob = .7)
temp<-rnorm(100, mean = 20, sd = 5)
wind<-rbinom(100, size = 3, prob = .7)
days<-seq(1,100,by=1)
df<-data.frame(count,mood,temp,wind,days)
poisson <- glm(count ~ mood+wind+temp
               , family = poisson() #specify your model type
               , data=df)

# Calculate the predicted
phat.poisson <- predprob(poisson)  # for each subj, prob of observing each value
phat.poisson.mn <- apply(phat.poisson, 2, mean) # mean predicted probs

#your plot of observed vs. predicted
hist(count, prob = TRUE, col = "grey60", breaks=seq(-0.5, 12.5, 1), xlab = "Counts",main = NULL, ylim=c(0, .20))
lines(x = seq(0, 12, 1), y = phat.poisson.mn, lty=2, lwd=2, col="red")
points(x = seq(0, 12, 1), y = phat.poisson.mn, cex=1, pch=16, col="red")
set.seed(1010)

首先谢谢你。是否有可能在一个绘图中同时绘制预测值和实际值?是的,您可以使用
绘图
绘制数据,然后使用
覆盖预测,如上所示。这就是你的意思吗?嗨,谢谢。为什么不可能用系数coeff.p1乘以我的预测值的每一行?我想你应该看看
help(expand.grid)
help(predict.glm)
中的文档。也许你也应该熟悉一下
glm
@Mamba返回的对象类,你走对了方向-你想要的预测是
coef
值和每行数据值的点积。但是,
poisson$coef
有一个
Intercept
值,它是一个全局偏移量,与一个预测值无关。关键是,
poisson$coef
的长度为4,但数据的每一行的长度为3,
df[,2:4]
。所以你可以做这个
预测
              coeff.p1 <- poisson$coefficients
              XB <- c(,2:4)%*%t(coeff.p1)
              Error in c(, 2:4) : argument 1 is empty
poisson <- glm(count ~mood+temp+ wind)
df$pred<-predict(poisson,df[,2:4])
plot(df$days,df$count)
lines(df$days, df$pred,type='l',col='blue')
set.seed(1010)
count<-rpois(100, lambda = 5)
mood<- rbinom(100, size = 1, prob = .7)
temp<-rnorm(100, mean = 20, sd = 5)
wind<-rbinom(100, size = 3, prob = .7)
days<-seq(1,100,by=1)
df<-data.frame(count,mood,temp,wind,days)
poisson <- glm(count ~ mood+wind+temp
               , family = poisson() #specify your model type
               , data=df)

# Calculate the predicted
phat.poisson <- predprob(poisson)  # for each subj, prob of observing each value
phat.poisson.mn <- apply(phat.poisson, 2, mean) # mean predicted probs

#your plot of observed vs. predicted
hist(count, prob = TRUE, col = "grey60", breaks=seq(-0.5, 12.5, 1), xlab = "Counts",main = NULL, ylim=c(0, .20))
lines(x = seq(0, 12, 1), y = phat.poisson.mn, lty=2, lwd=2, col="red")
points(x = seq(0, 12, 1), y = phat.poisson.mn, cex=1, pch=16, col="red")