Analyse PLS Expert – Synthèse

Comprendre la Modélisation PLS Expert

1. C’est quoi le “PLS” ?

Imaginez que vous vouliez mesurer la “Confiance” d’un client. Vous ne pouvez pas la mesurer directement avec une règle. Par contre, vous pouvez poser 4 ou 5 questions (items) sur une échelle de 1 à 7.

Le modèle PLS (Partial Least Squares) est une technique statistique qui permet de transformer ces réponses en “scores” (variables latentes) pour tester des modèles complexes (beaucoup de flèches entre les concepts).

A. Fiabilité et Validité (Le modèle de mesure)

On vérifie si vos questions mesurent bien ce qu’elles sont censées mesurer :

  • Alpha de Cronbach (> 0.7) : Est-ce que les questions d’un même bloc sont cohérentes entre elles ?
  • AVE (> 0.5) : Est-ce que le concept “capte” bien la majorité de l’information contenue dans vos questions ?

B. Analyse de la Colinéarité (VIF)

Le VIF (Variance Inflation Factor) sert à vérifier que vos variables ne font pas “double emploi”. Si deux variables sont trop corrélées, les résultats deviennent instables.

Règle : Le VIF doit idéalement être inférieur à 5.

C. Validité Discriminante (Matrice HTMT)

La Matrice HTMT est le test le plus sévère. Elle prouve que deux concepts sont bien distincts dans l’esprit du répondant.

Règle : Le score HTMT entre deux variables doit être inférieur à 0.85 ou 0.90.

2. Avant de lancer le code : Étape CRUCIALE

Le script Python a besoin de lire vos données. Vous devez impérativement modifier le nom du fichier à la ligne 10 du code selon votre groupe :

Votre Groupe Nom du fichier à inscrire dans le code
L3 MRC et IHR BASE-MRC-IHR.xlsx
L3 MHR Hébergement BASE-Hbgt.xlsx
L3 MHR Restauration BASE-MHR-Rest.xlsx

⚠️ Si le nom ne correspond pas exactement, le programme affichera une erreur “File Not Found”.

3. Le Code Python (Version Expert)

Ce code calcule automatiquement les Coefficients, le Bootstrap, le VIF, l’AVE et la matrice HTMT. Copiez ce script dans Google Colab :

import pandas as pd
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import KFold, cross_val_predict
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor
from tqdm import tqdm

# ==========================================
# === 1) CONFIGURATION ET LECTURE DU FICHIER
# ==========================================
FILE_PATH = "/content/BASE-MRC-IHR.xlsx" 
SHEET_NAME = "BASE" 

df = pd.read_excel(FILE_PATH, sheet_name=SHEET_NAME)
print(f"Fichier chargé : {FILE_PATH} | Taille : {df.shape}")

# Blocs de mesure (Base / Premier ordre)
blocks = {
    "Anthropomorphisme": ["ANT1","ANT2","ANT3","ANT4","ANT5"],
    "Chaleur": ["CHAL1","CHAL2","CHAL3","CHAL4","CHAL5"],
    "Competence": ["COMP1","COMP2","COMP3","COMP4"],
    "PresenceSociale": ["PRES1","PRES2","PRES3","PRES4"],
    "Plaisir": ["PLAIS1","PLAIS2","PLAIS3","PLAIS4"],
    "Facilite": ["FACIL1","FACIL2","FACIL3","FACIL4"],
    "Utilite": ["UTIL1","UTIL2","UTIL3","UTIL4","UTIL5","UTIL6","UTIL7"],
    "ConfianceCog": ["CONFCO1","CONFCO2","CONFCO3","CONFCO4","CONFCO5"],
    "ConfianceAff": ["CONFAFF1","CONFAFF2","CONFAFF3","CONFAFF4","CONFAFF5","CONFAFF6"],
    "Attitude": ["ATT1","ATT2","ATT3","ATT4"],
    "Intention": ["INT1","INT2","INT3","INT4"],
    "RisquePsy": ["RPSY1","RPSY2","RPSY3","RPSY4"],
    "RisqueDehum": ["RDEHUM1","RDEHUM2","RDEHUM3","RDEHUM4","RDEHUM5"],
    "RisqueEmploi": ["RPEMP1","RPEMP2","RPEMP3","RPEMP4","RPEMP5"]
}

base_relations = [
    ("Anthropomorphisme", "Competence"), ("Anthropomorphisme", "Chaleur"), ("Anthropomorphisme", "PresenceSociale"),
    ("PresenceSociale", "Plaisir"), ("Facilite", "Utilite"),
    ("Competence", "ConfianceCog"), ("Competence", "ConfianceAff"), ("Chaleur", "ConfianceCog"), ("Chaleur", "ConfianceAff"),
    ("Plaisir", "Attitude"), ("Utilite", "Attitude"), ("Facilite", "Attitude"), 
    ("ConfianceCog", "Attitude"), ("ConfianceAff", "Attitude"), ("RisquePsy", "Attitude"),
    ("ConfianceCog", "Intention"), ("ConfianceAff", "Intention"), ("Attitude", "Intention"),
    ("RisquePsy", "Intention"), ("RisqueDehum", "Intention"), ("RisqueEmploi", "Intention")
]

equations = {
    "Competence":      ["Anthropomorphisme"],
    "Chaleur":         ["Anthropomorphisme"],
    "PresenceSociale": ["Anthropomorphisme"],
    "Plaisir":         ["PresenceSociale"],
    "Utilite":         ["Facilite"],
    "Confiance":       ["Competence", "Chaleur"],
    "Attitude":        ["Plaisir", "Utilite", "Facilite", "Confiance", "Conf_x_Risque", "RisquePsy"],
    "Intention":       [
        "Confiance", "Attitude", "RisquePsy", "RisqueDehum", "RisqueEmploi",
        "Conf_x_RisquePsy", "Conf_x_RisqueDehum", "Conf_x_RisqueEmploi",
        "Att_x_RisquePsy", "Att_x_RisqueDehum", "Att_x_RisqueEmploi"
    ]
}

all_items = [item for sublist in blocks.values() for item in sublist]
df_items = df[all_items].dropna().copy()

# ==========================================
# === 2) L'ALGORITHME ITERATIF PLS-SEM
# ==========================================
def run_pls_sem(data_raw, blks, relations, max_iter=100, tol=1e-5):
    X = (data_raw - data_raw.mean()) / data_raw.std()
    lv_names = list(blks.keys())
    C = pd.DataFrame(0.0, index=lv_names, columns=lv_names)
    for s, t in relations:
        if s in lv_names and t in lv_names:
            C.loc[s, t] = 1.0; C.loc[t, s] = 1.0
            
    Y = pd.DataFrame({lv: X[items[0]] for lv, items in blks.items()})
    
    for _ in range(max_iter):
        Y_old = Y.copy()
        E = Y.corr() * C
        Z = Y.dot(E)
        Z = (Z - Z.mean()) / Z.std()
        
        W = {}
        for lv, items in blks.items():
            w = X[items].apply(lambda col: col.cov(Z[lv]))
            w = w / np.linalg.norm(w) 
            W[lv] = w
            Y[lv] = X[items].dot(w)
            
        Y = (Y - Y.mean()) / Y.std()
        if np.abs(Y - Y_old).max().max() < tol: break
            
    Loadings = {lv: X[items].apply(lambda col: col.corr(Y[lv])) for lv, items in blks.items()}
    return Y, W, Loadings

Y_final, W_final, L_final = run_pls_sem(df_items, blocks, base_relations)

# ==========================================
# === 3) POST-TRAITEMENT : MODÉRATION
# ==========================================
def calculate_inner_variables(Y_df):
    Y_df = Y_df.copy()
    Y_df["Confiance"] = (Y_df["ConfianceCog"] + Y_df["ConfianceAff"]) / 2
    Y_df["Confiance"] = (Y_df["Confiance"] - Y_df["Confiance"].mean()) / Y_df["Confiance"].std()
    
    Y_df["Conf_x_RisquePsy"] = Y_df["Confiance"] * Y_df["RisquePsy"]
    Y_df["Conf_x_RisqueDehum"] = Y_df["Confiance"] * Y_df["RisqueDehum"]
    Y_df["Conf_x_RisqueEmploi"] = Y_df["Confiance"] * Y_df["RisqueEmploi"]
    Y_df["Att_x_RisquePsy"] = Y_df["Attitude"] * Y_df["RisquePsy"]
    Y_df["Att_x_RisqueDehum"] = Y_df["Attitude"] * Y_df["RisqueDehum"]
    Y_df["Att_x_RisqueEmploi"] = Y_df["Attitude"] * Y_df["RisqueEmploi"]
    Y_df["Conf_x_Risque"] = Y_df["Confiance"] * Y_df["RisquePsy"]
    
    for col in ["Conf_x_RisquePsy", "Conf_x_RisqueDehum", "Conf_x_RisqueEmploi",
                "Att_x_RisquePsy", "Att_x_RisqueDehum", "Att_x_RisqueEmploi", "Conf_x_Risque"]:
        Y_df[col] = (Y_df[col] - Y_df[col].mean()) / Y_df[col].std()
    return Y_df

Y_complet = calculate_inner_variables(Y_final)

# ==========================================
# === 4) CALCUL DES CRITÈRES DE QUALITÉ
# ==========================================
qualite_list = []
loadings_df_list = []

for lv, loadings in L_final.items():
    for item, l_val in loadings.items():
        loadings_df_list.append({"Construit": lv, "Item": item, "Loading_Wold": l_val})
        
    n = len(blocks[lv])
    corr_matrix = df_items[blocks[lv]].corr()
    avg_corr = corr_matrix.values[np.triu_indices(n, k=1)].mean() if n > 1 else 1.0
    alpha = (n * avg_corr) / (1 + (n - 1) * avg_corr) if n > 1 else 1.0
    
    ave = np.mean(loadings**2)
    sum_l = np.sum(loadings)
    sum_e = np.sum(1 - loadings**2)
    cr = (sum_l**2) / (sum_l**2 + sum_e)
    
    qualite_list.append({"Variable": lv, "Cronbach_Alpha": alpha, "Composite_Reliability": cr, "AVE": ave})

df_loadings = pd.DataFrame(loadings_df_list)
df_qualite = pd.DataFrame(qualite_list)

X_std = (df_items - df_items.mean()) / df_items.std()
latent_names = list(blocks.keys())
htmt_df = pd.DataFrame(index=latent_names, columns=latent_names, dtype=float)

for i, b1 in enumerate(latent_names):
    for j, b2 in enumerate(latent_names):
        if i == j: htmt_df.iloc[i,j] = 1.0
        elif i < j:
            items1, items2 = blocks[b1], blocks[b2]
            hetero_mean = X_std[items1 + items2].corr().loc[items1, items2].values.mean()
            mono1 = X_std[items1].corr().values[np.triu_indices(len(items1), k=1)].mean() if len(items1)>1 else 1.0
            mono2 = X_std[items2].corr().values[np.triu_indices(len(items2), k=1)].mean() if len(items2)>1 else 1.0
            htmt_val = abs(hetero_mean / np.sqrt(max(0.0001, abs(mono1 * mono2))))
            htmt_df.iloc[i,j] = htmt_val; htmt_df.iloc[j,i] = htmt_val

fl_matrix = Y_final.corr()
for b in latent_names:
    fl_matrix.loc[b, b] = np.sqrt(df_qualite.loc[df_qualite['Variable'] == b, 'AVE'].values[0])

# ==========================================
# === 5) MODELE STRUCTUREL (R², f², VIF)
# ==========================================
results_inner = {y: sm.OLS(Y_complet[y], sm.add_constant(Y_complet[xs])).fit() for y, xs in equations.items()}

structurel_data = []
for dep, preds in equations.items():
    X_mat = sm.add_constant(Y_complet[preds])
    R2_incl = results_inner[dep].rsquared
    
    for i, p in enumerate(preds, start=1):
        vif = variance_inflation_factor(X_mat.values, i)
        preds_excl = [x for x in preds if x != p]
        R2_excl = 0 if not preds_excl else sm.OLS(Y_complet[dep], sm.add_constant(Y_complet[preds_excl])).fit().rsquared
        f2 = (R2_incl - R2_excl) / (1 - R2_incl)
        
        structurel_data.append({
            "Variable_Dep": dep, "Predictor": p,
            "Coefficient": results_inner[dep].params[p],
            "f2": f2, "VIF": vif
        })
df_structurel = pd.DataFrame(structurel_data)

# ==========================================
# === 6) BOOTSTRAPPING (t-values)
# ==========================================
def run_bootstrap(data_raw, n_boot=500):
    rng = np.random.default_rng(123)
    boot_coefs = []
    for _ in tqdm(range(n_boot), desc="Bootstrapping PLS"):
        sample = data_raw.sample(len(data_raw), replace=True, random_state=rng.integers(0, 100000))
        Y_boot, _, _ = run_pls_sem(sample, blocks, base_relations, max_iter=30)
        Y_boot_comp = calculate_inner_variables(Y_boot)
        row = {}
        for dep, preds in equations.items():
            res = sm.OLS(Y_boot_comp[dep], sm.add_constant(Y_boot_comp[preds])).fit()
            for p in preds: row[(dep, p)] = res.params[p]
        boot_coefs.append(row)
    return pd.DataFrame(boot_coefs)

boot_df = run_bootstrap(df_items, n_boot=500)
boot_std = boot_df.std()
boot_ci = boot_df.quantile([0.025, 0.975]).T
boot_ci.columns = ["CI_lower", "CI_upper"]

df_structurel["t-value"] = df_structurel.apply(lambda r: abs(r["Coefficient"] / boot_std[(r["Variable_Dep"], r["Predictor"])]), axis=1)
df_structurel["p-value"] = [results_inner[r["Variable_Dep"]].pvalues[r["Predictor"]] for _, r in df_structurel.iterrows()]
df_structurel["Significatif_t"] = df_structurel["t-value"] > 1.96

# ==========================================
# === 7) FIT GLOBAL (SRMR) & MACHINE LEARNING (Q² / PLSpredict)
# ==========================================
# --- SRMR ---
R_obs = df_items.corr()
R_implied = pd.DataFrame(np.eye(len(all_items)), index=all_items, columns=all_items)
lv_corr = Y_complet[latent_names].corr()

item_lv_map = {item: lv for lv, items in blocks.items() for item in items}
item_loading_map = {item: L_final[lv][item] for lv, items in blocks.items() for item in items}

for i in range(len(all_items)):
    for j in range(i+1, len(all_items)):
        it1, it2 = all_items[i], all_items[j]
        lv1, lv2 = item_lv_map[it1], item_lv_map[it2]
        r_imp = item_loading_map[it1] * item_loading_map[it2] * lv_corr.loc[lv1, lv2]
        R_implied.loc[it1, it2] = r_imp; R_implied.loc[it2, it1] = r_imp

diff = R_obs.values - R_implied.values
mask = np.triu(np.ones(diff.shape), k=1).astype(bool)
srmr_value = np.sqrt(np.mean(diff[mask]**2))

df_srmr = pd.DataFrame([{
    "Metric": "SRMR Global", "Valeur": srmr_value, 
    "Seuil": "< 0.08 (Idéal) / < 0.10 (Acceptable)", 
    "Statut": "Excellent" if srmr_value < 0.08 else ("Acceptable" if srmr_value < 0.10 else "À revoir")
}])

# --- Q² (10-Fold CV sur modèle structurel) ---
lr = LinearRegression()
q2_list = []
for dep, preds in equations.items():
    y_pred_cv = cross_val_predict(lr, Y_complet[preds], Y_complet[dep], cv=10)
    q2_list.append({"Variable Endogène": dep, "R2_In_Sample": results_inner[dep].rsquared, "Q2_Predictive_Relevance": r2_score(Y_complet[dep], y_pred_cv)})
df_q2 = pd.DataFrame(q2_list)

# --- PLSpredict (Items endogènes - RMSE LM vs Naive) ---
plspredict_list = []
endog_targets = ["Attitude", "Intention"]

for target_lv in endog_targets:
    for item in blocks[target_lv]:
        y_item = df_items[item]
        
        # Identification des prédicteurs purs (hors interactions)
        exog_lvs = [x.replace("Conf_x_", "").replace("Att_x_", "") for x in equations[target_lv]]
        exog_items = list(set([it for ex in exog_lvs if ex in blocks for it in blocks[ex]]))
        X_item_lm = df_items[exog_items] if exog_items else df_items.drop(columns=[item])
        
        # Validation Croisée
        y_pred_lm = cross_val_predict(lr, X_item_lm, y_item, cv=10)
        y_pred_naive = np.full_like(y_item, y_item.mean())
        
        rmse_lm = np.sqrt(mean_squared_error(y_item, y_pred_lm))
        rmse_naive = np.sqrt(mean_squared_error(y_item, y_pred_naive))
        q2_predict_item = 1 - (mean_squared_error(y_item, y_pred_lm) / mean_squared_error(y_item, y_pred_naive))
        
        plspredict_list.append({
            "Cible": target_lv, "Indicateur": item,
            "RMSE_Machine_Learning (LM)": rmse_lm, "RMSE_Moyenne_Naive": rmse_naive,
            "Q2_predict": q2_predict_item,
            "Pouvoir_Predictif": "Fort" if rmse_lm < rmse_naive else "Faible"
        })
df_plspredict = pd.DataFrame(plspredict_list)

# ==========================================
# === 8) EXPORT EXCEL EXHAUSTIF
# ==========================================
filename = "Resultats_Expert_Machine_Learning_PLS.xlsx"
with pd.ExcelWriter(filename) as writer:
    df_structurel.to_excel(writer, sheet_name='Paths_tvalue_f2_VIF', index=False)
    df_srmr.to_excel(writer, sheet_name='Fit_SRMR', index=False)
    df_q2.to_excel(writer, sheet_name='Q2_Relevance_Structurelle', index=False)
    df_plspredict.to_excel(writer, sheet_name='PLSpredict_Items', index=False)
    df_loadings.to_excel(writer, sheet_name='Loadings_Items', index=False)
    df_qualite.to_excel(writer, sheet_name='Fiabilite_Mesure', index=False)
    fl_matrix.to_excel(writer, sheet_name='Fornell_Larcker')
    htmt_df.to_excel(writer, sheet_name='Validite_HTMT')

print(f"Analyse terminée avec succès. Fichier généré : {filename}")

4. Comment lire votre fichier Excel ?

Le fichier Excel "Resultats_Analyse_Expert_PLS.xlsx" contient plusieurs onglets :

  • Paths_Coefficients : Pour valider vos hypothèses (regardez "Significatif"). Si c'est True, l'impact existe réellement.
  • Fiabilite_Mesure : Vérifiez que l'AVE est > 0.5 et l'Alpha de Cronbach > 0.7.
  • Colinearite_VIF : Assurez-vous que les VIF sont inférieurs à 5.
  • Validite_HTMT : Les scores doivent être < 0.85 ou 0.90 pour prouver que vos concepts sont distincts.
  • Qualite_R2 : Vous dit si votre modèle explique bien le comportement. Plus il est proche de 1, mieux c'est !

L3 MRC et IHR

Rapport d'analyse structurelle (n = 220)

Lecture experte du modèle de mesure et du modèle structurel dans une logique PLS-SEM appliquée au marketing.

1. Qualité du modèle de mesure : fiabilité et validité convergente

Avant d'interpréter les relations entre variables, il faut vérifier que chaque construit est correctement mesuré. Ici, les résultats sont globalement très solides : les alphas de Cronbach, les fiabilités composites et les AVE dépassent les seuils habituellement recommandés en PLS-SEM.

Variable latente Alpha de Cronbach
(> 0.70)
AVE
(> 0.50)
Fiabilité composite
(> 0.70)
Anthropomorphisme0.8280.5940.879
Chaleur0.8690.6570.905
Compétence0.8630.7090.907
Présence sociale0.8580.7010.904
Plaisir0.8960.7620.928
Facilité0.8880.7490.923
Utilité0.8830.5930.910
Confiance cognitive0.8620.6440.900
Confiance affective0.8080.5210.865
Attitude0.9240.8150.946
Intention0.9160.7990.941
Risque psychologique0.8310.6690.889
Risque de déshumanisation0.9170.7520.938
Risque pour l'emploi0.8400.6110.887
Interprétation : les échelles sont cohérentes, fiables et captent bien les concepts qu'elles sont censées mesurer. L'AVE supérieure à 0.50 signifie qu'un construit explique plus de 50 % de la variance de ses indicateurs.

2. Validité discriminante

La validité discriminante permet de vérifier que les construits sont bien distincts les uns des autres. Les résultats de type HTMT ne mettent pas en évidence de dépassement critique.

Conclusion : les concepts du modèle — anthropomorphisme, chaleur, compétence, présence sociale, confiance, attitude, intention et perceptions de risque — apparaissent suffisamment différenciés sur le plan statistique.

3. Analyse des chemins structurels (path coefficients)

Les coefficients ci-dessous permettent d'identifier les leviers et les freins à l'acceptation des robots. La lecture doit se faire à deux niveaux : la significativité statistique et le sens théorique des relations.

Relation Effet (β) p-value Statut
Formation des perceptions initiales
Anthropomorphisme ➔ Présence sociale0.8970.000Validée (effet majeur)
Anthropomorphisme ➔ Chaleur0.7680.000Validée
Anthropomorphisme ➔ CompétenceSignificatif< 0.05Validée
Présence sociale ➔ Plaisir0.7390.000Validée
Facilité ➔ UtilitéSignificatif< 0.05Validée
Construction de la confiance
Chaleur ➔ ConfianceSignificatif< 0.05Validée
Compétence ➔ ConfianceSignificatif< 0.05Validée
Déterminants de l'attitude
Plaisir ➔ Attitude0.4940.000Validée
Utilité ➔ Attitude0.4430.000Validée
Facilité ➔ Attitude-0.0050.929Non significatif
Confiance ➔ AttitudeNon significatif> 0.05Non significatif
Risque psychologique ➔ AttitudeNon significatif> 0.05Non significatif
Déterminants de l'intention
Attitude ➔ Intention0.7850.000Moteur n°1
Confiance ➔ Intention0.1400.008Moteur secondaire
Risque de déshumanisation ➔ Intention-0.1530.005Frein validé
Risque pour l'emploi ➔ Intention0.1090.050Effet inattendu
Risque psychologique ➔ IntentionNon significatif> 0.05Non significatif
Effets modérateurs
Interactions attitude/confiance × risquesNon significatifs> 0.05À interpréter avec prudence
Lecture théorique : l'acceptation repose surtout sur une chaîne cohérente : anthropomorphisme → présence sociale / chaleur / compétence → plaisir / confiance → attitude → intention. L'attitude est ici le déterminant central de l'intention.

4. Puissance explicative du modèle

Les coefficients de détermination () montrent le niveau de variance expliqué par le modèle pour chaque variable endogène.

Variable expliquée Interprétation
Compétence0.353Pouvoir explicatif modéré
Chaleur0.532Pouvoir explicatif élevé
Présence sociale0.679Pouvoir explicatif élevé
Plaisir0.503Pouvoir explicatif élevé
Utilité0.432Pouvoir explicatif modéré à élevé
Confiance0.770Pouvoir explicatif très élevé
Attitude0.794Pouvoir explicatif très élevé
Intention0.854Pouvoir explicatif exceptionnel

Le modèle explique donc 85,4 % de l'intention d'usage, ce qui est un niveau extrêmement élevé en sciences de gestion et en marketing.

5. Colinéarité : robustesse correcte sur les effets principaux, problème sur les interactions

La colinéarité est évaluée avec les VIF. Pour les prédicteurs principaux de l'attitude et de l'intention, les valeurs restent globalement acceptables.

Bloc Exemples de VIF Lecture
Déterminants de l'attitude Plaisir = 3.21 ; Utilité = 2.59 ; Facilité = 3.11 ; Confiance = 3.62 Acceptable
Déterminants de l'intention Confiance = 2.42 ; Attitude = 2.62 ; Risque déshumanisation = 3.88 ; Risque emploi = 3.36 Acceptable
Variables de modération (interactions) Confiance × Risque de déshumanisation : VIF = 15.39
Confiance × Risque emploi : VIF = 11.81
Attitude × Risque de déshumanisation : VIF = 10.99
Attitude × Risque emploi : VIF = 8.03
VIF trop élevés

Conclusion : il n'y a pas de problème majeur pour les effets directs, mais les effets modérateurs sont fragilisés par une colinéarité excessive. Autrement dit, le fait de ne pas trouver de modération significative ne doit pas être interprété trop vite comme une absence réelle d'effet.

6. Interprétation scientifique globale

  • L'anthropomorphisme joue un rôle amont central : plus le robot paraît humain, plus il est perçu comme chaleureux, compétent et socialement présent.
  • La présence sociale nourrit le plaisir, ce qui confirme que l'expérience vécue avec le robot compte autant que sa performance fonctionnelle.
  • L'attitude est le moteur principal de l'intention : c'est la variable la plus puissante du modèle.
  • La confiance agit directement sur l'intention, même lorsqu'elle n'alimente pas directement l'attitude.
  • Le risque de déshumanisation freine réellement l'acceptation : c'est le principal frein identifié.
  • La facilité d'usage ne suffit pas : les individus acceptent surtout le robot quand il est utile et plaisant, pas simplement quand il est simple à utiliser.

Analyse stratégique et implications managériales

Sur la base des résultats, plusieurs enseignements se dégagent pour une organisation en hôtellerie-restauration souhaitant déployer des robots de service.

  • Travailler l'expérience, pas seulement la technologie : la facilité d'usage n'explique pas l'attitude. Il faut concevoir des robots perçus comme utiles et agréables à utiliser.
  • Humaniser sans caricaturer : l'anthropomorphisme agit fortement sur la présence sociale, la chaleur et la compétence perçue. Le design du robot doit donc soutenir la relation, sans tomber dans l'effet gadget.
  • Réduire la peur de déshumanisation : la communication ne doit pas présenter le robot comme un substitut au personnel humain, mais comme un complément de service.
  • Ne pas surestimer les tests de modération : les interactions sont non significatives, mais leur interprétation est fragilisée par des VIF très élevés. Cette partie du modèle doit être considérée comme méthodologiquement faible.
  • Faire de l'attitude la cible centrale : puisque l'attitude est le moteur principal de l'intention, les leviers marketing doivent viser la perception globale de l'expérience robotisée.
  • Construire la confiance par la chaleur et la compétence : les utilisateurs adoptent plus facilement un robot qui paraît à la fois capable et relationnellement acceptable.
✅ Le modèle est globalement solide, très explicatif et théoriquement cohérent. Sa principale faiblesse concerne la partie modératrice, affectée par une forte colinéarité.

L3 MHR - Hébergement

Rapport d'analyse structurelle (n = 220)

Lecture experte du modèle de mesure et du modèle structurel dans une logique PLS-SEM appliquée au marketing de l'hébergement.

1. Qualité du modèle de mesure : fiabilité et validité convergente

Avant d'interpréter les relations entre variables, il faut vérifier que chaque construit est correctement mesuré. Ici, les résultats sont globalement très solides : les alphas de Cronbach, les fiabilités composites et les AVE dépassent les seuils habituellement recommandés en PLS-SEM.

Variable latente Alpha de Cronbach
(> 0.70)
AVE
(> 0.50)
Fiabilité composite
(> 0.70)
Anthropomorphisme0.8760.6710.910
Chaleur0.8860.6870.917
Compétence0.8900.7530.924
Présence sociale0.8550.6990.903
Plaisir0.8740.7280.914
Facilité0.8960.7620.927
Utilité0.8830.5920.910
Confiance cognitive0.8850.6860.916
Confiance affective0.8350.5590.882
Attitude0.9270.8210.948
Intention0.9090.7860.936
Risque psychologique0.8310.6690.889
Risque de déshumanisation0.9170.7520.938
Risque pour l'emploi0.8400.6110.887
Interprétation : les échelles sont cohérentes, fiables et captent bien les concepts qu'elles sont censées mesurer. Toutes les AVE sont supérieures à 0.50, ce qui confirme une bonne validité convergente.

2. Validité discriminante

La validité discriminante permet de vérifier que les construits sont bien distincts les uns des autres. Les résultats HTMT fournis ne font pas apparaître de dépassement critique dans le tableau de synthèse.

Conclusion : les principaux concepts du modèle — anthropomorphisme, chaleur, compétence, présence sociale, plaisir, utilité, confiance, attitude, intention et perceptions de risque — apparaissent suffisamment différenciés sur le plan statistique.

3. Analyse des chemins structurels (path coefficients)

Les coefficients ci-dessous permettent d'identifier les leviers et les freins à l'acceptation. La lecture doit se faire à deux niveaux : la significativité statistique et le sens théorique des relations.

Relation Effet (β) p-value Statut
Formation des perceptions initiales
Anthropomorphisme ➔ Compétence0.6400.000Validée
Anthropomorphisme ➔ Chaleur0.7960.000Validée
Anthropomorphisme ➔ Présence sociale0.8520.000Validée (effet majeur)
Présence sociale ➔ Plaisir0.7570.000Validée
Facilité ➔ Utilité0.6000.000Validée
Construction de la confiance
Compétence ➔ Confiance0.4480.000Validée
Chaleur ➔ Confiance0.3660.000Validée
Déterminants de l'attitude
Plaisir ➔ Attitude0.5250.000Moteur principal
Utilité ➔ Attitude0.4100.000Validée
Confiance ➔ Attitude0.1840.024Validée
Risque psychologique ➔ Attitude-0.0740.051Effet limite
Facilité ➔ Attitude-0.0430.387Non significatif
Confiance × Risque psychologique ➔ Attitude-0.1480.001Modération validée
Déterminants de l'intention
Attitude ➔ Intention0.5910.000Moteur n°1
Confiance ➔ Intention0.3150.000Moteur n°2
Risque psychologique ➔ Intention-0.1710.000Frein validé
Risque de déshumanisation ➔ Intention-0.0090.875Non significatif
Risque pour l'emploi ➔ Intention-0.0130.817Non significatif
Effets modérateurs sur l'intention
Confiance × Risque psychologique ➔ Intention-0.1510.194Non significatif
Confiance × Risque de déshumanisation ➔ Intention0.0430.750Non significatif
Confiance × Risque emploi ➔ Intention-0.0600.642Non significatif
Attitude × Risque psychologique ➔ Intention-0.0200.811Non significatif
Attitude × Risque de déshumanisation ➔ Intention-0.0280.755Non significatif
Attitude × Risque emploi ➔ Intention0.0250.768Non significatif
Lecture théorique : l'acceptation repose surtout sur une chaîne cohérente : anthropomorphisme → présence sociale / chaleur / compétence → plaisir / confiance → attitude → intention. Dans ce modèle, le risque psychologique apparaît comme le principal frein, alors que le risque de déshumanisation et le risque pour l'emploi ne jouent pas directement sur l'intention.

4. Puissance explicative du modèle

Les coefficients de détermination () montrent le niveau de variance expliqué par le modèle pour chaque variable endogène.

Variable expliquée Interprétation
Compétence0.364Pouvoir explicatif modéré
Chaleur0.617Pouvoir explicatif élevé
Présence sociale0.696Pouvoir explicatif élevé
Plaisir0.551Pouvoir explicatif élevé
Utilité0.466Pouvoir explicatif modéré à élevé
Confiance0.796Pouvoir explicatif très élevé
Attitude0.841Pouvoir explicatif très élevé
Intention0.835Pouvoir explicatif exceptionnel

Le modèle explique donc 83,5 % de l'intention, ce qui est un niveau très élevé en sciences de gestion et en marketing.

5. Colinéarité : situation correcte pour les effets directs, fragile pour plusieurs interactions

La colinéarité est évaluée avec les VIF. Pour la plupart des prédicteurs directs, les valeurs restent acceptables, même si la confiance devient un peu élevée dans l'équation de l'attitude.

Bloc Exemples de VIF Lecture
Déterminants de la confiance Compétence = 2.41 ; Chaleur = 2.41 Acceptable
Déterminants de l'attitude Plaisir = 3.15 ; Utilité = 3.59 ; Facilité = 2.83 ; Confiance = 5.32 ; Risque psychologique = 1.43 ; Confiance × Risque = 1.11 Acceptable mais vigilance sur Confiance
Déterminants de l'intention Confiance = 3.45 ; Attitude = 3.56 ; Risque psychologique = 2.11 ; Risque déshumanisation = 3.14 ; Risque emploi = 3.04 Acceptable
Variables de modération (interactions) Confiance × Risque psychologique : VIF = 7.65
Confiance × Risque de déshumanisation : VIF = 12.26
Confiance × Risque emploi : VIF = 9.67
Attitude × Risque psychologique : VIF = 6.01
Attitude × Risque de déshumanisation : VIF = 6.47
Attitude × Risque emploi : VIF = 5.85
VIF trop élevés

Conclusion : les effets directs sont globalement interprétables, mais les tests de modération sur l'intention sont fragilisés par une colinéarité forte à très forte. En revanche, la modération Confiance × Risque psychologique ➔ Attitude ne présente pas ce problème et peut être interprétée avec davantage de confiance.

6. Interprétation scientifique globale

  • L'anthropomorphisme joue un rôle amont central : plus le dispositif paraît humain, plus il est perçu comme chaleureux, compétent et socialement présent.
  • La présence sociale nourrit fortement le plaisir, ce qui montre que l'expérience vécue reste centrale dans l'évaluation du service.
  • La confiance a un double rôle : elle alimente l'attitude et agit aussi directement sur l'intention.
  • L'attitude est le principal moteur de l'intention, mais son effet est complété par celui de la confiance.
  • Le risque psychologique est le vrai frein du modèle : il réduit l'attitude à la marge et diminue clairement l'intention.
  • La déshumanisation et le risque emploi ne jouent pas ici : contrairement à d'autres modèles, ils n'ont pas d'effet direct significatif sur l'intention.
  • Une seule modération ressort clairement : plus le risque psychologique augmente, plus le lien entre confiance et attitude se dégrade.

Analyse stratégique et implications managériales

Sur la base des résultats, plusieurs enseignements se dégagent pour des acteurs de l'hébergement souhaitant intégrer des dispositifs technologiques ou robotisés dans l'expérience client.

  • Faire de l'attitude la cible centrale : c'est le moteur principal de l'intention. Tout ce qui améliore l'expérience globale du client renforce mécaniquement l'adoption.
  • Renforcer simultanément plaisir, utilité et confiance : ce sont les trois leviers les plus robustes dans la formation de l'attitude et de l'intention.
  • Réduire le risque psychologique : c'est le principal frein identifié. Il faut rassurer sur le confort d'usage, la perte de contrôle, le stress potentiel et l'aisance relationnelle.
  • Humaniser l'expérience sans en faire trop : l'anthropomorphisme améliore nettement les perceptions initiales. Il faut donc travailler la présence sociale, le ton, l'interface et les signaux relationnels.
  • Ne pas surinterpréter les modérations sur l'intention : elles sont non significatives et plusieurs souffrent de VIF trop élevés. Elles sont donc méthodologiquement fragiles.
  • Surveiller le couple confiance / risque psychologique : c'est le seul effet modérateur robuste. En clair, la confiance ne suffit plus autant lorsque l'utilisateur se sent psychologiquement menacé ou mal à l'aise.
✅ Le modèle est solide, très explicatif et théoriquement cohérent. Son apport principal est de montrer que, dans ce contexte, l'acceptation dépend surtout de l'attitude, de la confiance et de la réduction du risque psychologique.

L3 MHR - Restauration

Rapport d'analyse structurelle (n = 220)

Lecture experte du modèle de mesure et du modèle structurel dans une logique PLS-SEM appliquée au marketing de la restauration.

1. Qualité du modèle de mesure : fiabilité et validité convergente

Avant d'interpréter les relations entre variables, il faut vérifier que chaque construit est correctement mesuré. Ici, les résultats sont globalement très solides : les alphas de Cronbach, les fiabilités composites et les AVE dépassent les seuils habituellement recommandés en PLS-SEM.

Variable latente Alpha de Cronbach
(> 0.70)
AVE
(> 0.50)
Fiabilité composite
(> 0.70)
Anthropomorphisme0.8490.6240.892
Chaleur0.8940.7030.922
Compétence0.8850.7440.921
Présence sociale0.8280.6620.886
Plaisir0.8780.7330.916
Facilité0.8890.7510.923
Utilité0.8880.6020.913
Confiance cognitive0.8750.6680.909
Confiance affective0.8410.5630.884
Attitude0.8820.7400.919
Intention0.8790.7340.917
Risque psychologique0.7770.6020.858
Risque de déshumanisation0.9020.7180.927
Risque pour l'emploi0.8670.6530.904
Interprétation : les échelles sont cohérentes, fiables et captent bien les concepts qu'elles sont censées mesurer. Toutes les AVE sont supérieures à 0.50, ce qui confirme une bonne validité convergente.

2. Validité discriminante

La validité discriminante permet de vérifier que les construits sont bien distincts les uns des autres. Le tableau HTMT ne fait pas apparaître de dépassement critique dans la synthèse fournie.

Conclusion : les concepts du modèle — anthropomorphisme, chaleur, compétence, présence sociale, plaisir, utilité, confiance, attitude, intention et perceptions de risque — apparaissent suffisamment différenciés sur le plan statistique.

3. Analyse des chemins structurels (path coefficients)

Les coefficients ci-dessous permettent d'identifier les leviers et les freins à l'acceptation. La lecture doit se faire à deux niveaux : la significativité statistique et le sens théorique des relations.

Relation Effet (β) p-value Statut
Formation des perceptions initiales
Anthropomorphisme ➔ Compétence0.6400.000Validée
Anthropomorphisme ➔ Chaleur0.7960.000Validée
Anthropomorphisme ➔ Présence sociale0.8340.000Validée (effet majeur)
Présence sociale ➔ Plaisir0.7170.000Validée
Facilité ➔ Utilité0.6210.000Validée
Construction de la confiance
Compétence ➔ Confiance0.3800.000Validée
Chaleur ➔ Confiance0.4280.000Validée
Déterminants de l'attitude
Plaisir ➔ Attitude0.4260.000Validée
Utilité ➔ Attitude0.5020.000Moteur principal
Facilité ➔ Attitude-0.1680.023Effet négatif significatif
Confiance ➔ Attitude0.2300.056Non significatif
Risque psychologique ➔ Attitude-0.0470.382Non significatif
Confiance × Risque psychologique ➔ Attitude-0.0730.208Non significatif
Déterminants de l'intention
Attitude ➔ Intention0.6630.000Moteur n°1
Confiance ➔ Intention0.2840.001Moteur n°2
Risque psychologique ➔ Intention-0.0630.318Non significatif
Risque de déshumanisation ➔ Intention-0.0130.875Non significatif
Risque pour l'emploi ➔ Intention-0.0050.949Non significatif
Effets modérateurs sur l'intention
Confiance × Risque psychologique ➔ Intention-0.0430.740Non significatif
Confiance × Risque de déshumanisation ➔ Intention-0.0670.704Non significatif
Confiance × Risque emploi ➔ Intention0.0760.685Non significatif
Attitude × Risque psychologique ➔ Intention0.0930.391Non significatif
Attitude × Risque de déshumanisation ➔ Intention0.0620.651Non significatif
Attitude × Risque emploi ➔ Intention-0.1640.187Non significatif
Lecture théorique : dans ce modèle, l'acceptation repose surtout sur une chaîne cohérente : anthropomorphisme → présence sociale / chaleur / compétence → plaisir / confiance → attitude → intention. Ici, l'utilité et l'attitude jouent un rôle central, tandis que les différents risques n'exercent pas d'effet direct significatif sur l'intention.

4. Puissance explicative du modèle

Les coefficients de détermination () montrent le niveau de variance expliqué par le modèle pour chaque variable endogène.

Variable expliquée Interprétation
Compétence0.344Pouvoir explicatif modéré
Chaleur0.562Pouvoir explicatif élevé
Présence sociale0.656Pouvoir explicatif élevé
Plaisir0.463Pouvoir explicatif modéré à élevé
Utilité0.484Pouvoir explicatif modéré à élevé
Confiance0.803Pouvoir explicatif très élevé
Attitude0.754Pouvoir explicatif très élevé
Intention0.775Pouvoir explicatif élevé

Le modèle explique donc 77,5 % de l'intention, ce qui reste un niveau très élevé en sciences de gestion et en marketing.

5. Colinéarité : situation correcte sur les effets directs, plus fragile sur certaines interactions

La colinéarité est évaluée avec les VIF. Pour la plupart des prédicteurs directs, les valeurs restent acceptables. En revanche, certaines variables d'interaction posent clairement problème.

Bloc Exemples de VIF Lecture
Déterminants de la confiance Compétence = 2.05 ; Chaleur = 2.05 Acceptable
Déterminants de l'attitude Plaisir = 2.58 ; Utilité = 3.94 ; Facilité = 2.90 ; Confiance = 5.18 ; Risque psychologique = 1.24 ; Confiance × Risque = 1.11 Acceptable mais vigilance sur Confiance
Déterminants de l'intention Confiance = 2.81 ; Attitude = 2.82 ; Risque psychologique = 1.79 ; Risque déshumanisation = 3.65 ; Risque emploi = 3.23 Acceptable
Variables de modération (interactions) Confiance × Risque psychologique : VIF = 5.91
Confiance × Risque de déshumanisation : VIF = 14.04
VIF trop élevés

Conclusion : les effets directs sont globalement interprétables. En revanche, les résultats de modération sur l'intention sont fragilisés, en particulier pour Confiance × Risque de déshumanisation, dont le VIF est très élevé. Il faut donc rester prudent dans l'interprétation des effets modérateurs non significatifs.

6. Interprétation scientifique globale

  • L'anthropomorphisme joue un rôle amont central : plus le dispositif paraît humain, plus il est perçu comme chaleureux, compétent et socialement présent.
  • La présence sociale nourrit le plaisir, ce qui confirme que l'expérience vécue avec le dispositif reste essentielle.
  • L'utilité et le plaisir alimentent l'attitude, avec un poids légèrement plus fort pour l'utilité dans ce modèle.
  • L'attitude est le principal moteur de l'intention, complétée par un effet direct de la confiance.
  • La facilité a ici un effet négatif sur l'attitude, résultat atypique qui mérite d'être signalé et discuté.
  • Les risques perçus ne freinent pas directement l'intention dans ce modèle : ni le risque psychologique, ni la déshumanisation, ni le risque emploi ne ressortent comme significatifs.
  • Les modérations ne sont pas validées, et plusieurs sont de toute façon fragilisées par une colinéarité excessive.

Analyse stratégique et implications managériales

Sur la base des résultats, plusieurs enseignements se dégagent pour des acteurs de la restauration souhaitant intégrer des dispositifs technologiques ou robotisés dans l'expérience client.

  • Faire de l'attitude la cible centrale : c'est le moteur principal de l'intention. Tout ce qui améliore l'évaluation globale de l'expérience soutient l'adoption.
  • Renforcer l'utilité perçue : c'est l'un des leviers les plus robustes du modèle. Les utilisateurs doivent comprendre en quoi le dispositif apporte une vraie valeur dans le service.
  • Ne pas négliger la confiance : même si elle n'alimente pas directement l'attitude de manière significative ici, elle agit clairement sur l'intention.
  • Travailler la présence sociale et l'anthropomorphisme : ils jouent un rôle amont majeur dans la formation des perceptions positives.
  • Rester prudent sur la facilité : dans ce modèle, son effet sur l'attitude est négatif et significatif. Il faut donc éviter de présumer qu'une interface plus simple améliore automatiquement l'acceptation.
  • Ne pas surinterpréter les risques perçus : ils ne bloquent pas directement l'intention dans ce contexte précis, contrairement à ce que l'on observe parfois dans d'autres terrains.
✅ Le modèle est solide et très explicatif. Son apport principal est de montrer que, dans ce contexte, l'acceptation dépend surtout de l'attitude, de l'utilité perçue, de la confiance et des perceptions relationnelles générées par l'anthropomorphisme.