【发布时间】:2011-08-13 22:49:50
【问题描述】:
我以前从未注意到这种行为,但我对线性模型摘要的输出命名约定感到惊讶。我的问题本质上是为什么线性模型摘要中的行名称似乎总是带有它们来自的列的名称。
一个例子
假设您有来自三个不同城市的 300 名电影观众的一些数据:
- 芝加哥
- 密尔沃基
- 代顿
假设他们所有人都受到了蜘蛛侠 3 的一堆令人困惑的污染废物的影响。在忍受了整个电影的厌恶之后,他们被要求以 100 分来给这部电影打分。
因为所有的观众都是通情达理的人,所以收视率都低于零。 (当然。看过这部电影的人都会同意。)
这是 R 中的样子:
> score <- rnorm(n = 300, mean = -50, sd = 10)
> city <- rep(c("Chicago", "Milwaukee", "Dayton"), times = 100)
> spider.man.3.sucked <- data.frame(score, city)
> head(spider.man.3.sucked)
score city
1 -64.57515 Chicago
2 -50.51050 Milwaukee
3 -56.51409 Dayton
4 -45.55133 Chicago
5 -47.88686 Milwaukee
6 -51.22812 Dayton
太好了。因此,让我们运行一个快速线性模型,将其分配给lm1,并获取其摘要输出:
> lm1 <- lm(score ~ city, data = spider.man.3.sucked)
> summary(lm1)
Call:
lm(formula = score ~ city, data = spider.man.3.sucked)
Residuals:
Min 1Q Median 3Q Max
-29.8515 -6.1090 -0.4745 6.0340 26.2616
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -51.3621 0.9630 -53.337 <2e-16 ***
cityDayton 1.1892 1.3619 0.873 0.383
cityMilwaukee 0.8288 1.3619 0.609 0.543
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9.63 on 297 degrees of freedom
Multiple R-squared: 0.002693, Adjusted R-squared: -0.004023
F-statistic: 0.4009 on 2 and 297 DF, p-value: 0.6701
什么困扰着我
我要强调的部分是:
cityDayton 1.1892 1.3619 0.873 0.383
cityMilwaukee 0.8288 1.3619 0.609 0.543
看起来 R 明智地将列名(city,如果您还记得上面的话)与不同的值(在本例中为 Dayton 或 Milwaukee)连接起来。如果我不希望 R 以这种格式输出,有没有办法覆盖它?例如,就我而言,我只需要:
Dayton 1.1892 1.3619 0.873 0.383
Milwaukee 0.8288 1.3619 0.609 0.543
两个问题合二为一
所以,
- 是什么控制了线性模型摘要行的输出格式,以及
- 我可以/应该改变它吗?
【问题讨论】:
-
您可能会发现生成模型预测更容易
标签: r