我正在使用lm()
将多个因素变量回归到一个连续的结果变量上。例如:
fit<-lm(dv~factor(hour)+factor(weekday)+factor(month)+factor(year)+count, data=df)
我希望能够生成因素变量的不同水平的预测值(yhat
),同时将其他变量保持在它们的中位数或众数。例如,如果我想要在保持其他因素不变的情况下,生成不同工作日的yhat
,该怎么做?
我正在使用lm()
将多个因素变量回归到一个连续的结果变量上。例如:
fit<-lm(dv~factor(hour)+factor(weekday)+factor(month)+factor(year)+count, data=df)
我希望能够生成因素变量的不同水平的预测值(yhat
),同时将其他变量保持在它们的中位数或众数。例如,如果我想要在保持其他因素不变的情况下,生成不同工作日的yhat
,该怎么做?
根据@Roland的评论,我可能能够提供帮助。我认为你想要普通的ANOVA,它可以帮助确定因素是否重要。这里不需要因子,整数或数字(类别:numeric)即可正常工作。我编写了以下代码作为示例:
#creates df
(df <- data.frame(h=c(1,3,4,0,2, 3),d=c(2*1:3), m=c(-1, 0, 3, 4, 7, 8), y=c(30,28,27,26,22, 21)))
#creates linear model, gives output
(fit<-lm(df$d~ df$h + df$m+ df$y))
#runs ANOVA on linear model
anova(fit)
#creates predictions from lm based on different values of df$h
predict.lm(fit)
ANOVA是回归分析的一种特殊情况。输出结果将通过P值告诉您因子是否显著。
> anova(fit)
Analysis of Variance Table
Response: df$d
Df Sum Sq Mean Sq F value Pr(>F)
df$h 1 13.2923 13.2923 89.5846 0.01098 *
df$m 1 2.2832 2.2832 15.3879 0.05927 .
df$y 1 0.1277 0.1277 0.8608 0.45147
Residuals 2 0.2968 0.1484
http://www.cookbook-r.com/Statistical_analysis/ANOVA/
提醒:建议您包含一些源代码以创建示例。这样,试图回答您问题的人都可以参考相同的示例。
提醒2:建议您添加“回归”标签。
希望对您有所帮助。
predict.lm
吗? - Roland?predict.lm
。您需要关注newdata
参数,并研究示例。 - Roland