MATLAB Examples

Mobile Customer Satisfaction Model

The example shows how to perform a Strucutral Equation Model with Partial Least Squares using PLS-PM matlab toolbox by Aria M.(2015).

The Dataset was presented in Tenenhaus et al. (2005). The goal of the analysis is to build up a satisfaction model for mobile customers following the European Customer Satisfaction Approach (ECSI).

Contents

Mobile Customer Satisfaction Dataset

Locate the dataset (in matlab format) in the plspm main folder or download it from this link:

http://wpage.unina.it/aria/datasets/ECSI_dataset.mat

and save it in your working folder

load the data file

load ECSI_dataset
%
% The file contains three objects:
%
% * MV
% * MV_labels
% * LV_labels
%
% MV is the matrix of 24 Measurement Variables (on the columns) observed on
% 250 subjects (on the rows).
%
% MV_labels and LV_labels contain the names of Measurement Variables (MVs)
% and Latent Variables (LVs) respectively.

Definition of input matrices

To perform a Structural Equation Model, it is necessary to define the inner (or structural) model and the outer (or measurement) model.

The definition of these two models occurs through the creation of two boolean matrix, DB (Path Design Matrix) and DP (Outer Design matrix) respectively. The first designs the set of links among LVs while the latter designs the set of links among each LV and its MVs block.

Information in matrices DB and DP have to reproduce the path diagram in the figure:

Creation of the Path Design Matrix

DB is an upper triangular matrix.

The "magic rule" to obtain a DB matrix is:

  • Exogenous LVs have lower numbers starting from 1.
     i.e Image (the only exogenous LV) is associated to the first row of DB
  • Endogenous LVs which are not predictor of any other LV have the last numbers.
     i.e Loyalty are not predictor of any other LV, then it is
     associated to the last row of DB.

following this rule, we define this order:

1st row: IMAGE

2nd row: CUSTOMER EXPECTATION

3rd row: PERCEIVED QUALITY

4th row: PERCEIVED VALUE

5th row: CUSTOMER SATISFACTION

6th row: COMPLIANT

7th row: LOYALTY

DB=zeros(7,7); % inizialitation of DB
%
% IMAGE is predictor of Customer Expectation, Customer Satisfaction and Loyalty
DB(1,[2,5,7])=1;
%
% CUSTOMER EXPECTATION is predictor of Perceived Quality, Perceived Value
% and Customer Satisfaction
DB(2,[3,4,5])=1;
%
% PERCEIVED QUALITY is predictor of Perceived Value and Customer Satisfaction
DB(3,[4,5])=1;
%
% PERCEIVED VALUE is predictor of Customer Satisfaction
DB(4,5)=1;
%
% CUSTOMER SATISFACTION is predictor of Compliant and Loyalty
DB(5,[6 7])=1;
%
% COMPLIANT is predictor of Loyalty
DB(6,[7])=1;
%
% This is the DB matrix associated to the ECSI path diagram
DB;

% ans =
%
%      0     1     0     0     1     0     1
%      0     0     1     1     1     0     0
%      0     0     0     1     1     0     0
%      0     0     0     0     1     0     0
%      0     0     0     0     0     1     1
%      0     0     0     0     0     0     1
%      0     0     0     0     0     0     0

The DB matrix can be obtained drawing the structural model through the function SMDesign_gui

help SMDesign_gui

SMDesign_gui Draw and Edit Graphs of Strucutral Model part of PLS-PM SMDesign_gui(DB,XY) Loads a structural model into the GUI for editing

   Controls:
     Use the radio buttons to select an action
       1. To DRAW a new CONSTRUCT, select 'Draw' and 'Construct'. Then click
         inside the axes in the desired location.
       2. To DELETE a CONSTRUCT, select 'Delete' and 'Construct'. Then click
         inside the axis near the desired vertex.
       3. To DRAW a new CONNECTION, select 'Draw' and 'Connection'. Then click and hold
         the mouse button down on the starting construct and drag the mouse
         to the construct of the desired connection.
         Note:
           If no constructs exist, no connections will be created.
       4. To DELETE a CONNECTION, select 'Delete' and 'Connection'. Then click and
         hold the mouse button down on the starting construct and drag the mouse
         to the construct of the desired connection to delete.
       5. Click the 'Save Structural Model' button to save the Design Path matrix (DB) and the
         coordinates (xy) of the graph to a MAT file.

to load the output of SMDesign_gui (DB and xy matrices) in workspace

load StructuralModelDesign

Definition of the Outer Design matrix

DP is a p (number of MVs) x j (number of LVs) matrix which associates each MV to one or more LVs putting value 1 in the appropriate cells.

Initialize DP

DP=zeros(24,7);

% MVs from ima1 to ima5 are associated to the first LV IMAGE
DP(1:5,1)=1;

% MVs from exp1 to exp3 are associated to the second LV CUSTOMER
% EXPECTATION
DP(6:8,2)=1;

% MVs from qua1 to qua7 are associated to the third LV PERCEIVED QUALITY
DP(9:15,3)=1;

% MVs from val1 to val2 are associated to the forth LV PERCEIVED VALUE
DP(16:17,4)=1;

% MVs from sat1 to sat3 are associated to the fifth LV CUSTOMER
% SATISFACTION
DP(18:20,5)=1;

% MV comp is associated to the sixth LV COMPLIANT
DP(21,6)=1;

% MVs from loy1 to loy3 are associated to the seventh LV LOYALTY
DP(22:24,7)=1;
%
% the final DP is:
DP;
%
% DP =
%
%      1     0     0     0     0     0     0
%      1     0     0     0     0     0     0
%      1     0     0     0     0     0     0
%      1     0     0     0     0     0     0
%      1     0     0     0     0     0     0
%      0     1     0     0     0     0     0
%      0     1     0     0     0     0     0
%      0     1     0     0     0     0     0
%      0     0     1     0     0     0     0
%      0     0     1     0     0     0     0
%      0     0     1     0     0     0     0
%      0     0     1     0     0     0     0
%      0     0     1     0     0     0     0
%      0     0     1     0     0     0     0
%      0     0     1     0     0     0     0
%      0     0     0     1     0     0     0
%      0     0     0     1     0     0     0
%      0     0     0     0     1     0     0
%      0     0     0     0     1     0     0
%      0     0     0     0     1     0     0
%      0     0     0     0     0     1     0
%      0     0     0     0     0     0     1
%      0     0     0     0     0     0     1
%      0     0     0     0     0     0     1

Definition of mode vector

for each of 7 blocks, we have to define the reflective (A) or the formative (B) measurement model.

In ECSI example, all measurement bocks are estimated as reflective model.

Mmode=['A'; 'A'; 'A'; 'A'; 'A'; 'A'; 'A'];
%

Definition of coordinates of LV in the path diagram

To plot the path diagram, it is necessary to define (x,y) coordinates for each LV node.

Starting from the previous figure, nodes are enumerated as following:

the LVs have x coordinates from 1 to 6 and y coordinates from 1 to 4:

xy=[1 4;
    2 3;
    2 1;
    3 2;
    4 2;
    5 1;
    6 3];

% If you created the path diagram through the function SMDesign_gui,
% coordinates are automatically generated.

Plotting the Path Diagram

color='blue';
%path_graph(DB,xy,2,color,LV_labels)
%

Performing the PLS-PM algorithm

Setting up of the function parameters:

PLS-PM allows the user to apply three different structural model weighting schemes (Wold, 1982):

  • method='centroid'
  • method='factor'
  • method='path'

In the ECSI model, weights the most appropriate weighting scheme is 'path'

method='path';
%
% the max number of iterations (the minimum value is 100)
max_iter=300;
%
%
% performing the PLS PM algorithm
[results]=plspm(MV,DP,DB,Mmode,method,max_iter);

% creation of output tables
%
% to easily explore results of plspm, function summary_plspm.m formats
% output into matlab tables data type.
%
dec=3; % decimals of numbers in tables
%
[ OM_Tables, IM_Tables, OVERALL_Tables ] = summary_plspm(results,MV_labels,LV_labels,dec );

Overall Model assessment

Indices for Overall Modell Assessment

OVERALL_Tables;

%ans =

%       SRMR: [3x1 table]
%    rel_ind: [2x2 table]

Standardized Root Mean Square Residual (SRMR)

OVERALL_Tables.SRMR;

% ans =
%
%                                     SRMR
%                                    ______
%
%     Empirical_vs_BaselineModel     0.3677
%     Empirical_vs_CompositeModel    0.0767
%     Empirical_vs_FactorModel       0.0585

Relative indices of Tucker and Lewis (TLI) and Bentler ans Bonett (NFI)

OVERALL_Tables.rel_ind;

% ans =
%
%                             TLI       NFI
%                            ______    ______
%
%     Common_Factor_Model    0.7674    0.6913
%     Factor_Model           0.9236    0.8319

Results of Outer Model

Output view for Outer Model

OM_Tables;

% ans =
%
%               DP: [24x7 table]
%          weights: [24x7 table]
%         loadings: [24x7 table]
%        crossload: [24x7 table]
%      communality: [24x7 table]
%             HTMT: [7x7 table]
%               MV: [250x24 table]
%              res: [250x24 table]
%      consistency: [7x3 table]
%              vif: [24x7 table]
%              AVE: [7x1 table]
%     discriminant: [7x9 table]

Outer Weights

OM_Tables.weights;

% ans =
%
%             Image    CustExpect    PercQuality    PercValue    CustSat    Loyalty    Compliant
%             _____    __________    ___________    _________    _______    _______    _________
%
%     ima1    0.301        0             0              0            0      0              0
%     ima2     0.26        0             0              0            0      0              0
%     ima3    0.218        0             0              0            0      0              0
%     ima4    0.329        0             0              0            0      0              0
%     ima5    0.325        0             0              0            0      0              0
%     exp1        0    0.521             0              0            0      0              0
%     exp2        0    0.474             0              0            0      0              0
%     exp3        0    0.446             0              0            0      0              0
%     qua1        0        0         0.213              0            0      0              0
%     qua2        0        0         0.145              0            0      0              0
%     qua3        0        0           0.2              0            0      0              0
%     qua4        0        0         0.179              0            0      0              0
%     qua5        0        0         0.179              0            0      0              0
%     qua6        0        0         0.179              0            0      0              0
%     qua7        0        0         0.215              0            0      0              0
%     val1        0        0             0          0.479            0      0              0
%     val2        0        0             0          0.604            0      0              0
%     sat1        0        0             0              0        0.365      0              0
%     sat2        0        0             0              0        0.383      0              0
%     sat3        0        0             0              0        0.451      0              0
%     comp        0        0             0              0            0      1              0
%     loy1        0        0             0              0            0      0          0.461
%     loy2        0        0             0              0            0      0          0.114
%     loy3        0        0             0              0            0      0          0.654

Outer Loadings

OM_Tables.loadings;

% ans =
%
%             Image    CustExpect    PercQuality    PercValue    CustSat    Loyalty    Compliant
%             _____    __________    ___________    _________    _______    _______    _________
%
%     ima1    0.745        0             0              0            0      0              0
%     ima2    0.599        0             0              0            0      0              0
%     ima3    0.576        0             0              0            0      0              0
%     ima4    0.769        0             0              0            0      0              0
%     ima5    0.744        0             0              0            0      0              0
%     exp1        0    0.771             0              0            0      0              0
%     exp2        0    0.691             0              0            0      0              0
%     exp3        0    0.608             0              0            0      0              0
%     qua1        0        0         0.803              0            0      0              0
%     qua2        0        0         0.638              0            0      0              0
%     qua3        0        0         0.784              0            0      0              0
%     qua4        0        0         0.769              0            0      0              0
%     qua5        0        0         0.755              0            0      0              0
%     qua6        0        0         0.775              0            0      0              0
%     qua7        0        0          0.78              0            0      0              0
%     val1        0        0             0          0.902            0      0              0
%     val2        0        0             0           0.94            0      0              0
%     sat1        0        0             0              0        0.792      0              0
%     sat2        0        0             0              0        0.847      0              0
%     sat3        0        0             0              0        0.857      0              0
%     comp        0        0             0              0            0      1              0
%     loy1        0        0             0              0            0      0           0.82
%     loy2        0        0             0              0            0      0          0.202
%     loy3        0        0             0              0            0      0          0.915

Reliability evaluation of measurement model

Indices: Cronbach's Alpha, Dillon-Goldstein's rho (Rho_d) and Dijkstra-Henseler's rho (Rho_a)

OM_Tables.consistency;

%ans =
%
%                    Cronbach_Alpha    Rho_d     Rho_a
%                    ______________    ______    ______
%
%     Image          0.7228            0.8189    0.7403
%     CustExpect     0.4519            0.7332     0.462
%     PercQuality     0.877            0.9047    0.8842
%     PercValue      0.8236             0.918     0.855
%     CustSat        0.7792            0.8713    0.7891
%     Compliant           1                 1         1
%     Loyalty        0.4724            0.7217    0.7457

Variance Inflaction Factor (VIF)

OM_Tables.vif;
% ans =
%
%             Image    CustExpect    PercQuality    PercValue    CustSat    Compliant    Loyalty
%             _____    __________    ___________    _________    _______    _________    _______
%
%     ima1    1.468        0             0              0            0      0                0
%     ima2    1.225        0             0              0            0      0                0
%     ima3    1.259        0             0              0            0      0                0
%     ima4     1.51        0             0              0            0      0                0
%     ima5    1.403        0             0              0            0      0                0
%     exp1        0    1.161             0              0            0      0                0
%     exp2        0    1.121             0              0            0      0                0
%     exp3        0     1.05             0              0            0      0                0
%     qua1        0        0         2.027              0            0      0                0
%     qua2        0        0         1.491              0            0      0                0
%     qua3        0        0         2.105              0            0      0                0
%     qua4        0        0         2.013              0            0      0                0
%     qua5        0        0         1.823              0            0      0                0
%     qua6        0        0         2.003              0            0      0                0
%     qua7        0        0         2.006              0            0      0                0
%     val1        0        0             0          1.962            0      0                0
%     val2        0        0             0          1.962            0      0                0
%     sat1        0        0             0              0        1.505      0                0
%     sat2        0        0             0              0        1.762      0                0
%     sat3        0        0             0              0        1.644      0                0
%     comp        0        0             0              0            0      1                0
%     loy1        0        0             0              0            0      0            1.415
%     loy2        0        0             0              0            0      0             1.01
%     loy3        0        0             0              0            0      0            1.427

Communality

OM_Tables.communality;

% ans =
%
%             Image    CustExpect    PercQuality    PercValue    CustSat    Loyalty    Compliant
%             _____    __________    ___________    _________    _______    _______    _________
%
%     ima1    0.555        0             0              0            0      0              0
%     ima2    0.359        0             0              0            0      0              0
%     ima3    0.332        0             0              0            0      0              0
%     ima4    0.591        0             0              0            0      0              0
%     ima5    0.554        0             0              0            0      0              0
%     exp1        0    0.594             0              0            0      0              0
%     exp2        0    0.478             0              0            0      0              0
%     exp3        0    0.369             0              0            0      0              0
%     qua1        0        0         0.645              0            0      0              0
%     qua2        0        0         0.407              0            0      0              0
%     qua3        0        0         0.614              0            0      0              0
%     qua4        0        0         0.592              0            0      0              0
%     qua5        0        0          0.57              0            0      0              0
%     qua6        0        0           0.6              0            0      0              0
%     qua7        0        0         0.608              0            0      0              0
%     val1        0        0             0          0.814            0      0              0
%     val2        0        0             0          0.883            0      0              0
%     sat1        0        0             0              0        0.628      0              0
%     sat2        0        0             0              0        0.717      0              0
%     sat3        0        0             0              0        0.734      0              0
%     comp        0        0             0              0            0      1              0
%     loy1        0        0             0              0            0      0          0.673
%     loy2        0        0             0              0            0      0          0.041
%     loy3        0        0             0              0            0      0          0.838

Discriminant Validity of Measurement Model

Heterotrait-Monotrait ratio of correlations (HTMT)

OM_Tables.HTMT;

% ans =
%
%                    Image    CustExpect    PercQuality    PercValue    CustSat    Compliant    Loyalty
%                    _____    __________    ___________    _________    _______    _________    _______
%
%     Image              0        0             0              0            0          0        0
%     CustExpect     0.888        0             0              0            0          0        0
%     PercQuality    0.929    0.878             0              0            0          0        0
%     PercValue      0.652    0.589         0.673              0            0          0        0
%     CustSat         0.91    0.865         0.954          0.741            0          0        0
%     Compliant      0.545    0.383         0.564          0.387        0.588          0        0
%     Loyalty        0.867     0.77         0.723          0.797        0.957      0.561        0

Average Variance Explained (AVE)

OM_Tables.AVE;

% ans =
%
%                     AVE
%                    _____
%
%     Image          0.478
%     CustExpect      0.48
%     PercQuality    0.577
%     PercValue      0.848
%     CustSat        0.693
%     Loyalty            1
%     Compliant      0.517

Cross-loadings

OM_Tables.crossload;

% ans =
%
%             Image    CustExpect    PercQuality    PercValue    CustSat    Loyalty    Compliant
%             _____    __________    ___________    _________    _______    _______    _________
%
%     ima1    0.745     0.35         0.571          0.397        0.549      0.423      0.355
%     ima2    0.599     0.38         0.497          0.275        0.417      0.188      0.304
%     ima3    0.576    0.285         0.367          0.339        0.332      0.207      0.308
%     ima4    0.769     0.37         0.573          0.476        0.548       0.44      0.459
%     ima5    0.744     0.36         0.552          0.271        0.513      0.337      0.494
%     exp1    0.352    0.771         0.436          0.294        0.371      0.183      0.271
%     exp2    0.408    0.691         0.348           0.18        0.364      0.225       0.32
%     exp3    0.287    0.608         0.369          0.274        0.318      0.126      0.195
%     qua1    0.634    0.512         0.803           0.47        0.679       0.38      0.477
%     qua2     0.43    0.319         0.638          0.308        0.489        0.3      0.345
%     qua3    0.628    0.434         0.784          0.474        0.646      0.472      0.472
%     qua4    0.496    0.391         0.769          0.395          0.6      0.379      0.368
%     qua5    0.608    0.419         0.755          0.465        0.523      0.389      0.377
%     qua6    0.568    0.445         0.775          0.411        0.548      0.418      0.343
%     qua7    0.586    0.416          0.78          0.554          0.7      0.465      0.451
%     val1    0.395    0.311         0.474          0.902        0.488      0.287      0.429
%     val2     0.53    0.351         0.595           0.94         0.62       0.36      0.536
%     sat1    0.577    0.492         0.642          0.411        0.792      0.334      0.504
%     sat2    0.523    0.398          0.67          0.492        0.847      0.416      0.497
%     sat3    0.625    0.391         0.674          0.599        0.857      0.547      0.626
%     comp    0.475    0.258         0.532          0.355        0.528          1      0.416
%     loy1    0.434    0.295         0.394          0.413        0.456      0.237       0.82
%     loy2      0.1    0.093         0.063          0.138        0.108      0.122      0.202
%     loy3    0.539    0.357         0.534          0.494        0.664      0.448      0.915

Fornell-Larckel criterion

F-L criterion is satisfied for the j-th LV if its AVE is greater than the max squared correlation among LVj and any other LV

OM_Tables.discriminant;

% ans =
%
%                    Image    CustExpect    PercQuality    PercValue    CustSat    Compliant    Loyalty     AVE      FL_criterion
%                    _____    __________    ___________    _________    _______    _________    _______    _____    _______________
%
%     Image          0        0.255         0.561          0.259         0.48      0.226        0.318      0.478    'Not Satisfied'
%     CustExpect     0            0          0.31           0.13        0.258      0.066        0.144       0.48    'Satisfied'
%     PercQuality    0            0             0          0.344        0.632      0.283        0.289      0.577    'Not Satisfied'
%     PercValue      0            0             0              0         0.37      0.126         0.28      0.848    'Satisfied'
%     CustSat        0            0             0              0            0      0.279        0.431      0.693    'Satisfied'
%     Compliant      0            0             0              0            0          0        0.173          1    'Satisfied'
%     Loyalty        0            0             0              0            0          0            0      0.517    'Satisfied'

Results of Inner Model

Output view for Inner Model

IM_Tables;

% ans =
%
%                  DB: [7x7 table]
%                   B: [7x7 table]
%                  LV: [250x7 table]
%                 res: [250x7 table]
%                  R2: [6x1 table]
%        totaleffects: [7x7 table]
%     indirecteffects: [7x7 table]
%       LVcommunality: [7x1 table]
%                 gof: [1x1 table]
%     effect_overview: [21x3 table]

Path coefficients

IM_Tables.B;

% ans =
%
%                    Image    CustExpect    PercQuality    PercValue    CustSat    Loyalty    Compliant
%                    _____    __________    ___________    _________    _______    _______    _________
%
%     Image          0        0.505             0              0        0.179          0      0.196
%     CustExpect     0            0         0.557           0.05        0.063          0          0
%     PercQuality    0            0             0          0.558        0.512          0          0
%     PercValue      0            0             0              0        0.195          0          0
%     CustSat        0            0             0              0            0      0.528      0.485
%     Loyalty        0            0             0              0            0          0      0.067
%     Compliant      0            0             0              0            0          0          0

R2 of structural model

IM_Tables.R2;

% ans =
%
%                     R2
%                    _____
%
%     CustExpect     0.255
%     PercQuality     0.31
%     PercValue      0.345
%     CustSat        0.681
%     Loyalty        0.279
%     Compliant      0.457

Goodness of Fit

IM_Tables.gof;

% ans =
%
%                      Goodness_of_Fit
%                      _______________
%
%     Overall Model    0.479

Average communality

IM_Tables.LVcommunality;

% ans =
%
%                    Average_Communality
%                    ___________________
%
%     Image          0.478
%     CustExpect      0.48
%     PercQuality    0.577
%     PercValue      0.848
%     CustSat        0.693
%     Loyalty            1
%     Compliant      0.517

Total effects

IM_Tables.totaleffects;

% ans =
%
%                    Image    CustExpect    PercQuality    PercValue    CustSat    Loyalty    Compliant
%                    _____    __________    ___________    _________    _______    _______    _________
%
%     Image          0        0.505         0.281          0.182         0.39      0.206      0.398
%     CustExpect     0            0         0.557          0.361        0.418      0.221      0.218
%     PercQuality    0            0             0          0.558        0.621      0.328      0.323
%     PercValue      0            0             0              0        0.195      0.103      0.101
%     CustSat        0            0             0              0            0      0.528      0.521
%     Loyalty        0            0             0              0            0          0      0.067
%     Compliant      0            0             0              0            0          0          0
%

Total effects

IM_Tables.indirecteffects;

% ans =
%
%                    Image    CustExpect    PercQuality    PercValue    CustSat    Compliant    Loyalty
%                    _____    __________    ___________    _________    _______    _________    _______
%
%     Image          0        0             0.281          0.182        0.211      0.206        0.202
%     CustExpect     0        0                 0          0.311        0.355      0.221        0.218
%     PercQuality    0        0                 0              0        0.109      0.328        0.323
%     PercValue      0        0                 0              0            0      0.103        0.101
%     CustSat        0        0                 0              0            0          0        0.035
%     Compliant      0        0                 0              0            0          0            0
%     Loyalty        0        0                 0              0            0          0            0

Effect Overview

IM_Tables.effect_overview;

% ans =
%
%                                Path_Coefficient    Indirect_Effect    Total_Effect
%                                ________________    _______________    ____________
%
%     Image->CustExpect          0.5049                   0             0.5049
%     Image->PercQuality              0              0.2811             0.2811
%     Image->PercValue                0              0.1822             0.1822
%     Image->CustSat             0.1787               0.211             0.3897
%     Image->Compliant                0              0.2058             0.2058
%     Image->Loyalty             0.1957              0.2019             0.3976
%     CustExpect->PercQuality    0.5567                   0             0.5567
%     CustExpect->PercValue        0.05              0.3108             0.3608
%     CustExpect->CustSat        0.0625              0.3553             0.4179
%     CustExpect->Compliant           0              0.2207             0.2207
%     CustExpect->Loyalty             0              0.2176             0.2176
%     PercQuality->PercValue     0.5583                   0             0.5583
%     PercQuality->CustSat        0.512              0.1087             0.6208
%     PercQuality->Compliant          0              0.3278             0.3278
%     PercQuality->Loyalty            0              0.3233             0.3233
%     PercValue->CustSat         0.1948                   0             0.1948
%     PercValue->Compliant            0              0.1029             0.1029
%     PercValue->Loyalty              0              0.1014             0.1014
%     CustSat->Compliant         0.5281                   0             0.5281
%     CustSat->Loyalty           0.4855              0.0353             0.5208
%     Compliant->Loyalty         0.0669                   0             0.0669

Plotting Results

Outer model

Blocks of Measurement model

the fuction measurement_graph plots the measurement blocks of the outer model.

measure is a string indicating the values to plot (loadings or weights)

measure='loadings';
%
% r is indicates the size of MV points (default r=2)
r=2;
%
color='blue';
%
% measurement_graph(results,measure, r,color,LV_labels,MV_labels)
%

Outer model assessment plot

Funtion plsplots.m generates some plots useful for outer model assessment

plsplots( results,LV_labels,MV_labels,graph_type)

graph_type is a string indicating the type of plot:

  • graph_type='weights' generates a plot of weights evolution along the pls algorithm iterations
  • graph_type='scatter' generates a scatterplot matrix among MVs for each measurement block.
  • graph_type='crossloadings' generates bar charts of crossloadings for each MV.
graph_type='weights';
%

graph_type='scatter';

graph_type='crossloadings';
%

Generating of a Report of the Analysis

the function plspm_publish.m geenrates a report of the analysis in different formats for sharing and publishing results. The function aggregates tables generated by summary_plspm function in a single html,doc, ppt, xls document.

plspm_publish(format)

format options 'format' — Published output file format 'html' (default) | 'doc' | 'latex' | 'ppt' | 'xml' | 'pdf'

the report is stored in the subfolder 'report' of your current working folder

Bootstrapping plspm

Bootstrap is a nonparametric procedure that can be applied to test whether coefficients such as outer weights, outer loadings and path coefficients are significant.

function boot_conf.m estimates non parametric confidence intervals for plspm parameters through bootstrap procedure.

%[ CI ] = boot_confint( results,nboot,ci_type,conf_level,bias);
%
% nboot indicates the number of bootstrap replications (default=500).
% The minimum value for nboot is 100.
nboot=500;
%
% ci_type is a string defining the confidence interval procedure:
%
%    The function allows to calculate three different types of confidence intervals:
% *   ci_type='basic'
%        The basic bootstrap is the simplest scheme to construct the confidence interval:
%         one simply takes the empirical quantiles from the bootstrap
%         distribution of the parameter (see Davison and Hinkley 1997)
% *  ci_type='percentile'
%        The percentile bootstrap proceeds in a similar way to the basic bootstrap,
%        using percentiles of the bootstrap distribution, but with a
%        different formula (see  Efron and Tibshirani 1993).
%        This method can be applied to any statistic. It will work well in cases where
%        the bootstrap distribution is symmetrical and centered on the
%        observed statistic.
% *  ci_type='studentized'
%        The studentized bootstrap, also called bootstrap-t, works similarly as the usual
%        confidence interval, but replaces the quantiles from the normal or student approximation
%        by the quantiles from the bootstrap distribution of the Student's
%        t-test (see Davison and Hinkley 1997). The studentized test enjoys
%        optimal properties as the statistic that is bootstrapped is pivotal
%        (i.e. it does not depend on nuisance parameters as the t-test follows
%        asymptotically a N(0,1) distribution), unlike the percentile bootstrap.
%
% Default value for ci_type is 'basic'.
ci_type='studentized';
%
% conf_level specifies the confidence level of confidence intervals.
% conf_level is a value in the interval [0,1]. Default value is 0.95
conf_level=0.95;
%
% bias is logical value true or false
% *       bias=true calculates bias-corrected confidence interval
% *       bias=false calculates non bias-corrected confidence interval
bias=1;
%
% Bootstrap Results
%
% [ CI_Tables ] = summary_bootstrap(CI,results,MV_labels,LV_labels,d )
%
% CI_Tables is a strucutred array formed by three matrices:
%        CI_Tables.W contains the confidence interval for outer weigths
%        CI_Tables.L contains the confidence interval for outer loadings
%        CI_Tables.B contains the confidence interval for inner path coefficients
%        the generic row of a CI matrix is composed by 7 elements:
%        |Sample estimation | Bootstrap estimation | Bias | t stat | Pvalue | CI lower bound | CI upper bound|

CI_Tables =

   W: [24x7 double]
   L: [24x7 double]
   B: [12x7 double]

CI_Tables.W;

ans =

           Sample_estim    Boot_estim     Bias     t_stat    Pvalue    CI_LB    CI_UB
           ____________    __________    ______    ______    ______    _____    _____
   ima1    0.301           0.299          0.002    11.309        0     0.256    0.359
   ima2     0.26           0.259          0.001     7.452        0     0.192    0.326
   ima3    0.218           0.219         -0.001     6.592        0     0.152    0.282
   ima4    0.329           0.329         -0.001    10.944        0     0.263    0.385
   ima5    0.325           0.326         -0.001     9.198        0     0.244    0.378
   exp1    0.521           0.515          0.006     9.575        0     0.428    0.644
   exp2    0.474           0.478         -0.004     6.405        0     0.321    0.601
   exp3    0.446            0.44          0.006     6.716        0     0.321    0.587
   qua1    0.213           0.213              0     14.02        0     0.178    0.239
   qua2    0.145           0.144              0    10.833        0      0.12    0.174
   qua3      0.2             0.2              0    16.195        0     0.174    0.223
   qua4    0.179           0.179              0    17.394        0     0.158    0.199
   qua5    0.179           0.178              0    14.135        0     0.156    0.203
   qua6    0.179           0.178          0.001    12.094        0     0.156    0.213
   qua7    0.215           0.216         -0.001    13.945        0     0.181    0.242
   val1    0.479           0.479              0     23.39        0     0.443    0.524
   val2    0.604           0.604              0    22.352        0     0.548    0.648
   sat1    0.365           0.365              0    20.108        0     0.331    0.401
   sat2    0.383           0.385         -0.002    22.954        0     0.345    0.411
   sat3    0.451           0.449          0.002    21.928        0     0.409    0.491
   comp        1               1              0       Inf        0         1        1
   loy1    0.461           0.459          0.001    16.632        0     0.411    0.525
   loy2    0.114            0.11          0.004     1.876    0.031     0.016    0.251
   loy3    0.654           0.652          0.002    16.325        0     0.574    0.725

CI_Tables.L;

ans =

           Sample_estim    Boot_estim     Bias     t_stat    Pvalue    CI_LB    CI_UB
           ____________    __________    ______    ______    ______    _____    _____
   ima1    0.745           0.738          0.007    17.421        0     0.691    0.856
   ima2    0.599           0.596          0.003    10.123        0     0.503    0.729
   ima3    0.576           0.574          0.002     9.056        0     0.465    0.707
   ima4    0.769           0.764          0.005    18.481        0     0.714    0.874
   ima5    0.744           0.747         -0.003    24.415        0     0.681    0.797
   exp1    0.771           0.765          0.005    14.782        0     0.704    0.896
   exp2    0.691           0.691              0     8.214        0     0.552    0.878
   exp3    0.608           0.601          0.006     7.987        0     0.481    0.794
   qua1    0.803           0.804         -0.001    33.237        0     0.755    0.851
   qua2    0.638           0.636          0.002    12.939        0     0.555    0.745
   qua3    0.784           0.784              0    26.584        0     0.734    0.854
   qua4    0.769           0.769          0.001    16.818        0     0.691    0.871
   qua5    0.755           0.754              0    19.185        0     0.689    0.852
   qua6    0.775           0.771          0.004    13.497        0     0.688    0.908
   qua7     0.78           0.781         -0.001    25.872        0     0.727    0.847
   val1    0.902           0.901          0.001    43.582        0     0.872     0.95
   val2     0.94            0.94              0       Inf        0     0.925    0.955
   sat1    0.792           0.791          0.001    24.704        0     0.739    0.867
   sat2    0.847           0.847              0    36.494        0     0.807    0.896
   sat3    0.857           0.856          0.001     45.08        0     0.825    0.898
   comp        1               1              0       Inf        0         1        1
   loy1     0.82           0.817          0.004    19.097        0      0.76    0.936
   loy2    0.202           0.196          0.006     1.918    0.028     0.029    0.442
   loy3    0.915           0.914          0.001    81.312        0     0.899    0.943

CI_Tables.B;

ans =

                              Sample_estim    Boot_estim     Bias     t_stat    Pvalue    CI_LB     CI_UB
                              ____________    __________    ______    ______    ______    ______    _____
   Image->CustExpect          0.505           0.516         -0.011    8.759         0      0.375    0.599
   Image->CustSat             0.557           0.561         -0.004    10.22         0       0.44    0.653
   Image->Loyalty              0.05            0.06          -0.01    0.619     0.268     -0.137    0.186
   CustExpect->PercQuality    0.558           0.551          0.007    6.774         0      0.413    0.732
   CustExpect->PercValue      0.179           0.185         -0.006    3.386         0      0.056    0.267
   CustExpect->CustSat        0.063           0.064         -0.002    1.274     0.102      -0.04    0.157
   PercQuality->PercValue     0.512           0.503          0.009    8.553         0        0.4    0.647
   PercQuality->CustSat       0.195           0.199         -0.004    3.315     0.001      0.064    0.303
   PercValue->CustSat         0.528           0.525          0.003    9.795         0       0.43    0.659
   CustSat->Compliant         0.196           0.206          -0.01     2.47     0.007      0.027    0.334
   CustSat->Loyalty           0.485            0.48          0.006    5.759         0      0.344    0.653
   Compliant->Loyalty         0.067           0.067              0    1.115     0.133     -0.039    0.186