回归:用一个或多个预测变量(predictor)来预测结果变量(outcome variable)值的 统计 分析
简单回归的公式为:Y=B 0 +B 1 X 1 +e,其中:
实际使用时的回归模型是:Ŷ=B 0 +B 1 X 1 ,其中:
评价回归模型,有如下两个较为重要的量:
R和R 2 都是用来评价模型的总体表现的
R示例,使用longley数据集,数据集包含1947年至1962年16年的包含7个变量的经济数据。
head(longley)
## GNP.deflator GNP Unemployed Armed.Forces Population Year Employed ## 1947 83.0 234.3 235.6 159.0 107.6 1947 60.32 ## 1948 88.5 259.4 232.5 145.6 108.6 1948 61.12 ## 1949 88.2 258.1 368.2 161.6 109.8 1949 60.17 ## 1950 89.5 284.6 335.1 165.0 110.9 1950 61.19 ## 1951 96.2 329.0 209.9 309.9 112.1 1951 63.22 ## 1952 98.1 347.0 193.2 359.4 113.3 1952 63.64
plot(longley$Employed, longley$GNP) abline(lm(longley$GNP ~ longley$Employed))
尝试构建一个用就业人口预测国民生产总值的简单回归模型
用公式计算非标准化的回归系数、标准化的回归系数,以及运用coef函数和lm()函数计算回归系数
B <- cor(longley$Employed, longley$GNP) * sd(longley$GNP)/sd(longley$Employed) B
## [1] 27.84
model0 <- lm(longley$GNP ~ longley$Employed)
coef(model0)
## (Intercept) longley$Employed ## -1430.48 27.84
beta <- cor(longley$GNP, longley$Employed)
beta
## [1] 0.9836
计算多元回归系数R与R 2
R <- cor(longley$GNP, coef(model0)[1] + coef(model0)[2] * longley$Employed)
RSquared <- R^2
R
## [1] 0.9836
RSquared
## [1] 0.9674
R中可以用summary()来方便地获得这些量
summary(model0)
## ## Call: ## lm(formula = longley$GNP ~ longley$Employed) ## ## Residuals: ## Min 1Q Median 3Q Max ## -39.22 -11.92 0.85 14.88 23.56 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1430.48 89.36 -16.0 2.1e-10 *** ## longley$Employed 27.84 1.37 20.4 8.4e-12 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 18.6 on 14 degrees of freedom ## Multiple R-squared: 0.967, Adjusted R-squared: 0.965 ## F-statistic: 415 on 1 and 14 DF, p-value: 8.36e-12
选择回归系数的主要思想是:
回归模型预测结果最佳,意味着残差(预测误差)最小。
残差e=Ŷ-Y,可能为正也可能为负,求平方和处理。
计算残差的平方和SS RESIDUAL =Σ(Ŷ-Y) 2 ,选择能够使这项最小的回归系数
另一种考虑方式是,残差是模型所不能解释的偏差情况,用韦恩图加以解释:
选择能够使模型所不能解释的残差平方和最小的回归系数
非标准化的回归系数计算公式为:
r是皮尔森积差相关系数,是变量Y随着变量X变化的程度,将其乘以Y与X的标准差之比,是考虑到Y与X的不同取值范围。
标准化的回归系数计算公式为:β=r
其原因是:经过标准化处理(均转换为Z值)的X与Y的标准差都为1。
线性回归的前提假设与相关性分析的前提假设基本一致:
唯一的区别是,X不一定是正态分布的。
为了测试这些假设前提,通常可以绘制预测变量与残差的图表
回顾Anscombe’s quartet
par(mfrow = c(2, 2)) model1 <- lm(anscombe$y1 ~ anscombe$x1) plot(anscombe$x1, anscombe$y1, main = "1") abline(model1) model2 <- lm(anscombe$y2 ~ anscombe$x2) plot(anscombe$x2, anscombe$y2, main = "2") abline(model2) model3 <- lm(anscombe$y3 ~ anscombe$x3) plot(anscombe$x3, anscombe$y3, main = "3") abline(model3) model4 <- lm(anscombe$y4 ~ anscombe$x4) plot(anscombe$x4, anscombe$y4, main = "4") abline(model4)
计算残差,可以用公式计算,也可以调用predict()函数或者residuals()函数。
e1 <- anscombe$y1 - (coef(model1)[1] + coef(model1)[2] * anscombe$x1) e2 <- anscombe$y2 - (coef(model2)[1] + coef(model2)[2] * anscombe$x2) e3 <- anscombe$y3 - predict(model3) e4 <- residuals(model4)
par(mfrow = c(2, 2)) plot(anscombe$x1, e1, main = "1") plot(anscombe$x2, e2, main = "2") plot(anscombe$x3, e3, main = "3") plot(anscombe$x4, e4, main = "4")
只有左上方的满足方差齐性,残差与X无关,是随机的。
其他三个数据集都不满足线性回归分析的前提假设。
检验一下longley数据集中构建的线性回归模型
例如,相关性分析中,想证明两个变量之间不是无关的,运用零假说显著性检验,则:
如果对立假说预测了X与Y之间的方向性,则称为:定向检验(directional test)或单尾检验(single tail test)=
否则称为无方向性检验(non-directional test),或双尾检验(two tail test)
考虑如下线性回归分析的显著性检验设定:
假设H 0 为真,计算获得我们所拥有的数据的条件概率:
如果发现该概率p值非常小,则驳回零假说,否则保留H 0 。
运用零假说显著性检验测试的可能结果如上图所示:
为了获得p值,需要首先计算出t值,公式为:
t值是一个比例!
回归系数B是我们观测到的两个变量之间的线性相关程度
标准误差SE,是随机误差的情况
t值这个比例是:观测到的情况/随机情况,
如果t值为1,则说明观测到的情况与完全随机的情况是一样的
明显的t值越大,p值越小
中央极限定理部分再仔细解释t值。
R演示,计算以就业人数Employed预测国民生产总值GNP的回归系数的t值
此时SE计算公式为:SE=SQRT[(SS RESIDUAL /(N-2))/SS X ]
summary(model0)
## ## Call: ## lm(formula = longley$GNP ~ longley$Employed) ## ## Residuals: ## Min 1Q Median 3Q Max ## -39.22 -11.92 0.85 14.88 23.56 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1430.48 89.36 -16.0 2.1e-10 *** ## longley$Employed 27.84 1.37 20.4 8.4e-12 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 18.6 on 14 degrees of freedom ## Multiple R-squared: 0.967, Adjusted R-squared: 0.965 ## F-statistic: 415 on 1 and 14 DF, p-value: 8.36e-12
B <- coef(model0)[2] SSRESIDUAL <- sum((predict(model0) - longley$GNP)^2) NMinusP <- 16 - 2 SSX <- sum((longley$Employed - mean(longley$Employed))^2) SEReg <- sqrt((SSRESIDUAL/NMinusP)/SSX) tReg <- B/SEReg tReg
## longley$Employed ## 20.37
零假说显著性检验的若干问题:
零假说显著性检验的补救方法:
如果知道样本数据的分布情况,我们可以做概率上的推理。
例如:知道人的体温是正态分布的,平均体温为36.5摄氏度。
那么随机选一个人测体温,其体温大于等于36.5摄氏度的概率是50%。
将其转换成Z值,即Z>0的概率为50%
体温大于38摄氏度,对应于Z值>2的概率为2%
抽样分布 的概念:
通常我们并没有多个样本,而只是估计抽样分布的情况。
有了这样的平均值的抽样分布,我们可以回答这样的问题:
如果我们从总体中抽取一个样本,这个样本的平均值小于Z=0的概率是多少。
如果抽样分布是正态分布的,答案是0.5。
R演示,总体为1至50,每次抽取样本量为20的样本,4次实验分别抽取20次,100次,500次和2000次,分别绘制抽样平均值的柱图。
linearData <- c(1:50)
d <- c(20, 100, 500, 2000)
par(mfrow = c(2, 2))
set.seed(1)
for (i in 1:4) {
me <- vector()
for (j in 1:d[i]) {
me[j] <- mean(sample(linearData, 20))
}
hist(me)
}
可以看出,无论总体分布情况如何,抽样次数越多,点统计量的抽样分布越接近于正态分布。
第三条告诉我们样本量足够大时,抽样分布的形状近似于正态分布。
t值也有一个抽样分布,称为t分布
t分布是一个分布族,不同的样本量大小对应不同的t分布,样本量越大t分布越接近正态分布
样本量越小,t分布越宽,达到同样大小的p值所需要的t值越大。
因此,在计算出t值后,根据样本量大小找出对应的t分布,在该分布上根据t值计算出p值。
将p值与0.05比较解读为:t值是否属于t分布中5%的极端情况中。
任何一个样本统计量,如均值、标准差,都是点估计量(point estimates)。
即,一个样本平均值,代表的是平均值的抽样分布中的一个点。
置信区间是汇报一个可能值的区间估计(interval estimate),而非一个点估计量。置信区间是:根据随机样本,对总体参数所作出的一个区间估计。
例如:95%置信度意味着有95%的概率,区间中包含总体参数的真实值。
抽样误差将会导致不同的样本会有不同的点估计值
置信区间的优点是,将抽样误差考虑进来了,汇报的是区间估计
置信区间受到两方面的影响:
回顾平均值的标准误差为SE=SD/SQRT(N)很好解释了,置信区间与标准误差之间的关系。
t值取决于自由度(样本量决定)和置信度。
R示例,从国民生产总值中抽取一个样本量为10的样本,计算平均值,并汇报置信区间
set.seed(1)
S1 <- sample(longley$GNP, 10)
S1
## [1] 329.0 347.0 397.5 444.5 258.1 419.2 442.8 518.2 502.6 234.3
S1Mean <- mean(S1)
tcrit <- qt(c(0.025, 0.0975), df = 15)
S1SEMean <- sd(S1)/sqrt(16)
S1Mean + S1SEMean * tcrit
## [1] 338.1 356.7
回归系数的置信区间
回归系数B也是点估计量,从单一样本中获得的B值,是回归系数的抽样分布中的一个点。
回归系数的置信区间也是考虑进标准误差之后的结果。
置信度95解读为:有%95的概率,总体的回归系数在置信区间中。
R示例,用就业人数预测国民生产总值时回归系数的置信区间,confint()是简便算法。
tcrit <- qt(c(0.025, 0.0975), df = 14)
B + tcrit * SEReg
## [1] 24.91 25.98
confint(model0)
## 2.5 % 97.5 % ## (Intercept) -1622.14 -1238.82 ## longley$Employed 24.91 30.77
R示例,在图表上绘制回归系数的置信区间
library(ggplot2) ggplot(longley, aes(x = Employed, y = GNP)) + geom_smooth(method = "lm") + geom_point()
简单回归是只使用一个预测变量,多元回归是使用多个预测变量
公式为:Ŷ=B 0 +B 1 X 1 +B 2 X 2 +…+B K X K =Σ(B n X n )
同简单回归模型一样,评价多元回归模型,有如下两个较为重要的量:
R示例,在longley数据集中,利用就业人数和总人口两个变量预测国民生产总值;
model5 <- lm(longley$GNP ~ longley$Employed + longley$Population) summary(model5)
## ## Call: ## lm(formula = longley$GNP ~ longley$Employed + longley$Population) ## ## Residuals: ## Min 1Q Median 3Q Max ## -11.689 -4.586 -0.695 3.858 14.241 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1372.095 36.141 -37.97 1.1e-14 *** ## longley$Employed 11.561 1.948 5.93 5.0e-05 *** ## longley$Population 8.556 0.984 8.70 8.8e-07 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 7.39 on 13 degrees of freedom ## Multiple R-squared: 0.995, Adjusted R-squared: 0.994 ## F-statistic: 1.35e+03 on 2 and 13 DF, p-value: 8.3e-16
betaEmployed <- coef(model5)[2]/sd(longley$GNP) * sd(longley$Employed) betaPopulation <- coef(model5)[3]/sd(longley$GNP) * sd(longley$Population) betaEmployed
## longley$Employed ## 0.4085
betaPopulation
## longley$Population ## 0.5988
通过p值发现,这两个变量均是显著的。比较标准化的回归系数,在这个多元回归模型中,相对于就业人数而言,人口是更强的预测变量。
多元回归的回归系数的估计
同简单回归一样,回归系数的值也是要是的模型的预测误差最小,即使残差的平方和最小。
标准化的多元回归模型公式(矩阵形式)为:Ŷ=B(X)
等式两边同时乘以X T 有:X T (Y)=X T (XB)
两边再同时乘以(X T X) -1 得到:B=(X T X) -1 (X T Y)
R示例,ginv()是矩阵求逆(inverse),需要MASS包裹,%*%是矩阵乘法,t()是矩阵转置(transpose)
library(MASS)
X <- data.matrix(longley[3:7])
Y <- data.matrix(longley[2])
B <- ginv(t(X) %*% X) %*% (t(X) %*% Y)
B
## GNP ## [1,] 0.007516 ## [2,] 0.087477 ## [3,] 9.518376 ## [4,] -0.713011 ## [5,] 9.773732
一般线性模型是在许多常见的统计分析,例如多元回归和 方差分析 ( ANOVA )中采用的数学框架(mathematical framework)
可以利用GLM来做一系列的检验,例如测试变量之间的非累加性质等。
下面举例说明一般线性模型的几种实例:
简单回归:Y=B 0 +B 1 X 1 +e,其中
多元回归:Y=B 0 +B 1 X 1 +B 2 X 2 +B 3 X 3 +e,其中
X 3 是非累加的,加上这个变量可以用来测试获奖次数是否是 调节 变量,获奖次数是否能 调节 工作年限对薪水的影响。
单因素 方差分析 (one way ANOVA ): Y=B 0 +B 1 X 1 +e,其中
在这个方差分析中,性别是类别变量,而非连续型变量。
因素方差分析(factorial ANOVA ):Y=B 0 +B 1 X 1 +B 2 X 2 +B 3 X 3 +e,其中
这个方差分析可以分析性别和民族之间的交互作用。
是在因变量为类别变量而结果变量为连续变量时适用的分析方法。
方差分析最常用于有超过两个实验组时的随机实验所获得的数据
如果实验组只有2个,可以用非独立或独立t检验(indenpendent t-test, dependent t-test)
R示例,glm()函数,以npk数据集为例,做因素方差分析
head(npk)
## block N P K yield ## 1 1 0 1 1 49.5 ## 2 1 1 1 0 62.8 ## 3 1 0 0 0 46.8 ## 4 1 1 0 1 57.0 ## 5 2 1 0 0 59.8 ## 6 2 1 1 1 58.5
model6 <- glm(npk$yield ~ npk$N + npk$P + npk$K) summary(model6)
## ## Call: ## glm(formula = npk$yield ~ npk$N + npk$P + npk$K) ## ## Deviance Residuals: ## Min 1Q Median 3Q Max ## -9.267 -3.654 0.708 3.479 9.333 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 54.65 2.21 24.78 <2e-16 *** ## npk$N1 5.62 2.21 2.55 0.019 * ## npk$P1 -1.18 2.21 -0.54 0.597 ## npk$K1 -3.98 2.21 -1.81 0.086 . ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## (Dispersion parameter for gaussian family taken to be 29.17) ## ## Null deviance: 876.37 on 23 degrees of freedom ## Residual deviance: 583.48 on 20 degrees of freedom ## AIC: 154.7 ## ## Number of Fisher Scoring iterations: 2
虚拟编码是在回归分析中,将类别预测变量进行编码的系统。
R示例,以iris数据集为例,对Species做虚拟编码处理,用以做回归分析,预测Sepal.Length。
演示两种dummy coding方法,C()和factor()
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species ## 1 5.1 3.5 1.4 0.2 setosa ## 2 4.9 3.0 1.4 0.2 setosa ## 3 4.7 3.2 1.3 0.2 setosa ## 4 4.6 3.1 1.5 0.2 setosa ## 5 5.0 3.6 1.4 0.2 setosa ## 6 5.4 3.9 1.7 0.4 setosa
spec.code <- C(iris$Species, treatment) model7 <- lm(iris$Sepal.Length ~ iris$Petal.Length + (spec.code)) summary(model7)
## ## Call: ## lm(formula = iris$Sepal.Length ~ iris$Petal.Length + (spec.code)) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.7531 -0.2314 -0.0008 0.2308 1.0310 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 3.6835 0.1061 34.72 < 2e-16 *** ## iris$Petal.Length 0.9046 0.0648 13.96 < 2e-16 *** ## spec.codeversicolor -1.6010 0.1935 -8.28 7.4e-14 *** ## spec.codevirginica -2.1177 0.2735 -7.74 1.5e-12 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.338 on 146 degrees of freedom ## Multiple R-squared: 0.837, Adjusted R-squared: 0.833 ## F-statistic: 249 on 3 and 146 DF, p-value: <2e-16
model7 <- lm(iris$Sepal.Length ~ iris$Petal.Length + factor(iris$Species)) summary(model7)
## ## Call: ## lm(formula = iris$Sepal.Length ~ iris$Petal.Length + factor(iris$Species)) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.7531 -0.2314 -0.0008 0.2308 1.0310 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 3.6835 0.1061 34.72 < 2e-16 *** ## iris$Petal.Length 0.9046 0.0648 13.96 < 2e-16 *** ## factor(iris$Species)versicolor -1.6010 0.1935 -8.28 7.4e-14 *** ## factor(iris$Species)virginica -2.1177 0.2735 -7.74 1.5e-12 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.338 on 146 degrees of freedom ## Multiple R-squared: 0.837, Adjusted R-squared: 0.833 ## F-statistic: 249 on 3 and 146 DF, p-value: <2e-16
也称交互作用(interaction)
一个调节变量(moderator variable)Z,能够加强回归模型,如果X与Y之间的关系是Z的函数。
以实验研究为例:通过调整自变量X,研究因变量Y的变化。
如果存在一个变量Z,并且发现X随着Y的变化情况随着Z的不同分布呈现出不一致的情况,则此时Z为调节变量
以相关性分析为例:假设X与Y之间存在相关性
存在调节变量Z意味着:X与Y之间的相关性对应于Z的分布呈现出不一致的情形。
即:在Z值不同的时候,X与Y之间的相关性不同
假设X为类型变量,Z为连续变量,X有三种不同类型:
调节的检验:假设X与Z均为连续型变量,构建两个模型:
假设X为类型变量,Z为连续变量,X有三种不同类型,构建两个模型:
model00 <- lm(longley$GNP ~ longley$Employed + longley$Unemployed) model01 <- lm(longley$GNP ~ longley$Employed + longley$Unemployed + (longley$Employed * longley$Unemployed)) summary(model00)
## ## Call: ## lm(formula = longley$GNP ~ longley$Employed + longley$Unemployed) ## ## Residuals: ## Min 1Q Median 3Q Max ## -28.092 -6.154 0.062 7.498 22.245 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1.34e+03 7.01e+01 -19.16 6.5e-11 *** ## longley$Employed 2.57e+01 1.16e+00 22.12 1.1e-11 *** ## longley$Unemployed 1.57e-01 4.37e-02 3.58 0.0034 ** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 13.7 on 13 degrees of freedom ## Multiple R-squared: 0.984, Adjusted R-squared: 0.981 ## F-statistic: 389 on 2 and 13 DF, p-value: 2.52e-12
summary(model01)
## ## Call: ## lm(formula = longley$GNP ~ longley$Employed + longley$Unemployed + ## (longley$Employed * longley$Unemployed)) ## ## Residuals: ## Min 1Q Median 3Q Max ## -23.423 -7.784 0.028 8.694 20.475 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -988.7175 340.7291 -2.90 0.0133 ## longley$Employed 20.2828 5.2582 3.86 0.0023 ## longley$Unemployed -0.9030 0.9963 -0.91 0.3826 ## longley$Employed:longley$Unemployed 0.0162 0.0152 1.06 0.3080 ## ## (Intercept) * ## longley$Employed ** ## longley$Unemployed ## longley$Employed:longley$Unemployed ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 13.6 on 12 degrees of freedom ## Multiple R-squared: 0.985, Adjusted R-squared: 0.981 ## F-statistic: 262 on 3 and 12 DF, p-value: 3.34e-11
anova(model00, model01)
## Analysis of Variance Table ## ## Model 1: longley$GNP ~ longley$Employed + longley$Unemployed ## Model 2: longley$GNP ~ longley$Employed + longley$Unemployed + (longley$Employed * ## longley$Unemployed) ## Res.Df RSS Df Sum of Sq F Pr(>F) ## 1 13 2435 ## 2 12 2225 1 210 1.13 0.31
预测变量的中心化(centralization)
中心化处理是对变量值进行转变,转变为以0为均值
公式为:X=X-M X
中介 分析(mediation analysis)被用来更好地理解观测到的自变量对因变量的影响,或者X与Y之间的相关性
如果X与Y是相关的,但是有中介变量M在其中起作用(X->M->Y),意味着:
我们可以看回归系数B 2 是否显著。如果一个中介变量M对X与Y之间的关系起到作用,则可分为:
model11 <- lm(longley$GNP ~ longley$Employed) model12 <- lm(longley$Population ~ longley$Employed) model13 <- lm(longley$GNP ~ longley$Employed + longley$Population) summary(model11)
## ## Call: ## lm(formula = longley$GNP ~ longley$Employed) ## ## Residuals: ## Min 1Q Median 3Q Max ## -39.22 -11.92 0.85 14.88 23.56 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1430.48 89.36 -16.0 2.1e-10 *** ## longley$Employed 27.84 1.37 20.4 8.4e-12 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 18.6 on 14 degrees of freedom ## Multiple R-squared: 0.967, Adjusted R-squared: 0.965 ## F-statistic: 415 on 1 and 14 DF, p-value: 8.36e-12
summary(model12)
## ## Call: ## lm(formula = longley$Population ~ longley$Employed) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.522 -1.364 -0.362 1.851 2.792 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -6.824 9.648 -0.71 0.49 ## longley$Employed 1.902 0.148 12.90 3.7e-09 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 2.01 on 14 degrees of freedom ## Multiple R-squared: 0.922, Adjusted R-squared: 0.917 ## F-statistic: 166 on 1 and 14 DF, p-value: 3.69e-09
summary(model13)
## ## Call: ## lm(formula = longley$GNP ~ longley$Employed + longley$Population) ## ## Residuals: ## Min 1Q Median 3Q Max ## -11.689 -4.586 -0.695 3.858 14.241 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1372.095 36.141 -37.97 1.1e-14 *** ## longley$Employed 11.561 1.948 5.93 5.0e-05 *** ## longley$Population 8.556 0.984 8.70 8.8e-07 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 7.39 on 13 degrees of freedom ## Multiple R-squared: 0.995, Adjusted R-squared: 0.994 ## F-statistic: 1.35e+03 on 2 and 13 DF, p-value: 8.3e-16
中介分析通常使用路径模型来分析,其中:
Sobel检验中z值的计算公式:
z=(B a *B b )/SQRT[(B a 2 *SE b 2 )+(B b 2 *SE a 2 )]
library(multilevel)
## Loading required package: nlme
sobel(longley$Employed, longley$Population, longley$GNP)
## $`Mod1: Y~X` ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1430.48 89.361 -16.01 2.146e-10 ## pred 27.84 1.366 20.37 8.363e-12 ## ## $`Mod2: Y~X+M` ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1372.095 36.1406 -37.965 1.051e-14 ## pred 11.561 1.9484 5.933 4.958e-05 ## med 8.556 0.9837 8.698 8.850e-07 ## ## $`Mod3: M~X` ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -6.824 9.6480 -0.7073 4.910e-01 ## pred 1.902 0.1475 12.8956 3.693e-09 ## ## $Indirect.Effect ## [1] 16.28 ## ## $SE ## [1] 2.257 ## ## $z.value ## [1] 7.211 ## ## $N ## [1] 16