生成因子变量水平的预测值

3

我正在使用lm()将多个因素变量回归到一个连续的结果变量上。例如:

fit<-lm(dv~factor(hour)+factor(weekday)+factor(month)+factor(year)+count, data=df)

我希望能够生成因素变量的不同水平的预测值(yhat),同时将其他变量保持在它们的中位数或众数。例如,如果我想要在保持其他因素不变的情况下,生成不同工作日的yhat,该怎么做?


1
你熟悉 predict.lm 吗? - Roland
不!我尝试过在谷歌上搜寻,但是当涉及到保持某些常数时,很快就感到非常困惑了。 - roody
首先,您需要阅读帮助页面:?predict.lm。您需要关注newdata参数,并研究示例。 - Roland
1个回答

1

根据@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:建议您添加“回归”标签。

希望对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接