如何解决具有 p.value 星的组的回归估计
我使用以下命令按组运行多个 lm 回归
by_country <- group_by(df,country)
print(do(by_country,tidy(lm(y ~ x*z,data=.))),n=500)
我添加了打印语句只是为了查看完整的表格。 现在我想将输出更改为显示星星以显示重要程度。
如果我把代码改成
df %>%
do(by_country,data=.))) %>%
mutate(signif = stars.pval(p.value))
我收到错误: 错误:只能提供一个未命名的参数,不能提供 2 个。
如何通过 lm 和 mutate 组合分组?或者有没有更方便的替代方法?
我正在寻找以下/类似的输出:
|Country|term|estimate|std.error|stars
|:---- |:------:| -----:|-----:|-----:|
| UK | x:z | ... | ... | ***|
解决方法
do
已被取代。此代码似乎适用于默认的 mtcars
数据。
library(dplyr)
df <- mtcars
df %>%
group_by(cyl) %>%
summarise(model = list(broom::tidy(lm(disp ~ mpg*am,data = cur_data())))) %>%
tidyr::unnest(model) %>%
mutate(signif = gtools::stars.pval(p.value))
# cyl term estimate std.error statistic p.value signif
# <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <chr>
# 1 4 (Intercept) -69.4 129. -0.537 0.608 " "
# 2 4 mpg 8.96 5.64 1.59 0.156 " "
# 3 4 am 270. 132. 2.04 0.0806 "."
# 4 4 mpg:am -12.8 5.73 -2.23 0.0609 "."
# 5 6 (Intercept) -147. 225. -0.653 0.561 " "
# 6 6 mpg 18.4 11.7 1.56 0.216 " "
# 7 6 am 64.7 682. 0.0949 0.930 " "
# 8 6 mpg:am -6.84 33.4 -0.205 0.851 " "
# 9 8 (Intercept) 566. 106. 5.36 0.000320 "***"
#10 8 mpg -13.9 6.91 -2.00 0.0729 "."
#11 8 am -1203. 1736. -0.693 0.504 " "
#12 8 mpg:am 76.4 113. 0.678 0.513 " "
,
示例数据:
set.seed(111)
df = data.frame(country = sample(c("A","B"),100,replace=TRUE),x=runif(100),y=runif(100),z=runif(100))
您不需要传递 data.frame:
by_country <- group_by(df,country)
do(by_country,tidy(lm(y ~ x*z,data=.))) %>%
mutate(signif = stars.pval(p.value))
或者:
df %>%
group_by(country) %>%
do(tidy(lm(y ~ x*z,data=.))) %>%
mutate(signif = stars.pval(p.value))
两者都给出:
# A tibble: 8 x 7
# Groups: country [2]
country term estimate std.error statistic p.value signif
<fct> <chr> <dbl> <dbl> <dbl> <dbl> <chr>
1 A (Intercept) 0.808 0.154 5.25 0.00000324 "***"
2 A x -0.552 0.307 -1.80 0.0780 "."
3 A z -0.491 0.326 -1.50 0.139 " "
4 A x:z 0.853 0.552 1.55 0.129 " "
5 B (Intercept) 0.0658 0.194 0.339 0.736 " "
6 B x 0.503 0.300 1.68 0.101 " "
7 B z 0.866 0.400 2.17 0.0360 "*"
8 B x:z -0.857 0.609 -1.41 0.167 " "
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。