Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不';我的回归系数在我的R模型中有意义吗?_R_Regression_Modeling - Fatal编程技术网

为什么不';我的回归系数在我的R模型中有意义吗?

为什么不';我的回归系数在我的R模型中有意义吗?,r,regression,modeling,R,Regression,Modeling,我正在用大量的数据(2146次观察)建立一个回归模型。这些都是重复的度量,所以我将使用一个混合模型,但是,我总是喜欢从一个更简单的模型开始,以帮助查看数据的外观。问题是,我的回归系数对我来说没有意义,我无法理解为什么它们在添加到模型中时会发生如此剧烈的变化 以下是第一个简单回归模型的示例: fit1 <- lm(Outcome.Variable ~ Group, data = dat) summary(fit1) Call: lm(formula = Outcome.Variable ~

我正在用大量的数据(2146次观察)建立一个回归模型。这些都是重复的度量,所以我将使用一个混合模型,但是,我总是喜欢从一个更简单的模型开始,以帮助查看数据的外观。问题是,我的回归系数对我来说没有意义,我无法理解为什么它们在添加到模型中时会发生如此剧烈的变化

以下是第一个简单回归模型的示例:

fit1 <- lm(Outcome.Variable ~ Group, data = dat)
summary(fit1)

Call:
lm(formula = Outcome.Variable ~ Group, data = dat)

Residuals:
    Min      1Q  Median      3Q     Max 
-225.63  -75.96   -4.60   67.78  356.84 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  364.104      4.677  77.847  < 2e-16 ***
GroupB       -65.187      7.268  -8.969  < 2e-16 ***
GroupC       -31.776      6.982  -4.551 5.63e-06 ***
GroupD       -37.268      6.337  -5.881 4.73e-09 ***
GroupE       -11.172      7.661  -1.458 0.144902    
GroupF       -29.707      8.188  -3.628 0.000292 ***
GroupG       -10.443      6.963  -1.500 0.133853    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 91.42 on 2139 degrees of freedom
Multiple R-squared:  0.0464,    Adjusted R-squared:  0.04372 
F-statistic: 17.35 on 6 and 2139 DF,  p-value: < 2.2e-16
这里发生了什么?我不想在不首先了解这个更基本的模型中发生了什么的情况下,继续讨论一个混合模型。为什么截距不能代表第1天A组的平均值?甚至截距和其他估计值之间的差异也不正确。例如,截距与第2天之间的差值为-5.8。然而,GroupA在第1天与GroupA在第2天的差距为15分


如果您能帮助理解此处发生的情况,我们将不胜感激。

您忽略了术语之间的相互作用。让我演示如何使用mtcars数据:

首先,我运行一个回归
disp~factor(cyl)
(我必须调用
factor
,因为默认情况下
mtcars
中的所有变量都是数字):

库(dplyr)
lm(显示系数(气缸),mtcars)
#> 
#>电话:
#>lm(公式=disp~系数(气缸),数据=mtcars)
#> 
#>系数:
#>(截距)系数(气缸)6系数(气缸)8
#>       105.14         78.18        247.96
mtcars%%>%分组依据(气缸)%%>%汇总(平均值=平均值(显示))
#>#tibble:3 x 2
#>共青团平均数
#>       
#> 1     4 105.1364
#> 2     6 183.3143
#> 3     8 353.1000
如您所见,回归将截距设置为组cyl=4的平均显示

接下来,我运行一个回归
disp~因子(齿轮)

lm(显示系数(档位),mtcars)
#> 
#>电话:
#>lm(公式=disp~系数(档位),数据=mtcars)
#> 
#>系数:
#>(截距)系数(档位)4系数(档位)5
#>         326.3         -203.3         -123.8
mtcars%%>%分组依据(档位)%%>%汇总(平均值=平均值(显示))
#>#tibble:3 x 2
#>齿轮平均值
#>       
#> 1     3 326.3000
#> 2     4 123.0167
#> 3     5 202.4800
同样,回归的输出是组平均值

现在把它们结合起来,我的回归公式是
disp~因子(cyl)*因子(gear)
,相当于
disp~因子(cyl)+因子(gear)+因子(cyl):因子(gear)

lm(显示系数(气缸)*系数(档位),mtcars)
#> 
#>电话:
#>lm(公式=disp~系数(气缸)*系数(档位),数据=mtcars)
#> 
#>系数:
#>(截距)系数(气缸)6
#>                     120.10                      121.40  
#>系数(气缸)8系数(档位)4
#>                     237.52                      -17.47  
#>系数(档位)5系数(气缸)6:系数(档位)4
#>                     -12.40                      -60.23  
#>系数(气缸)8:系数(档位)4系数(气缸)6:系数(档位)5
#>NA-84.10
#>系数(气缸)8:系数(档位)5
#>                     -19.22
mtcars%%>%分组依据(气缸,档位)%%>%汇总(平均值(显示))
#>#tibble:8 x 3
#>#组别:共青团[?]
#>气缸档位平均值(显示)`
#>            
#> 1     4     3     120.1000
#> 2     4     4     102.6250
#> 3     4     5     107.7000
#> 4     6     3     241.5000
#> 5     6     4     163.8000
#> 6     6     5     145.0000
#> 7     8     3     357.6167
#> 8     8     5     326.0000

您忽略了术语之间的交互作用。让我演示如何使用mtcars数据:

首先,我运行一个回归
disp~factor(cyl)
(我必须调用
factor
,因为默认情况下
mtcars
中的所有变量都是数字):

库(dplyr)
lm(显示系数(气缸),mtcars)
#> 
#>电话:
#>lm(公式=disp~系数(气缸),数据=mtcars)
#> 
#>系数:
#>(截距)系数(气缸)6系数(气缸)8
#>       105.14         78.18        247.96
mtcars%%>%分组依据(气缸)%%>%汇总(平均值=平均值(显示))
#>#tibble:3 x 2
#>共青团平均数
#>       
#> 1     4 105.1364
#> 2     6 183.3143
#> 3     8 353.1000
如您所见,回归将截距设置为组cyl=4的平均显示

接下来,我运行一个回归
disp~因子(齿轮)

lm(显示系数(档位),mtcars)
#> 
#>电话:
#>lm(公式=disp~系数(档位),数据=mtcars)
#> 
#>系数:
#>(截距)系数(档位)4系数(档位)5
#>         326.3         -203.3         -123.8
mtcars%%>%分组依据(档位)%%>%汇总(平均值=平均值(显示))
#>#tibble:3 x 2
#>齿轮平均值
#>       
#> 1     3 326.3000
#> 2     4 123.0167
#> 3     5 202.4800
同样,回归的输出是组平均值

现在把它们结合起来,我的回归公式是
disp~因子(cyl)*因子(gear)
,相当于
disp~因子(cyl)+因子(gear)+因子(cyl):因子(gear)

lm(显示系数(气缸)*系数(档位),mtcars)
#> 
#>电话:
#>lm(公式=disp~系数(气缸)*系数(档位),数据=mtcars)
#> 
#>系数:
#>(截距)系数(气缸)6
#>                     120.10                      121.40  
#>系数(气缸)8系数(档位)4
#>                     237.52                      -17.47  
#>系数(档位)5系数(气缸)6:系数(档位)4
#>                     -12.40                      -60.23  
#>系数(气缸)8:系数(档位)4系数(气缸)6:系数(档位)5
#>NA-84.10
#>系数(气缸)8:系数(档位)5
#>                     -19.22
mtcars%%>%分组依据(气缸,档位)%%>%汇总(平均值(显示))
#>#tibble:8 x 3
#>#Gr
library(dplyr)

dat %>%
    group_by(Group) %>%
    summarize(Outcome.Variable.Mean = mean(Outcome.Variable))
# A tibble: 7 × 2
  Group Outcome.Variable.Mean
  <chr>                 <dbl>
1     A              364.1045
2     B              298.9173
3     C              332.3286
4     D              326.8360
5     E              352.9324
6     F              334.3972
7     G              353.6617
fit2 <- lm(Outcome.Variable ~ Day, data = dat)
summary(fit2)

Call:
lm(formula = Outcome.Variable ~ Day, data = dat)

Residuals:
    Min      1Q  Median      3Q     Max 
-228.56  -43.45   -4.70   44.41  321.77 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  388.003      2.598 149.367   <2e-16 ***
Day2          -5.278      3.668  -1.439     0.15    
Day3        -136.108      3.589 -37.921   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 68.28 on 2143 degrees of freedom
Multiple R-squared:  0.4669,    Adjusted R-squared:  0.4664 
F-statistic: 938.6 on 2 and 2143 DF,  p-value: < 2.2e-16
dat %>%
    group_by(Day) %>%
    summarize(Outcome.Variable.Mean = mean(Outcome.Variable))

# A tibble: 3 × 2
     Day Outcome.Variable.Mean
  <fctr>                 <dbl>
1      1              388.0027
2      2              382.7242
3      3              251.8942
fit3 <- lm(Outcome.Variable ~ Day + Group, data = dat)
summary(fit3)

Call:
lm(formula = Outcome.Variable ~ Day + Group, data = dat)

Residuals:
     Min       1Q   Median       3Q      Max 
-212.456  -43.442   -2.864   41.000  305.607 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  413.942      3.912 105.806  < 2e-16 ***
Day2          -5.801      3.504  -1.656   0.0979 .  
Day3        -136.663      3.429 -39.859  < 2e-16 ***
GroupB       -66.126      5.185 -12.753  < 2e-16 ***
GroupC       -31.813      4.980  -6.388 2.06e-10 ***
GroupD       -37.654      4.521  -8.329  < 2e-16 ***
GroupE        -9.777      5.465  -1.789   0.0738 .  
GroupF       -24.570      5.842  -4.206 2.71e-05 ***
GroupG       -10.067      4.967  -2.027   0.0428 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 65.21 on 2137 degrees of freedom
Multiple R-squared:  0.5152,    Adjusted R-squared:  0.5134 
F-statistic: 283.9 on 8 and 2137 DF,  p-value: < 2.2e-16
as.data.frame(dat %>%
    group_by(Day, Group) %>%
    summarize(Outcome.Variable.Mean = mean(Outcome.Variable)))

   Day Group Outcome.Variable.Mean
1    1     A              420.5681
2    1     B              331.6633
3    1     C              380.9213
4    1     D              382.2743
5    1     E              405.1115
6    1     F              392.5020
7    1     G              400.5005
8    2     A              405.3756
9    2     B              339.2346
10   2     C              389.3252
11   2     D              374.0798
12   2     E              388.7488
13   2     F              377.9685
14   2     G              395.5381
15   3     A              273.7767
16   3     B              229.6742
17   3     C              234.4119
18   3     D              230.6635
19   3     E              275.2313
20   3     F              254.7107
21   3     G              272.6063