Tải dữ liệu
setwd("c:/vidu")
library(plspm)
library(foreign)
dulieu <-read.dta("EFA.dta")
attach(dulieu)
head(dulieu)
## SAT1 SAT2 SAT3 SAT4 RAS1 RAS2 RAS3 RAS4 COM1 COM2 COM3 COM4 PAM1 PAM2 PAM3
## 1 4 1 4 3 3 3 2 3 2 2 3 2 4 4 5
## 2 5 5 4 5 1 2 3 5 5 5 5 5 2 2 2
## 3 5 5 5 5 4 4 5 4 4 4 3 4 4 4 5
## 4 4 4 5 4 3 4 3 3 3 4 3 4 5 5 5
## 5 3 3 3 4 4 4 3 4 5 5 5 5 3 5 3
## 6 2 2 2 2 5 5 2 5 3 4 3 3 4 4 3
## PAM4 TAD1 TAD2 TAD3 TAD4
## 1 4 5 5 5 5
## 2 2 4 4 4 4
## 3 4 3 4 3 3
## 4 5 3 4 2 5
## 5 3 2 2 3 2
## 6 4 4 4 3 4
1. Tạo mối quan hệ của thang đo
A1 <- c(0,0,0,0,0)
A2 <- c(1,0,0,0,0)
A3 <- c(0,0,0,0,0)
A4 <- c(0,0,1,0,0)
A5 <- c(1,1,1,1,0)
B1 <-c(0,0,0,0)
B2 <-c(0,0,0,0)
B3 <-c(0,0,0,0)
B4 <-c(1,1,1,0)
A <-c(0,0,0)
B <-c(0,0,0)
C <-c(1,1,0)
matran1 <-rbind(A1, A2, A3, A4, A5)
matran2 <-rbind(A,B,C)
matran3 <-rbind(B1, B2, B3, B4)
matran1
## [,1] [,2] [,3] [,4] [,5]
## A1 0 0 0 0 0
## A2 1 0 0 0 0
## A3 0 0 0 0 0
## A4 0 0 1 0 0
## A5 1 1 1 1 0
matran2
## [,1] [,2] [,3]
## A 0 0 0
## B 0 0 0
## C 1 1 0
2. Đặt tên cột cho ma trận
colnames(matran1) = rownames(matran1)
colnames(matran2) = rownames(matran2)
colnames(matran3) = rownames(matran3)
matran1
## A1 A2 A3 A4 A5
## A1 0 0 0 0 0
## A2 1 0 0 0 0
## A3 0 0 0 0 0
## A4 0 0 1 0 0
## A5 1 1 1 1 0
matran2
## A B C
## A 0 0 0
## B 0 0 0
## C 1 1 0
matran3
## B1 B2 B3 B4
## B1 0 0 0 0
## B2 0 0 0 0
## B3 0 0 0 0
## B4 1 1 1 0
innerplot(matran1)

innerplot(matran2)

innerplot(matran3)

3. Chọn biến vào thang đo và phương pháp
#### Chọn biến theo matran
chonbien1 <-list(17:20, 9:12,13:16,1:4,5:8)
chonbien2 <-list(1:4,5:8,9:12)
chonbien3 <- list(1:4,5:8,9:12,13:16)
#### chọn phương pháp ước lượng
pp1 <- rep("A", 5)
pp2 <-rep("A",3)
pp3 <- rep("A",4)
4. Ước lượng PLS SEM
#plssem2 <- plspm(dulieu,matran2,chonbien2,modes=pp2, boot.val=TRUE)
#summary(plssem2)
plssem1 <- plspm(dulieu,matran1,chonbien1,modes=pp1, boot.val=TRUE)
summary(plssem1)
## PARTIAL LEAST SQUARES PATH MODELING (PLS-PM)
##
## ----------------------------------------------------------
## MODEL SPECIFICATION
## 1 Number of Cases 150
## 2 Latent Variables 5
## 3 Manifest Variables 20
## 4 Scale of Data Standardized Data
## 5 Non-Metric PLS FALSE
## 6 Weighting Scheme centroid
## 7 Tolerance Crit 1e-06
## 8 Max Num Iters 100
## 9 Convergence Iters 11
## 10 Bootstrapping TRUE
## 11 Bootstrap samples 100
##
## ----------------------------------------------------------
## BLOCKS DEFINITION
## Block Type Size Mode
## 1 A1 Exogenous 4 A
## 2 A2 Endogenous 4 A
## 3 A3 Exogenous 4 A
## 4 A4 Endogenous 4 A
## 5 A5 Endogenous 4 A
##
## ----------------------------------------------------------
## BLOCKS UNIDIMENSIONALITY
## Mode MVs C.alpha DG.rho eig.1st eig.2nd
## A1 A 4 0.865 0.909 2.86 0.566
## A2 A 4 0.904 0.933 3.11 0.474
## A3 A 4 0.861 0.906 2.83 0.547
## A4 A 4 0.868 0.911 2.88 0.605
## A5 A 4 0.832 0.890 2.68 0.656
##
## ----------------------------------------------------------
## OUTER MODEL
## weight loading communality redundancy
## A1
## 1 TAD1 0.15663 0.809 0.654 0.000000
## 1 TAD2 0.61426 0.925 0.856 0.000000
## 1 TAD3 0.00411 0.632 0.399 0.000000
## 1 TAD4 0.37149 0.814 0.662 0.000000
## A2
## 2 COM1 -0.16860 0.585 0.343 0.000951
## 2 COM2 -0.01402 0.628 0.395 0.001095
## 2 COM3 -0.05609 0.491 0.241 0.000669
## 2 COM4 1.15012 0.987 0.974 0.002703
## A3
## 3 PAM1 0.36666 0.913 0.833 0.000000
## 3 PAM2 0.08405 0.728 0.530 0.000000
## 3 PAM3 0.21772 0.763 0.582 0.000000
## 3 PAM4 0.49408 0.887 0.786 0.000000
## A4
## 4 SAT1 0.32808 0.944 0.892 0.010815
## 4 SAT2 0.20449 0.769 0.592 0.007176
## 4 SAT3 0.39799 0.910 0.827 0.010032
## 4 SAT4 0.23116 0.739 0.546 0.006623
## A5
## 5 RAS1 0.31277 0.912 0.832 0.048915
## 5 RAS2 0.37613 0.829 0.687 0.040414
## 5 RAS3 0.20093 0.708 0.501 0.029465
## 5 RAS4 0.32691 0.797 0.635 0.037350
##
## ----------------------------------------------------------
## CROSSLOADINGS
## A1 A2 A3 A4 A5
## A1
## 1 TAD1 0.80860 0.01413 0.03779 -0.0109 -0.03696
## 1 TAD2 0.92533 0.03781 -0.10774 0.0263 -0.16265
## 1 TAD3 0.63165 0.00459 0.01019 -0.0022 0.00312
## 1 TAD4 0.81389 0.07326 0.03769 0.0123 -0.04816
## A2
## 2 COM1 -0.01486 0.58545 -0.11642 -0.0225 0.00397
## 2 COM2 -0.02075 0.62831 -0.15870 -0.0910 -0.01899
## 2 COM3 -0.01311 0.49090 -0.14836 -0.0771 -0.00675
## 2 COM4 0.04273 0.98690 -0.07062 -0.0800 -0.08546
## A3
## 3 PAM1 -0.05675 -0.03773 0.91272 0.0899 0.02549
## 3 PAM2 -0.05433 0.02253 0.72824 0.0630 -0.03651
## 3 PAM3 0.03515 0.01451 0.76301 0.0394 0.02912
## 3 PAM4 -0.05768 -0.08553 0.88651 0.1281 0.02750
## A4
## 4 SAT1 0.00226 -0.03703 0.13122 0.9444 -0.13018
## 4 SAT2 0.15691 -0.03895 0.00497 0.7693 -0.15797
## 4 SAT3 -0.03227 -0.10190 0.13624 0.9096 -0.18084
## 4 SAT4 -0.00424 -0.09499 0.05116 0.7391 -0.13299
## A5
## 5 RAS1 -0.07019 -0.08761 0.02615 -0.1607 0.91219
## 5 RAS2 -0.07314 -0.13244 0.03736 -0.1715 0.82914
## 5 RAS3 -0.07521 -0.09257 -0.01582 -0.0695 0.70797
## 5 RAS4 -0.18049 -0.00763 0.02188 -0.1499 0.79709
##
## ----------------------------------------------------------
## INNER MODEL
## $A2
## Estimate Std. Error t value Pr(>|t|)
## Intercept -2.53e-16 0.0821 -3.08e-15 1.000
## A1 5.27e-02 0.0821 6.42e-01 0.522
##
## $A4
## Estimate Std. Error t value Pr(>|t|)
## Intercept 9.93e-17 0.0817 1.22e-15 1.00
## A3 1.10e-01 0.0817 1.35e+00 0.18
##
## $A5
## Estimate Std. Error t value Pr(>|t|)
## Intercept 1.74e-16 0.0806 2.16e-15 1.000
## A1 -1.13e-01 0.0808 -1.40e+00 0.165
## A2 -1.06e-01 0.0810 -1.31e+00 0.193
## A3 3.63e-02 0.0812 4.47e-01 0.655
## A4 -1.88e-01 0.0813 -2.32e+00 0.022
##
## ----------------------------------------------------------
## CORRELATIONS BETWEEN LVs
## A1 A2 A3 A4 A5
## A1 1.0000 0.0527 -0.0462 0.0190 -0.1236
## A2 0.0527 1.0000 -0.0510 -0.0826 -0.0983
## A3 -0.0462 -0.0510 1.0000 0.1101 0.0262
## A4 0.0190 -0.0826 0.1101 1.0000 -0.1777
## A5 -0.1236 -0.0983 0.0262 -0.1777 1.0000
##
## ----------------------------------------------------------
## SUMMARY INNER MODEL
## Type R2 Block_Communality Mean_Redundancy AVE
## A1 Exogenous 0.00000 0.643 0.00000 0.643
## A2 Endogenous 0.00277 0.488 0.00135 0.488
## A3 Exogenous 0.00000 0.683 0.00000 0.683
## A4 Endogenous 0.01213 0.714 0.00866 0.714
## A5 Endogenous 0.05879 0.664 0.03904 0.664
##
## ----------------------------------------------------------
## GOODNESS-OF-FIT
## [1] 0.1252
##
## ----------------------------------------------------------
## TOTAL EFFECTS
## relationships direct indirect total
## 1 A1 -> A2 0.0527 0.00000 0.0527
## 2 A1 -> A3 0.0000 0.00000 0.0000
## 3 A1 -> A4 0.0000 0.00000 0.0000
## 4 A1 -> A5 -0.1127 -0.00559 -0.1183
## 5 A2 -> A3 0.0000 0.00000 0.0000
## 6 A2 -> A4 0.0000 0.00000 0.0000
## 7 A2 -> A5 -0.1061 0.00000 -0.1061
## 8 A3 -> A4 0.1101 0.00000 0.1101
## 9 A3 -> A5 0.0363 -0.02074 0.0156
## 10 A4 -> A5 -0.1883 0.00000 -0.1883
##
## ---------------------------------------------------------
## BOOTSTRAP VALIDATION
## weights
## Original Mean.Boot Std.Error perc.025 perc.975
## A1-TAD1 0.15663 0.265 0.2148 -0.3592 0.566
## A1-TAD2 0.61426 0.357 0.3740 -0.4312 1.012
## A1-TAD3 0.00411 0.181 0.2497 -0.3908 0.675
## A1-TAD4 0.37149 0.253 0.2414 -0.3953 0.649
## A2-COM1 -0.16860 0.241 0.1986 -0.2088 0.601
## A2-COM2 -0.01402 0.276 0.2856 -0.2242 0.749
## A2-COM3 -0.05609 0.258 0.1762 -0.0982 0.540
## A2-COM4 1.15012 0.297 0.2340 -0.0995 0.765
## A3-PAM1 0.36666 0.321 0.1414 0.0847 0.539
## A3-PAM2 0.08405 0.244 0.1995 -0.1286 0.582
## A3-PAM3 0.21772 0.198 0.2181 -0.2370 0.509
## A3-PAM4 0.49408 0.363 0.2389 -0.0459 0.803
## A4-SAT1 0.32808 0.303 0.0861 0.0950 0.427
## A4-SAT2 0.20449 0.249 0.1243 0.0517 0.488
## A4-SAT3 0.39799 0.350 0.1045 0.1243 0.536
## A4-SAT4 0.23116 0.253 0.1027 0.0663 0.418
## A5-RAS1 0.31277 0.318 0.0563 0.2196 0.413
## A5-RAS2 0.37613 0.328 0.0906 0.1536 0.473
## A5-RAS3 0.20093 0.252 0.0722 0.1345 0.385
## A5-RAS4 0.32691 0.310 0.1081 0.1150 0.529
##
## loadings
## Original Mean.Boot Std.Error perc.025 perc.975
## A1-TAD1 0.809 0.856 0.1212 0.5231 0.958
## A1-TAD2 0.925 0.760 0.2634 -0.0459 0.977
## A1-TAD3 0.632 0.755 0.1545 0.2967 0.950
## A1-TAD4 0.814 0.735 0.1614 0.3576 0.929
## A2-COM1 0.585 0.880 0.1152 0.5163 0.967
## A2-COM2 0.628 0.808 0.1930 0.4407 0.964
## A2-COM3 0.491 0.838 0.1137 0.5684 0.960
## A2-COM4 0.987 0.812 0.1706 0.2967 0.970
## A3-PAM1 0.913 0.885 0.0874 0.7495 0.951
## A3-PAM2 0.728 0.768 0.1644 0.4178 0.918
## A3-PAM3 0.763 0.729 0.1754 0.3354 0.931
## A3-PAM4 0.887 0.820 0.1058 0.5785 0.978
## A4-SAT1 0.944 0.924 0.0487 0.7871 0.965
## A4-SAT2 0.769 0.793 0.0910 0.6021 0.922
## A4-SAT3 0.910 0.879 0.0675 0.6939 0.958
## A4-SAT4 0.739 0.757 0.0887 0.5375 0.889
## A5-RAS1 0.912 0.918 0.0262 0.8587 0.947
## A5-RAS2 0.829 0.800 0.0770 0.6221 0.897
## A5-RAS3 0.708 0.745 0.0791 0.5621 0.871
## A5-RAS4 0.797 0.777 0.0827 0.5536 0.907
##
## paths
## Original Mean.Boot Std.Error perc.025 perc.975
## A1 -> A2 0.0527 -0.00621 0.1165 -0.165 0.1669
## A1 -> A5 -0.1127 -0.07438 0.1317 -0.262 0.1895
## A2 -> A5 -0.1061 -0.05585 0.1155 -0.215 0.1674
## A3 -> A4 0.1101 0.10642 0.1142 -0.159 0.2901
## A3 -> A5 0.0363 0.03920 0.1053 -0.148 0.2017
## A4 -> A5 -0.1883 -0.18137 0.0718 -0.302 -0.0393
##
## rsq
## Original Mean.Boot Std.Error perc.025 perc.975
## A2 0.00277 0.0135 0.0116 0.00181 0.0405
## A4 0.01213 0.0242 0.0224 0.00144 0.0848
## A5 0.05879 0.0874 0.0328 0.03694 0.1533
##
## total.efs
## Original Mean.Boot Std.Error perc.025 perc.975
## A1 -> A2 0.0527 -0.00621 0.1165 -0.165 0.1669
## A1 -> A3 0.0000 0.00000 0.0000 0.000 0.0000
## A1 -> A4 0.0000 0.00000 0.0000 0.000 0.0000
## A1 -> A5 -0.1183 -0.07648 0.1303 -0.254 0.2052
## A2 -> A3 0.0000 0.00000 0.0000 0.000 0.0000
## A2 -> A4 0.0000 0.00000 0.0000 0.000 0.0000
## A2 -> A5 -0.1061 -0.05585 0.1155 -0.215 0.1674
## A3 -> A4 0.1101 0.10642 0.1142 -0.159 0.2901
## A3 -> A5 0.0156 0.01928 0.1032 -0.167 0.1545
## A4 -> A5 -0.1883 -0.18137 0.0718 -0.302 -0.0393
plssem1
## Partial Least Squares Path Modeling (PLS-PM)
## ---------------------------------------------
## NAME DESCRIPTION
## 1 $outer_model outer model
## 2 $inner_model inner model
## 3 $path_coefs path coefficients matrix
## 4 $scores latent variable scores
## 5 $crossloadings cross-loadings
## 6 $inner_summary summary inner model
## 7 $effects total effects
## 8 $unidim unidimensionality
## 9 $gof goodness-of-fit
## 10 $boot bootstrap results
## 11 $data data matrix
## ---------------------------------------------
## You can also use the function 'summary'
#plssem3<- plspm(dulieu,matran3,chonbien3,modes=pp3, boot.val=TRUE)
#summary(plssem3)
Đo lường chất lượng thang đo
plssem1$unidim
## Mode MVs C.alpha DG.rho eig.1st eig.2nd
## A1 A 4 0.8648023 0.9087984 2.858275 0.5658773
## A2 A 4 0.9035032 0.9328096 3.106412 0.4744276
## A3 A 4 0.8610772 0.9062488 2.832023 0.5466159
## A4 A 4 0.8680266 0.9106932 2.876900 0.6047636
## A5 A 4 0.8324504 0.8895621 2.678729 0.6562608
### Alpha > 0.7 ok
### Dillon-Goldstein’s rho > 0.7 ( Tốt hơn Alpha)
### First eigenvalue 1st >1 và 2nd <1 là ok
Mô hình outer model
plssem1$outer_model
## name block weight loading communality redundancy
## 1 TAD1 A1 0.156629338 0.8086021 0.6538373 0.0000000000
## 2 TAD2 A1 0.614264467 0.9253320 0.8562393 0.0000000000
## 3 TAD3 A1 0.004113243 0.6316542 0.3989871 0.0000000000
## 4 TAD4 A1 0.371491590 0.8138878 0.6624133 0.0000000000
## 5 COM1 A2 -0.168601801 0.5854492 0.3427508 0.0009510467
## 6 COM2 A2 -0.014021287 0.6283134 0.3947778 0.0010954084
## 7 COM3 A2 -0.056092498 0.4909046 0.2409874 0.0006686789
## 8 COM4 A2 1.150118505 0.9869015 0.9739745 0.0027025325
## 9 PAM1 A3 0.366664683 0.9127168 0.8330519 0.0000000000
## 10 PAM2 A3 0.084054582 0.7282363 0.5303281 0.0000000000
## 11 PAM3 A3 0.217723774 0.7630113 0.5821862 0.0000000000
## 12 PAM4 A3 0.494075752 0.8865072 0.7858950 0.0000000000
## 13 SAT1 A4 0.328083995 0.9444138 0.8919174 0.0108153258
## 14 SAT2 A4 0.204491027 0.7692745 0.5917833 0.0071759213
## 15 SAT3 A4 0.397990253 0.9095813 0.8273382 0.0100322426
## 16 SAT4 A4 0.231155928 0.7390626 0.5462136 0.0066233459
## 17 RAS1 A5 0.312768872 0.9121904 0.8320914 0.0489153278
## 18 RAS2 A5 0.376128781 0.8291449 0.6874812 0.0404142764
## 19 RAS3 A5 0.200927766 0.7079748 0.5012284 0.0294652135
## 20 RAS4 A5 0.326912347 0.7970888 0.6353506 0.0373497241
### loading > 0.7 ok
plot(plssem1, what = "loadings")

plot(plssem1, what = "weights")

### Mô hình CrossLoadin
```r
plssem1$crossloadings
## name block A1 A2 A3 A4 A5
## 1 TAD1 A1 0.808602075 0.014127337 0.037790605 -0.010944415 -0.036958805
## 2 TAD2 A1 0.925332010 0.037814667 -0.107744657 0.026318096 -0.162648643
## 3 TAD3 A1 0.631654218 0.004592738 0.010193206 -0.002196379 0.003115667
## 4 TAD4 A1 0.813887796 0.073261449 0.037688622 0.012271937 -0.048163786
## 5 COM1 A2 -0.014862196 0.585449236 -0.116417609 -0.022453003 0.003974727
## 6 COM2 A2 -0.020754344 0.628313443 -0.158696604 -0.090968279 -0.018994837
## 7 COM3 A2 -0.013108500 0.490904642 -0.148361784 -0.077109953 -0.006754038
## 8 COM4 A2 0.042729319 0.986901455 -0.070615937 -0.080003701 -0.085455263
## 9 PAM1 A3 -0.056751308 -0.037729106 0.912716756 0.089909365 0.025494605
## 10 PAM2 A3 -0.054332485 0.022528314 0.728236281 0.062983078 -0.036514062
## 11 PAM3 A3 0.035150251 0.014509887 0.763011284 0.039412483 0.029118702
## 12 PAM4 A3 -0.057681669 -0.085533824 0.886507192 0.128069730 0.027497526
## 13 SAT1 A4 0.002258166 -0.037027203 0.131218203 0.944413802 -0.130177056
## 14 SAT2 A4 0.156907453 -0.038953705 0.004970545 0.769274530 -0.157965115
## 15 SAT3 A4 -0.032274814 -0.101900251 0.136243857 0.909581323 -0.180844704
## 16 SAT4 A4 -0.004239699 -0.094993520 0.051164756 0.739062627 -0.132986145
## 17 RAS1 A5 -0.070191489 -0.087606514 0.026145669 -0.160658398 0.912190416
## 18 RAS2 A5 -0.073136231 -0.132438943 0.037356798 -0.171495526 0.829144882
## 19 RAS3 A5 -0.075208299 -0.092567761 -0.015818923 -0.069530248 0.707974829
## 20 RAS4 A5 -0.180488598 -0.007630546 0.021884870 -0.149894968 0.797088824
### Vẽ đồ thị
library(ggplot2)
##
## Attaching package: 'ggplot2'
## The following object is masked from 'package:plspm':
##
## alpha
library(reshape)
datacross = melt(plssem1$crossloadings, id.vars = c("name", "block"),
variable_name = "LV")
ggplot(data = datacross,
aes(x = name, y = value, fill = block)) +
# add horizontal reference lines
geom_hline(yintercept = 0, color = "gray75") +
geom_hline(yintercept = 0.5, color = "gray70", linetype = 2) +
# indicate the use of car-charts
geom_bar(stat = 'identity', position = 'dodge') +
# panel display (i.e. faceting)
facet_wrap(block ~ LV) +
# tweaking some grahical elements
theme(axis.text.x = element_text(angle = 90),
line = element_blank(),
plot.title = element_text(size = 12)) +
# add title
ggtitle("Crossloadings")

Chạy inner model
### pvalue < 0.05 có ý nghĩa thống kê
plssem1$inner_model
## $A2
## Estimate Std. Error t value Pr(>|t|)
## Intercept -2.528784e-16 0.08208537 -3.080675e-15 1.0000000
## A1 5.267586e-02 0.08208537 6.417205e-01 0.5220473
##
## $A4
## Estimate Std. Error t value Pr(>|t|)
## Intercept 9.929620e-17 0.0816996 1.215382e-15 1.0000000
## A3 1.101178e-01 0.0816996 1.347838e+00 0.1797701
##
## $A5
## Estimate Std. Error t value Pr(>|t|)
## Intercept 1.741867e-16 0.08056756 2.161996e-15 1.00000000
## A1 -1.127322e-01 0.08078889 -1.395392e+00 0.16503110
## A2 -1.060793e-01 0.08102829 -1.309164e+00 0.19254963
## A3 3.631995e-02 0.08122086 4.471751e-01 0.65541590
## A4 -1.883488e-01 0.08133814 -2.315627e+00 0.02198095
plot(plssem1)

### R2 < 0.3 xấu, R2 <0.5 được, R2 > 0.5 tốt
### AVE > 0.5
plssem1$inner_summary
## Type R2 Block_Communality Mean_Redundancy AVE
## A1 Exogenous 0.000000000 0.6428693 0.000000000 0.6428693
## A2 Endogenous 0.002774747 0.4881226 0.001354417 0.4881226
## A3 Exogenous 0.000000000 0.6828653 0.000000000 0.6828653
## A4 Endogenous 0.012125927 0.7143131 0.008661709 0.7143131
## A5 Endogenous 0.058786006 0.6640379 0.039036135 0.6640379
Mức độ giải thích mô hình Gof
plssem1$gof
## [1] 0.125226
### Gof > 0.7 là tốt