R 如何绘制实际值和预测值?
我是一名统计学的学生,我想请求一些帮助。我想在我的数据集中绘制100天内的预测值和实际值: 样本数据: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
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")