R 有效地运行许多简单的LM回归

R 有效地运行许多简单的LM回归,r,dplyr,regression,R,Dplyr,Regression,好的,我有一个数据帧d,看起来有点像这样 A B C D E F F H 0111013 10101012 A是我的响应变量。现在我可以像这样运行一系列Lm回归 lm.b(我假设重复的F行在这里是一个单独的变量) 然后使用dplyr::do将您的glm应用于每一组值和响应(A),并按变量分组(B:H) (我假设重复的F行在这里是一个单独的变量) 然后使用dplyr::do将您的glm应用于每一组值和响应(A),并按变量分组(B:H) 为了补充jayelm的答案,您可以使用这个奇妙的包来进一步处理

好的,我有一个数据帧d,看起来有点像这样

A B C D E F F H

0111013

10101012

A是我的响应变量。现在我可以像这样运行一系列Lm回归

lm.b(我假设重复的
F
行在这里是一个单独的变量)

然后使用
dplyr::do
将您的
glm
应用于每一组值和响应(
A
),并按变量分组(
B:H

(我假设重复的
F
行在这里是一个单独的变量)

然后使用
dplyr::do
将您的
glm
应用于每一组值和响应(
A
),并按变量分组(
B:H


为了补充jayelm的答案,您可以使用这个奇妙的包来进一步处理生成的数据集

library(broom)
您可以查看所有单独的回归:

tidy(lms, lm)
# A tibble: 14 x 6
# Groups:   Variable [8]
   Variable term                       estimate std.error             statistic p.value
   <chr>    <chr>                         <dbl>     <dbl>                 <dbl>   <dbl>
 1 B        (Intercept)   23.6                   79462     0.000297               1.000
 2 B        Value       - 47.1                  112376    -0.000419               1.000
 3 C        (Intercept)    0.000000000000000471      1.41  0.000000000000000333   1.000
 4 D        (Intercept)   23.6                   79462     0.000297               1.000
 5 D        Value       - 47.1                  112376    -0.000419               1.000
 6 E        (Intercept)    0.000000000000000471      1.41  0.000000000000000333   1.000
 7 F        (Intercept)   23.6                   79462     0.000297               1.000
 8 F        Value       - 47.1                  112376    -0.000419               1.000
 9 F2       (Intercept) - 70.7                  177682    -0.000398               1.000
10 F2       Value         47.1                  112376     0.000419               1.000
11 G        (Intercept) - 23.6                   79462    -0.000297               1.000
12 G        Value         47.1                  112376     0.000419               1.000
13 H        (Intercept)  118                    286504     0.000411               1.000
14 H        Value       - 47.1                  112376    -0.000419               1.000
tidy(lms,lm)
#一个tibble:14x6
#组:变量[8]
变量项估计标准误差统计p值
1 B(截距)23.6 79462 0.000297 1.000
2 B值-47.112376-0.000419 1.000
3 C(截距)0.000000000000000471.41 0.000000000000000333 1.000
4D(截距)23.679462 0.000297 1.000
5D值-47.112376-0.000419 1.000
6 E(截距)0.000000000000000471.41 0.000000000000000333 1.000
7 F(截距)23.6 79462 0.000297 1.000
8 F值-47.112376-0.000419 1.000
9 F2(截距)-70.7177682-0.0003981.000
10 F2值47.112376 0.000419 1.000
11克(截距)-23.6 79462-0.000297 1.000
12克值47.112376 0.000419 1.000
13小时(截距)118 286504 0.000411 1.000
14小时值-47.112376-0.000419 1.000
获取每个模型的摘要:

glance(lms, lm)

# A tibble: 8 x 8
# Groups:   Variable [8]
  Variable null.deviance df.null          logLik   AIC   BIC       deviance df.residual
  <chr>            <dbl>   <int>           <dbl> <dbl> <dbl>          <dbl>       <int>
1 B                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
2 C                 2.77       1 -1.39            4.77  3.47 2.77                     1
3 D                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
4 E                 2.77       1 -1.39            4.77  3.47 2.77                     1
5 F                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
6 F2                2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
7 G                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
8 H                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
一瞥(lms,lm)
#一个tibble:8x8
#组:变量[8]
变量null.DEVANCE df.null logLik AIC BIC DEVANCE df.残差
1 B 2.77 1-0.000000000117 4.00 1.39 0.000000000233 0
2 C 2.77 1-1.39 4.77 3.47 2.77 1
3 D 2.77 1-0.000000000117 4.00 1.39 0.000000000233 0
4 E 2.77 1-1.39 4.77 3.47 2.77 1
5 F 2.77 1-0.000000000117 4.00 1.39 0.000000000233 0
6 F2 2.77 1-0.000000000117 4.00 1.39 0.000000000233 0
7 G 2.77 1-0.000000000117 4.00 1.39 0.000000000233 0
8 H 2.77 1-0.000000000117 4.00 1.39 0.000000000233 0
并获得预测、残差等:

head(augment(lms, lm))

# A tibble: 6 x 10
# Groups:   Variable [3]
  Variable     A Value                .fitted  .se.fit .resid  .hat .sigma .cooksd .std.resid
  <chr>    <dbl> <dbl>                  <dbl>    <dbl>  <dbl> <dbl>  <dbl>   <dbl>      <dbl>
1 B         0     1.00 -23.6                  79462      0    1.00       0   NA         NA   
2 B         1.00  0     23.6                  79462      0    1.00       0   NA         NA   
3 C         0     1.00   0.000000000000000471     1.41  -1.18 0.500    NaN    2.00     - 1.67
4 C         1.00  1.00   0.000000000000000471     1.41   1.18 0.500    Inf    2.00       1.67
5 D         0     1.00 -23.6                  79462      0    1.00       0   NA         NA   
6 D         1.00  0     23.6                  79462      0    1.00       0   NA         NA  
head(增大(lms,lm))
#一个tibble:6x10
#组:变量[3]
变量A值.fitted.se.fit.resid.hat.sigma.cooksd.std.resid
1 B 0 1.00-23.6 79462 0 1.00 NA
2 B 1.00 0 23.6 79462 0 1.00 NA
3 C 0 1.00 0.000000000000000471 1.41-1.18 0.500 NaN 2.00-1.67
4 C 1.00 1.00 0.000000000000000471 1.41 1.18 0.500 Inf 2.00 1.67
5 D 0 1.00-23.6 79462 0 1.00 NA
6 D 1.00 23.6 79462 0 1.00 NA

请注意,
lms
是使用
do()
语法创建的TIBLE的名称,
lm
是实际保存模型结果的变量的名称。

只需添加到jayelm的答案中,您就可以使用奇妙的包进一步处理结果数据集

library(broom)
您可以查看所有单独的回归:

tidy(lms, lm)
# A tibble: 14 x 6
# Groups:   Variable [8]
   Variable term                       estimate std.error             statistic p.value
   <chr>    <chr>                         <dbl>     <dbl>                 <dbl>   <dbl>
 1 B        (Intercept)   23.6                   79462     0.000297               1.000
 2 B        Value       - 47.1                  112376    -0.000419               1.000
 3 C        (Intercept)    0.000000000000000471      1.41  0.000000000000000333   1.000
 4 D        (Intercept)   23.6                   79462     0.000297               1.000
 5 D        Value       - 47.1                  112376    -0.000419               1.000
 6 E        (Intercept)    0.000000000000000471      1.41  0.000000000000000333   1.000
 7 F        (Intercept)   23.6                   79462     0.000297               1.000
 8 F        Value       - 47.1                  112376    -0.000419               1.000
 9 F2       (Intercept) - 70.7                  177682    -0.000398               1.000
10 F2       Value         47.1                  112376     0.000419               1.000
11 G        (Intercept) - 23.6                   79462    -0.000297               1.000
12 G        Value         47.1                  112376     0.000419               1.000
13 H        (Intercept)  118                    286504     0.000411               1.000
14 H        Value       - 47.1                  112376    -0.000419               1.000
tidy(lms,lm)
#一个tibble:14x6
#组:变量[8]
变量项估计标准误差统计p值
1 B(截距)23.6 79462 0.000297 1.000
2 B值-47.112376-0.000419 1.000
3 C(截距)0.000000000000000471.41 0.000000000000000333 1.000
4D(截距)23.679462 0.000297 1.000
5D值-47.112376-0.000419 1.000
6 E(截距)0.000000000000000471.41 0.000000000000000333 1.000
7 F(截距)23.6 79462 0.000297 1.000
8 F值-47.112376-0.000419 1.000
9 F2(截距)-70.7177682-0.0003981.000
10 F2值47.112376 0.000419 1.000
11克(截距)-23.6 79462-0.000297 1.000
12克值47.112376 0.000419 1.000
13小时(截距)118 286504 0.000411 1.000
14小时值-47.112376-0.000419
glance(lms, lm)

# A tibble: 8 x 8
# Groups:   Variable [8]
  Variable null.deviance df.null          logLik   AIC   BIC       deviance df.residual
  <chr>            <dbl>   <int>           <dbl> <dbl> <dbl>          <dbl>       <int>
1 B                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
2 C                 2.77       1 -1.39            4.77  3.47 2.77                     1
3 D                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
4 E                 2.77       1 -1.39            4.77  3.47 2.77                     1
5 F                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
6 F2                2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
7 G                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
8 H                 2.77       1 -0.000000000117  4.00  1.39 0.000000000233           0
head(augment(lms, lm))

# A tibble: 6 x 10
# Groups:   Variable [3]
  Variable     A Value                .fitted  .se.fit .resid  .hat .sigma .cooksd .std.resid
  <chr>    <dbl> <dbl>                  <dbl>    <dbl>  <dbl> <dbl>  <dbl>   <dbl>      <dbl>
1 B         0     1.00 -23.6                  79462      0    1.00       0   NA         NA   
2 B         1.00  0     23.6                  79462      0    1.00       0   NA         NA   
3 C         0     1.00   0.000000000000000471     1.41  -1.18 0.500    NaN    2.00     - 1.67
4 C         1.00  1.00   0.000000000000000471     1.41   1.18 0.500    Inf    2.00       1.67
5 D         0     1.00 -23.6                  79462      0    1.00       0   NA         NA   
6 D         1.00  0     23.6                  79462      0    1.00       0   NA         NA