I have five items on a construct when i run alpha
on it on i get the following results without any errors
psych::alpha(construct,
na.rm = TRUE,
title = 'myscale',
n.iter = 1000)
Reliability analysis myscale
Call: psych::alpha(x = construct, title = "myscale", na.rm = TRUE,
n.iter = 1000)
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd
0.81 0.81 0.78 0.46 4.3 0.013 2.6 0.89
lower alpha upper 95% confidence boundaries
0.78 0.81 0.84
lower median upper bootstrapped confidence intervals
0.77 0.81 0.84
I have been reading the paper From Alpha to omega: A practical solution to the pervasive problem of internal consistency estimation
link
It recommends using the code below
MBESS::ci.reliability(construct, interval.type="bca", B=1000, type = "omega")
$est
[1] 0.8107376
$se
[1] 0.01651936
$ci.lower
[1] 0.7764029
$ci.upper
[1] 0.839944
$conf.level
[1] 0.95
$type
[1] "omega"
$interval.type
[1] "bca bootstrap"
I have been trying to run omega on my sample set using the psych package to keep things consistent in my analysis
psych::omega(m = construct,
nfactors = 1, fm = "pa", n.iter = 1000, p = 0.05,
title = "Omega", plot = FALSE, n.obs = 506)
I get the two error messages
In factor.scores, the correlation matrix is singular, an approximation is used Omega_h for 1 factor is not meaningful, just omega_t
This warning is occurring because the number of columns are two small for Omega_h. A previous question on SO answers this somewhat McDonalds omega: warnings in R
The error im having is below
Error in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate = rotate, : I am sorry: missing values (NAs) in the correlation matrix do not allow me to continue. Please drop those variables and try again. In addition: There were 50 or more warnings (use warnings() to see the first 50)
There are no missing values so im not sure about error number two
The details of my construct are
Q1 Q2 Q3
Min. :0.000 Min. :0.000 Min. :0.000
1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000
Median :3.000 Median :2.000 Median :3.000
Mean :2.597 Mean :2.393 Mean :3.227
3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:4.000
Max. :6.000 Max. :6.000 Max. :6.000
Q4 Q5
Min. :0.00 Min. :0.000
1st Qu.:1.00 1st Qu.:2.000
Median :2.00 Median :2.000
Mean :2.17 Mean :2.445
3rd Qu.:3.00 3rd Qu.:3.000
Max. :6.00 Max. :6.000
EDIT
Created data with the same properties - 100 entries (Alpha roughly 0.56) but it generates the same error on omega
structure(list(Q1 = c(4, 5, 3, 5, 4, 5, 3, 5, 5, 5, 6,
3, 5, 4, 6, 5, 5, 6, 7, 4, 5, 5, 3, 4, 4, 5, 4, 3, 5, 4, 5, 5,
6, 6, 3, 6, 3, 4, 4, 4, 6, 5, 3, 2, 6, 6, 4, 5, 4, 3, 6, 4, 4,
5, 6, 2, 4, 3, 4, 6, 4, 6, 4, 5, 5, 6, 4, 6, 5, 5, 4, 5, 6, 6,
2, 5, 4, 3, 4, 4, 4, 6, 3, 3, 5, 4, 4, 4, 5, 5, 5, 3, 6, 6, 6,
6, 5, 4, 3, 5), Q2 = c(7, 4, 4, 4, 4, 6, 6, 6, 7, 6, 5,
6, 5, 4, 5, 6, 6, 6, 7, 5, 4, 4, 6, 6, 4, 4, 6, 2, 6, 5, 4, 6,
4, 6, 6, 6, 5, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 6, 2, 6, 6, 5, 4,
6, 6, 4, 4, 7, 6, 5, 5, 5, 5, 6, 5, 5, 4, 5, 5, 5, 4, 6, 7, 5,
5, 5, 6, 5, 6, 5, 6, 7, 2, 6, 5, 7, 3, 5, 5, 3, 3, 3, 7, 4, 5,
6, 6, 6, 5, 7), Q3 = c(5, 4, 5, 6, 4, 4, 5, 4, 2, 6, 5,
5, 5, 5, 7, 5, 5, 6, 7, 6, 3, 6, 6, 6, 5, 6, 6, 5, 5, 4, 5, 5,
6, 6, 5, 6, 5, 5, 4, 4, 6, 4, 4, 4, 4, 4, 4, 5, 5, 4, 5, 5, 4,
3, 5, 4, 5, 6, 6, 6, 4, 5, 5, 5, 6, 4, 5, 5, 7, 4, 5, 6, 6, 5,
5, 3, 3, 5, 4, 6, 5, 5, 1, 3, 5, 3, 2, 5, 4, 6, 6, 6, 6, 4, 6,
3, 6, 6, 6, 5), Q4 = c(6, 6, 4, 7, 4, 6, 7, 6, 7, 6, 6,
6, 5, 7, 7, 6, 6, 5, 7, 7, 6, 6, 7, 7, 6, 6, 6, 5, 6, 7, 5, 6,
7, 5, 4, 6, 4, 3, 6, 4, 6, 6, 6, 3, 5, 7, 5, 6, 4, 6, 7, 6, 7,
4, 6, 3, 5, 7, 5, 4, 6, 6, 4, 6, 5, 5, 5, 5, 7, 7, 7, 6, 6, 6,
5, 6, 6, 4, 5, 7, 6, 7, 3, 5, 6, 5, 6, 5, 5, 7, 7, 6, 6, 2, 7,
6, 6, 7, 7, 5)), .Names = c("Q1", "Q2", "Q3",
"Q4"), row.names = c(NA, 100L), class = "data.frame")
Can anyone see where im falling down?
Thank you for your time
so I tried this:
and it worked with this result:
I checked the defaults and
nfactors = 3
and then.iter = 1
. Then I slowly increased the n.iter, and decreased the n.factor, and it keeps working until n.iter =7, and keeping nfactors as 3with your full dataset you should be able to get higher n.iter