1. Tải dữ liệu
library(thongke.club)
library(psych)
data(thangdo)
dulieu <- thangdo
head(dulieu)
## b1 b2 b3 b4 b5 c1 c2 c3 c4 c5 d1 d2 d3 d4 d5 e1 e2 e3 e4 e5
## [1,] 1 1 1 1 1 4 4 4 4 4 1 1 1 1 1 4 4 4 4 4
## [2,] 4 4 4 4 4 5 1 1 5 4 4 4 4 4 4 4 5 4 5 5
## [3,] 1 1 1 1 1 4 5 5 4 5 5 5 5 5 5 1 1 5 1 1
## [4,] 5 5 5 5 5 5 4 5 4 5 4 4 4 4 4 1 1 1 1 4
## [5,] 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 1 4 1 5 5
## [6,] 4 1 1 1 1 1 1 1 5 1 4 1 5 1 4 1 5 1 1 1
2. Kiểm tra Cronback’s Alpha
alpha(dulieu[,1:5])
##
## Reliability analysis
## Call: alpha(x = dulieu[, 1:5])
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.9 0.9 0.89 0.65 9.4 0.0076 4.3 0.65 0.65
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.89 0.9 0.92
## Duhachek 0.89 0.9 0.92
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## b1 0.89 0.89 0.86 0.67 8.2 0.0089 0.00150 0.67
## b2 0.88 0.88 0.85 0.65 7.5 0.0096 0.00130 0.66
## b3 0.87 0.87 0.84 0.63 6.7 0.0106 0.00072 0.63
## b4 0.89 0.89 0.86 0.66 7.9 0.0091 0.00181 0.67
## b5 0.88 0.88 0.85 0.65 7.5 0.0095 0.00305 0.65
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## b1 400 0.82 0.82 0.76 0.72 4.4 0.75
## b2 400 0.85 0.85 0.81 0.76 4.3 0.78
## b3 400 0.89 0.89 0.86 0.82 4.3 0.80
## b4 400 0.83 0.83 0.77 0.74 4.3 0.76
## b5 400 0.85 0.85 0.80 0.76 4.3 0.75
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## b1 0.01 0.02 0.05 0.43 0.49 0
## b2 0.01 0.03 0.04 0.44 0.48 0
## b3 0.01 0.03 0.05 0.43 0.48 0
## b4 0.01 0.02 0.06 0.44 0.47 0
## b5 0.01 0.03 0.05 0.44 0.47 0
alpha(dulieu[,6:10])
##
## Reliability analysis
## Call: alpha(x = dulieu[, 6:10])
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.89 0.89 0.87 0.61 7.8 0.009 4.3 0.63 0.61
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.87 0.89 0.9
## Duhachek 0.87 0.89 0.9
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## c1 0.86 0.86 0.82 0.60 5.9 0.0117 0.0033 0.59
## c2 0.86 0.86 0.83 0.60 6.1 0.0115 0.0063 0.61
## c3 0.88 0.88 0.85 0.65 7.3 0.0098 0.0014 0.64
## c4 0.87 0.86 0.83 0.62 6.4 0.0110 0.0039 0.61
## c5 0.85 0.85 0.81 0.58 5.5 0.0125 0.0029 0.59
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## c1 400 0.85 0.84 0.80 0.75 4.3 0.76
## c2 400 0.84 0.84 0.78 0.74 4.3 0.78
## c3 400 0.77 0.77 0.68 0.64 4.4 0.74
## c4 400 0.82 0.82 0.75 0.71 4.3 0.77
## c5 400 0.87 0.87 0.84 0.79 4.4 0.76
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## c1 0.00 0.03 0.05 0.45 0.46 0
## c2 0.01 0.03 0.05 0.44 0.47 0
## c3 0.00 0.03 0.04 0.45 0.47 0
## c4 0.00 0.04 0.05 0.44 0.47 0
## c5 0.00 0.03 0.05 0.43 0.49 0
alpha(dulieu[,11:15])
##
## Reliability analysis
## Call: alpha(x = dulieu[, 11:15])
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.86 0.86 0.84 0.56 6.3 0.011 4.3 0.6 0.56
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.84 0.86 0.88
## Duhachek 0.84 0.86 0.88
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## d1 0.84 0.84 0.80 0.57 5.3 0.013 0.00074 0.58
## d2 0.84 0.84 0.80 0.57 5.3 0.013 0.00219 0.56
## d3 0.84 0.84 0.80 0.56 5.1 0.013 0.00406 0.57
## d4 0.82 0.82 0.78 0.54 4.7 0.014 0.00255 0.54
## d5 0.83 0.83 0.79 0.55 4.9 0.014 0.00409 0.55
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## d1 400 0.78 0.78 0.71 0.65 4.4 0.72
## d2 400 0.79 0.79 0.71 0.66 4.3 0.74
## d3 400 0.80 0.80 0.73 0.68 4.3 0.72
## d4 400 0.83 0.83 0.78 0.72 4.3 0.76
## d5 400 0.82 0.82 0.75 0.70 4.3 0.77
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## d1 0.01 0.02 0.04 0.47 0.46 0
## d2 0.01 0.03 0.04 0.47 0.46 0
## d3 0.00 0.03 0.04 0.47 0.46 0
## d4 0.01 0.03 0.04 0.47 0.46 0
## d5 0.00 0.04 0.05 0.44 0.47 0
alpha(dulieu[,16:20])
##
## Reliability analysis
## Call: alpha(x = dulieu[, 16:20])
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.87 0.87 0.85 0.58 6.8 0.01 4.4 0.6 0.6
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.85 0.87 0.89
## Duhachek 0.85 0.87 0.89
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## e1 0.84 0.84 0.80 0.57 5.3 0.013 0.0022 0.58
## e2 0.85 0.85 0.81 0.58 5.6 0.012 0.0023 0.60
## e3 0.84 0.84 0.80 0.57 5.2 0.013 0.0029 0.60
## e4 0.83 0.83 0.80 0.56 5.0 0.014 0.0031 0.55
## e5 0.86 0.86 0.82 0.60 6.0 0.012 0.0010 0.61
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## e1 400 0.82 0.82 0.76 0.71 4.4 0.75
## e2 400 0.80 0.80 0.73 0.68 4.4 0.72
## e3 400 0.83 0.83 0.77 0.72 4.4 0.74
## e4 400 0.84 0.84 0.79 0.74 4.4 0.74
## e5 400 0.77 0.78 0.69 0.64 4.4 0.72
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## e1 0.01 0.01 0.04 0.44 0.49 0
## e2 0.00 0.02 0.05 0.44 0.48 0
## e3 0.01 0.02 0.04 0.41 0.52 0
## e4 0.01 0.02 0.03 0.43 0.50 0
## e5 0.01 0.02 0.03 0.48 0.46 0
3. Kiểm định cho EFA
KMO(dulieu)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = dulieu)
## Overall MSA = 0.87
## MSA for each item =
## b1 b2 b3 b4 b5 c1 c2 c3 c4 c5 d1 d2 d3 d4 d5 e1
## 0.87 0.88 0.87 0.90 0.88 0.87 0.89 0.84 0.87 0.86 0.85 0.85 0.87 0.86 0.83 0.85
## e2 e3 e4 e5
## 0.85 0.87 0.87 0.88
cortest.bartlett(dulieu)
## R was not square, finding R from data
## $chisq
## [1] 4307.808
##
## $p.value
## [1] 0
##
## $df
## [1] 190
4. Tìm nhân tố trong data
ev <- eigen(cor(dulieu)) # get eigenvalues
ev$values
## [1] 5.4431403 2.9792218 2.8294598 2.4124059 0.7289517 0.6146803 0.5508855
## [8] 0.5202780 0.4375583 0.4221368 0.3847385 0.3607920 0.3564208 0.3254425
## [15] 0.3032346 0.2991149 0.2891770 0.2687581 0.2516083 0.2219949
scree(dulieu, pc=FALSE) # Use pc=FALSE for factor analysis

fa.parallel(dulieu, fa="fa")

## Parallel analysis suggests that the number of factors = 4 and the number of components = NA
5. Ma trận xoay
fit <- factanal(dulieu, 4, rotation="varimax")
names(fit)
## [1] "converged" "loadings" "uniquenesses" "correlation" "criteria"
## [6] "factors" "dof" "method" "rotmat" "STATISTIC"
## [11] "PVAL" "n.obs" "call"
print(fit, digits=2, cutoff=0.5, sort=TRUE)
##
## Call:
## factanal(x = dulieu, factors = 4, rotation = "varimax")
##
## Uniquenesses:
## b1 b2 b3 b4 b5 c1 c2 c3 c4 c5 d1 d2 d3 d4 d5 e1
## 0.41 0.32 0.23 0.39 0.35 0.33 0.38 0.54 0.41 0.26 0.49 0.46 0.46 0.37 0.41 0.40
## e2 e3 e4 e5
## 0.45 0.39 0.35 0.50
##
## Loadings:
## Factor1 Factor2 Factor3 Factor4
## b1 0.76
## b2 0.82
## b3 0.86
## b4 0.76
## b5 0.79
## c1 0.80
## c2 0.76
## c3 0.67
## c4 0.76
## c5 0.85
## e1 0.77
## e2 0.74
## e3 0.77
## e4 0.79
## e5 0.69
## d1 0.70
## d2 0.69
## d3 0.72
## d4 0.77
## d5 0.76
##
## Factor1 Factor2 Factor3 Factor4
## SS loadings 3.28 3.08 2.92 2.82
## Proportion Var 0.16 0.15 0.15 0.14
## Cumulative Var 0.16 0.32 0.46 0.61
##
## Test of the hypothesis that 4 factors are sufficient.
## The chi square statistic is 251.21 on 116 degrees of freedom.
## The p-value is 5.55e-12
6. Tổng phương sai trích
pc <- prcomp(dulieu,scale.=T)
summary(pc)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 2.3331 1.7260 1.6821 1.5532 0.85379 0.78402 0.74222
## Proportion of Variance 0.2722 0.1490 0.1415 0.1206 0.03645 0.03073 0.02754
## Cumulative Proportion 0.2722 0.4211 0.5626 0.6832 0.71966 0.75039 0.77794
## PC8 PC9 PC10 PC11 PC12 PC13 PC14
## Standard deviation 0.72130 0.66148 0.64972 0.62027 0.60066 0.59701 0.57048
## Proportion of Variance 0.02601 0.02188 0.02111 0.01924 0.01804 0.01782 0.01627
## Cumulative Proportion 0.80395 0.82583 0.84694 0.86617 0.88421 0.90203 0.91831
## PC15 PC16 PC17 PC18 PC19 PC20
## Standard deviation 0.55067 0.54691 0.53775 0.51842 0.50161 0.4712
## Proportion of Variance 0.01516 0.01496 0.01446 0.01344 0.01258 0.0111
## Cumulative Proportion 0.93347 0.94842 0.96288 0.97632 0.98890 1.0000
7. Gía trị thang đo
dta <-fit$loadings
head(dta)
## Factor1 Factor2 Factor3 Factor4
## b1 0.75819687 0.06146267 0.02435007 0.09414264
## b2 0.81768753 0.05311067 0.06986652 0.03528448
## b3 0.85616856 0.09329498 0.11002109 0.10815949
## b4 0.76196955 0.09231333 0.11034639 0.10758301
## b5 0.79107159 0.02436172 0.04305603 0.14513272
## c1 0.08099151 0.79708699 0.10833109 0.11221213