public double mcdonaldOmega() { double omega = 0.0; double sumLambda = 0.0, sumLambda2 = 0.0; double sumErrorVar = 0.0; double[] fl = model.getFactorLoading(); double[] er = model.getErrorVariance(); for (int i = 0; i < nItems; i++) { sumLambda += fl[i]; sumErrorVar += er[i]; } sumLambda2 = Math.pow(sumLambda, 2); omega = sumLambda2 / (sumLambda2 + sumErrorVar); return omega; }
@Override public String toString() { StringBuilder sb = new StringBuilder(); Formatter f = new Formatter(sb); double[] fl = model.getFactorLoading(); double[] er = model.getErrorVariance(); for (int i = 0; i < nItems; i++) { f.format("% .4f", fl[i]); f.format("%5s", ""); f.format("% .4f", er[i]); f.format("%n"); } f.format("%10s", "McDonald's Omega = "); f.format("%8.4f", mcdonaldOmega()); f.format("%n"); f.format("%10s", "GFI = "); f.format("%8.4f", gfi()); f.format("%n"); f.format("%10s", "AGFI = "); f.format("%8.4f", agfi()); f.format("%n"); f.format("%10s", "RMSEA = "); f.format("%8.4f", rmsea()); f.format("%n"); f.format("%10s", "RMSR = "); f.format("%8.4f", Math.sqrt(meanSquaredResidual())); f.format("%n"); f.format("%10s", "BIC = "); f.format("%8.4f", Math.sqrt(bic())); f.format("%n"); f.format("%10s", "X^2 = "); f.format("%8.4f", chisquare()); f.format("%n"); f.format("%10s", "df = "); f.format("%8.4f", degreesOfFreedom()); f.format("%n"); f.format("%10s", "p = "); f.format("%8.4f", pvalue()); f.format("%n"); return f.toString(); }
public String printEstimates(ArrayList<VariableInfo> items) { StringBuilder sb = new StringBuilder(); Formatter f = new Formatter(sb); double[] fl = model.getFactorLoading(); double[] er = model.getErrorVariance(); // f.format("%50s", " CONFIRMATORY FACTOR ANALYSIS RESULTS "); f.format("%n"); f.format("%-50s", model.getName()); f.format("%n"); f.format("%50s", "=================================================="); f.format("%n"); f.format("%10s", " "); f.format("%5s", ""); f.format("%10s", "Factor "); f.format("%5s", ""); f.format("%10s", " Error"); f.format("%n"); f.format("%10s", " Item"); f.format("%5s", ""); f.format("%10s", "Loading"); f.format("%5s", ""); f.format("%10s", "Variance"); f.format("%n"); f.format("%50s", "--------------------------------------------------"); f.format("%n"); for (int i = 0; i < items.size(); i++) { f.format("%10s", items.get(i)); f.format("%5s", ""); f.format("% 10.4f", fl[i]); f.format("%5s", ""); f.format("% 10.4f", er[i]); f.format("%n"); } f.format("%50s", "--------------------------------------------------"); f.format("%n"); return f.toString(); }