Problem badawczy: Czy wyniki sportowe zależą od motywacij zawodnika i podejmowanych przez niego aktywności i jaką rolę pełnią napotykane bariery w uprawianiu sportu?
A <- c(1.84, 2.57, 3.03, 1.84, 3.57, 2.95, 1.62, 3.57, 2.14, 2.78, 3.51, 2.30, 2.68, 3.35, 1.51, 2.46, 2.73, 2.73, 2.49, 1.76, 3.35, 2.16, 3.32, 2.89, 2.27, 2.43, 3.35, 2.86, 2.16, 1.70, 1.86, 2.83, 2.65, 2.43, 2.78, 3.27, 2.95, 4.08, 2.35, 3.16, 3.62, 2.59, 1.95, 3.22, 2.73, 3.16, 3.97, 1.95, 3.35, 3.89, 3.41, 4.65, 3.70, 2.38, 3.65, 2.81, 2.92, 2.62, 3.49, 4.38, 2.59, 2.30, 4.03, 2.49, 3.00, 2.57, 3.08, 2.65, 3.92, 3.16, 3.05, 1.65, 2.16)
M <- c(1.50, 2.70, 2.29, 1.38, 2.29, 1.71, 1.50, 3.42, 2.13, 2.29, 3.13, 2.00, 2.21, 2.88, 1.83, 1.58, 2.08, 1.83, 1.88, 1.46, 2.96, 1.54, 2.46, 2.29, 1.67, 2.13, 3.17, 2.79, 1.58, 1.63, 1.50, 2.75, 2.67, 2.08, 2.50, 2.58, 2.08, 3.25, 1.50, 1.50, 3.33, 2.50, 1.67, 2.54, 1.92, 1.96, 2.67, 2.04, 2.58, 2.75, 2.46, 3.54, 3.38, 2.29, 1.71, 2.13, 2.29, 2.63, 2.54, 3.29, 2.29, 1.79, 3.88, 2.04, 2.67, 1.79, 3.67, 2.38, 3.13, 2.04, 2.79, 1.25, 2.04)
B <- c(3.51, 3.00, 2.65, 3.24, 3.18, 2.43, 4.20, 2.49, 3.59, 2.10, 2.94, 3.57, 3.04, 3.14, 4.31, 4.59, 3.47, 1.78, 3.02, 3.69, 3.20, 4.02, 2.45, 2.86, 3.51, 2.86, 2.69, 2.67, 3.76, 2.00, 3.98, 3.12, 2.51, 2.59, 2.90, 2.96, 2.57, 3.06, 3.35, 2.69, 3.04, 3.65, 2.18, 2.37, 2.78, 2.98, 2.67, 3.16, 1.98, 3.78, 2.08, 2.65, 2.86, 3.76, 1.78, 3.35, 3.31, 3.59, 1.65, 2.35, 3.04, 3.71, 2.27, 2.61, 3.16, 2.06, 3.02, 3.20, 3.63, 2.22, 3.29, 3.27, 4.14)
W <- c(2.08, 2.86, 2.81, 1.54, 2.32, 3.03, 1.95, 3.49, 2.59, 2.41, 3.05, 2.16, 2.86, 3.46, 1.84, 3.08, 2.84, 1.95, 1.89, 1.84, 3.05, 2.03, 2.73, 3.35, 2.81, 2.22, 3.24, 2.78, 1.95, 1.97, 4.62, 2.49, 2.81, 2.05, 2.73, 2.62, 2.54, 2.86, 2.49, 2.57, 3.14, 2.59, 1.84, 2.57, 2.65, 2.84, 3.35, 2.27, 3.16, 2.65, 3.32, 3.00, 3.84, 1.27, 1.54, 2.84, 2.76, 2.03, 2.78, 4.30, 2.62, 2.27, 3.70, 2.32, 2.11, 2.81, 3.05, 2.22, 3.95, 2.76, 2.35, 1.51, 3.03)
MAT <- data.frame(cbind(M,B,A,W))
Statystyki opisowe zmiennych
summary(MAT)
## M B A W
## Min. :1.250 Min. :1.650 Min. :1.510 Min. :1.270
## 1st Qu.:1.830 1st Qu.:2.590 1st Qu.:2.380 1st Qu.:2.220
## Median :2.290 Median :3.020 Median :2.780 Median :2.650
## Mean :2.311 Mean :3.004 Mean :2.841 Mean :2.649
## 3rd Qu.:2.670 3rd Qu.:3.470 3rd Qu.:3.350 3rd Qu.:3.030
## Max. :3.880 Max. :4.590 Max. :4.650 Max. :4.620
Test normalności rozkładów i poszukiwanie wartości odstających
apply(MAT, 2, nortest::lillie.test)
## $M
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: newX[, i]
## D = 0.088856, p-value = 0.1646
##
##
## $B
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: newX[, i]
## D = 0.044217, p-value = 0.9771
##
##
## $A
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: newX[, i]
## D = 0.042857, p-value = 0.9845
##
##
## $W
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: newX[, i]
## D = 0.096374, p-value = 0.09005
car::outlierTest(lm(A~B+M))
## No Studentized residuals with Bonferonni p < 0.05
## Largest |rstudent|:
## rstudent unadjusted p-value Bonferonni p
## 55 2.513148 0.014306 NA
car::outlierTest(lm(W~A+M))
## rstudent unadjusted p-value Bonferonni p
## 31 6.179054 3.9437e-08 2.8789e-06
plot(lm(W~A+M),6)
MAT <- MAT[-c(31,55),] ## usuwam 'bad boys'
Podstawowy model w oparciu o SEM
library(lavaan)
## This is lavaan 0.6-3
## lavaan is BETA software! Please report any bugs.
model <- '
W ~ A + B + M
A ~ B + M
B ~~ M
'
fit <- cfa(model, data=MAT, fixed.x = F, estimator = "MLM")
summary(fit, standardized=T, fit.measures=F)
## lavaan 0.6-3 ended normally after 27 iterations
##
## Optimization method NLMINB
## Number of free parameters 10
##
## Number of observations 71
##
## Estimator ML Robust
## Model Fit Test Statistic 0.000 0.000
## Degrees of freedom 0 0
## Scaling correction factor NA
## for the Satorra-Bentler correction
##
## Parameter Estimates:
##
## Information Expected
## Information saturated (h1) model Structured
## Standard Errors Robust.sem
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## W ~
## A 0.506 0.127 3.992 0.000 0.506 0.593
## B 0.023 0.094 0.246 0.806 0.023 0.024
## M 0.191 0.107 1.785 0.074 0.191 0.200
## A ~
## B -0.228 0.084 -2.694 0.007 -0.228 -0.206
## M 0.830 0.095 8.754 0.000 0.830 0.744
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## B ~~
## M -0.096 0.042 -2.272 0.023 -0.096 -0.255
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .W 0.147 0.026 5.737 0.000 0.147 0.433
## .A 0.151 0.025 6.070 0.000 0.151 0.326
## B 0.381 0.060 6.381 0.000 0.381 1.000
## M 0.373 0.055 6.825 0.000 0.373 1.000
# fitMeasures(fit, c("nfi", "rmsea", "agfi"))
Jeszcze raz ten sam model, ale tym razem z obliczeniem wartości zadanych parametrów wynikających z założeń o mediacji
# model z dwiema mediacjami
model.m <- '
# direct effect
W ~ c1*B
# mediator
A ~ a1*B
W ~ b*A
# indirect effect
ab1 := a1*b
# total efect
total1 := c1 + (a1*b)
# direct effect
W ~ c2*M
# mediator
A ~ a2*M
# W ~ b*A # już zdefiniowany
# indirect effect
ab2 := a2*b
# total efect
total2 := c2 + (a2*b)
M ~~ B
'
fit.m <- sem(model.m, data=MAT, fixed.x = F, estimator = "MLM")
summary(fit.m, standardized=T, fit.measures=F)
## lavaan 0.6-3 ended normally after 27 iterations
##
## Optimization method NLMINB
## Number of free parameters 10
##
## Number of observations 71
##
## Estimator ML Robust
## Model Fit Test Statistic 0.000 0.000
## Degrees of freedom 0 0
## Scaling correction factor NA
## for the Satorra-Bentler correction
##
## Parameter Estimates:
##
## Information Expected
## Information saturated (h1) model Structured
## Standard Errors Robust.sem
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## W ~
## B (c1) 0.023 0.094 0.246 0.806 0.023 0.024
## A ~
## B (a1) -0.228 0.084 -2.694 0.007 -0.228 -0.206
## W ~
## A (b) 0.506 0.127 3.992 0.000 0.506 0.593
## M (c2) 0.191 0.107 1.785 0.074 0.191 0.200
## A ~
## M (a2) 0.830 0.095 8.754 0.000 0.830 0.744
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## B ~~
## M -0.096 0.042 -2.272 0.023 -0.096 -0.255
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .W 0.147 0.026 5.737 0.000 0.147 0.433
## .A 0.151 0.025 6.070 0.000 0.151 0.326
## B 0.381 0.060 6.381 0.000 0.381 1.000
## M 0.373 0.055 6.825 0.000 0.373 1.000
##
## Defined Parameters:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## ab1 -0.115 0.053 -2.155 0.031 -0.115 -0.122
## total1 -0.092 0.104 -0.889 0.374 -0.092 -0.098
## ab2 0.420 0.108 3.877 0.000 0.420 0.441
## total2 0.611 0.087 7.016 0.000 0.611 0.641
# fitMeasures(fit.m, c("nfi", "rmsea", "agfi"))
Rysunek poglądowy
semPlot::semPaths(fit.m,"mod","std",
intAtSide=TRUE,
curveAdjacent = F,
layout="tree3", rotation = 2,
#layout = "spring","
style = "lisrel")
a <- lm(A~M+B, data = MAT)
bc <- lm(W~A+M+B, data = MAT)
test <- mediation::mediate(a, bc, treat="M", mediator="A", boot=TRUE, sims=500)
plot(test)
#* ACME - Averge Causual Mediation Effect - efekt pośredni
#* ADE - Average Direct Effect - efekt bezpośredni
#* Total effect - efekt całkowity
summary(test)
##
## Causal Mediation Analysis
##
## Nonparametric Bootstrap Confidence Intervals with the Percentile Method
##
## Estimate 95% CI Lower 95% CI Upper p-value
## ACME 0.4201 0.2278 0.67 <2e-16 ***
## ADE 0.1907 -0.0204 0.39 0.096 .
## Total Effect 0.6108 0.4296 0.79 <2e-16 ***
## Prop. Mediated 0.6877 0.4007 1.03 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Sample Size Used: 71
##
##
## Simulations: 500
summary(bc)
##
## Call:
## lm(formula = W ~ A + M + B, data = MAT)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.14245 -0.20805 0.03609 0.24625 0.76778
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.68533 0.38830 1.765 0.0821 .
## A 0.50584 0.12029 4.205 7.92e-05 ***
## M 0.19073 0.12749 1.496 0.1394
## B 0.02299 0.08307 0.277 0.7828
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3944 on 67 degrees of freedom
## Multiple R-squared: 0.5669, Adjusted R-squared: 0.5475
## F-statistic: 29.23 on 3 and 67 DF, p-value: 3.377e-12
summary(lm(W~M))
##
## Call:
## lm(formula = W ~ M)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.36724 -0.31918 -0.07107 0.29491 2.43778
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.3182 0.2420 5.447 6.98e-07 ***
## M 0.5760 0.1012 5.691 2.63e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5313 on 71 degrees of freedom
## Multiple R-squared: 0.3133, Adjusted R-squared: 0.3036
## F-statistic: 32.39 on 1 and 71 DF, p-value: 2.635e-07
Analiza rozkładów zmiennych wykazała, że wskaźniki charakteryzują się rozkładem normalnym (\(p\) > 0.05). W celu określenia wzajemnych powiązań między wskaźnikami użyto metody SEM - analizy równań strukturalnych. Hipotetyczny model sprawdzono w kolejnych krokach analizy prezentując ostateczny model z najlepszymi parametrami dopasowania do danych.
W modelu wykorzystano CMA - przyczynową analizę mediacji, do oszacowania efektu pośredniego jaką pełni Aktywność w relacji między Motywatorami a Wynikami. Między Barierami i Motywatorami istnieje słaba ujemna korelacja (\(r\) = -.25), ponadto Bariery, co wydaje się naturalne, osłabiają Aktywności (\(\beta\) = -0.228). Poziom Wyników zależy w większym stopniu (mediacja wyjaśnia 68.77% wielkości efektu) od Aktywności ( \(\beta\) = 0.506), niż od Motywatorów (\(\beta\) = 0.191), które wywołują także dodatkowy dodatni efekt za pośrednictwem Aktywności (efekt pośredni \(\beta\) = 0.420, \(CI_{.95}\) [0.216–0.660]). Motywatory wywierają silny wpływ bezpośrednio na Aktywności (\(\beta\) = 0.830). W modelu wykazano brak bezpośredniej zależności między Barierami a Wynikami (\(p\) = 0.806).