pls

pls

##set_pls

Description

Ajuste des modèles en utilisant l'une des méthodes prédictives linéairesModèles statistiques estimant une variable cible par une combinaison linéaire de variables explicatives, minimisant l'écart entre prévisions et observations pour identifier des tendances., y compris les moindres carrés partiels (Partial Least SquaresMéthode de régression itérative qui réduit la dimensionnalité en créant des variables latentes maximisant la covariance entre les prédicteurs et la réponse, idéale pour les données corrélées.). De quoi régaler vos résidus avec une bonne dose de prédictions, le tout servi sur un plateau d'argent ! Prêt à trouver la ligne parfaite ?

Syntaxe Officielle
pls.pls <result=results> <status=rc> /
attributes={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}},
cenScale=TRUE | FALSE,
class={{countMissing=TRUE | FALSE, descending=TRUE | FALSE, ignoreMissing=TRUE | FALSE, levelizeRaw=TRUE | FALSE, maxLev=integer, order="FORMATTED" | "FREQ" | "FREQFORMATTED" | "FREQINTERNAL" | "INTERNAL", param="BTH" | "EFFECT" | "GLM" | "ORDINAL" | "ORTHBTH" | "ORTHEFFECT" | "ORTHORDINAL" | "ORTHPOLY" | "ORTHREF" | "POLYNOMIAL" | "REFERENCE", ref="FIRST" | "LAST" | double | "string", split=TRUE | FALSE, vars={"variable-name-1" <, "variable-name-2", ...>}}, {...}},
classGlobalOptions={countMissing=TRUE | FALSE, descending=TRUE | FALSE, ignoreMissing=TRUE | FALSE, levelizeRaw=TRUE | FALSE, maxLev=integer, order="FORMATTED" | "FREQ" | "FREQFORMATTED" | "FREQINTERNAL" | "INTERNAL", param="BTH" | "EFFECT" | "GLM" | "ORDINAL" | "ORTHBTH" | "ORTHEFFECT" | "ORTHORDINAL" | "ORTHPOLY" | "ORTHREF" | "POLYNOMIAL" | "REFERENCE", ref="FIRST" | "LAST" | double | "string", split=TRUE | FALSE},
classLevelsPrint=TRUE | FALSE,
collection={{details=TRUE | FALSE, name="string", vars={"variable-name-1" <, "variable-name-2", ...>}}, {...}},
cvTest={nSamp=integer, pValue=double, seed=integer, stat="PRESS" | "T2"},
details=TRUE | FALSE,
display={caseSensitive=TRUE | FALSE, exclude=TRUE | FALSE, excludeAll=TRUE | FALSE, keyIsPath=TRUE | FALSE, names={"string-1" <, "string-2", ...>}, pathType="LABEL" | "NAME", traceNames=TRUE | FALSE},
groupbyLimit=64-bit-integer,
inputs={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}},
method={algorithm="EIG" | "NIPALS" | "SVD", epsilon=double, maxIter=integer, name="PCR" | "PLS" | "RRR" | "SIMPLS"},
model={depVars={{name="variable-name"}, {...}}, effects={{interaction="BAR" | "CROSS" | "NONE", maxInteract=integer, nest={"string-1" <, "string-2", ...>}, vars={"string-1" <, "string-2", ...>}}, {...}}, intercept=TRUE | FALSE, solution=TRUE | FALSE},
multimember={{details=TRUE | FALSE, name="string", noEffect=TRUE | FALSE, stdize=TRUE | FALSE, vars={"variable-name-1" <, "variable-name-2", ...>}, weight={"variable-name-1" <, "variable-name-2", ...>}}, {...}},
nClassLevelsPrint=integer,
nFactors=integer,
noCenter=TRUE | FALSE,
noCVStdize=TRUE | FALSE,
nominals={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}},
noScale=TRUE | FALSE,
output={casOut={caslib="string", compress=TRUE | FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, copyVars="ALL" | "ALL_MODEL" | "ALL_NUMERIC" | {"variable-name-1" <, "variable-name-2", ...>}, h="string", predicted="string", press="string", role="string", t2="string", xResidual="string", xScore="string", xStd="string", xStdsse="string", yResidual="string", yScore="string", yStd="string", yStdsse="string"},
outputTables={groupByVarsRaw=TRUE | FALSE, includeAll=TRUE | FALSE, names={"string-1" <, "string-2", ...>} | {key-1={casouttable-1} <, key-2={casouttable-2}, ...>}, repeated=TRUE | FALSE, replace=TRUE | FALSE},
partitionByFrac={seed=integer, test=double},
partitionByVar={name="variable-name", test="string", train="string"},
polynomial={{degree=integer, details=TRUE | FALSE, labelStyle={expand=TRUE | FALSE, exponent="string", includeName=TRUE | FALSE, productSymbol="NONE" | "string"}, mDegree=integer, name="string", noSeparate=TRUE | FALSE, standardize={method="MOMENTS" | "MRANGE" | "WMOMENTS", options="CENTER" | "CENTERSCALE" | "NONE" | "SCALE", prefix="NONE" | "string"}, vars={"variable-name-1" <, "variable-name-2", ...>}}, {...}},
spline={{basis="BSPLINE" | "TPF_DEFAULT" | "TPF_NOINT" | "TPF_NOINTANDNOPOWERS" | "TPF_NOPOWERS", dataBoundary=TRUE | FALSE, degree=integer, details=TRUE | FALSE, knotMax=double, knotMethod={equal=integer, list={double-1 <, double-2, ...>}, listWithBoundary={double-1 <, double-2, ...>}, multiscale={endScale=integer, startScale=integer}, rangeFractions={double-1 <, double-2, ...>}}, knotMin=double, name="string", naturalCubic=TRUE | FALSE, separate=TRUE | FALSE, split=TRUE | FALSE, vars={"variable-name-1" <, "variable-name-2", ...>}}, {...}},
table={caslib="string", computedOnDemand=TRUE | FALSE, computedVars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, computedVarsProgram="string", dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}, groupBy={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, groupByMode="NOSORT" | "REDISTRIBUTE", importOptions={fileType="ANY" | "AUDIO" | "AUTO" | "BASESAS" | "CSV" | "DELIMITED" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "IMAGE" | "JMP" | "LASR" | "PARQUET" | "SOUND" | "SPSS" | "VIDEO" | "XLS", fileType-specific-parameters}, name="table-name", orderBy={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, singlePass=TRUE | FALSE, vars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, where="where-expression", whereTable={casLib="string", dataSourceOptions={adls_noreq-parameters | bigquery-parameters | cas_noreq-parameters | clouddex-parameters | db2-parameters | dnfs-parameters | esp-parameters | fedsvr-parameters | gcs_noreq-parameters | hadoop-parameters | hana-parameters | impala-parameters | informix-parameters | jdbc-parameters | mongodb-parameters | mysql-parameters | odbc-parameters | oracle-parameters | path-parameters | postgres-parameters | redshift-parameters | s3-parameters | sapiq-parameters | sforce-parameters | singlestore_standard-parameters | snowflake-parameters | spark-parameters | spde-parameters | sqlserver-parameters | ss_noreq-parameters | teradata-parameters | vertica-parameters | yellowbrick-parameters}, importOptions={fileType="ANY" | ... , fileType-specific-parameters}, name="table-name", vars={{...}}, where="where-expression"}},
target="string",
varss=TRUE | FALSE;

Paramètres Clés

Nom du paramètre Description
attributes Modifie les attributs des variables utilisées dans cette action. Actuellement, les attributs spécifiés pour les paramètres d'entrées et nominaux sont ignorés.
cenScale Si défini sur True, affiche les informations de centrage et de mise à l'échelle.
class Spécifie les variables de classification à utiliser comme variables explicatives dans l'analyse.
classGlobalOptions Spécifie les options qui s'appliquent à toutes les variables de classification.
classLevelsPrint Si défini sur False, supprime l'affichage des niveaux de classe.
collection Définit un ensemble de variables qui sont traitées comme un effet unique avec plusieurs degrés de liberté.
cvTest Effectue le test de comparaison de modèles basé sur la randomisation de van der Voet.
details Si défini sur True, affiche les détails du modèle ajusté.
display Spécifie une liste de tables de résultats à envoyer au client pour affichage.
groupbyLimit Supprime l'analyse si le nombre de groupes BY dépasse la valeur spécifiée.
inputs Spécifie les variables à utiliser pour l'analyse.
method Spécifie les paramètres de la méthode générale d'extraction de facteurs.
model Spécifie les réponses et les prédicteurs, qui déterminent respectivement les matrices Y et X du modèle.
multimember Utilise une ou plusieurs variables de classification spécifiées dans le paramètre vars de manière à ce que chaque observation puisse être associée à un ou plusieurs niveaux de l'union des niveaux des variables de classification.
nClassLevelsPrint Limite l'affichage des niveaux de classe. La valeur 0 supprime tous les niveaux.
nFactors Spécifie le nombre de facteurs à extraire.
noCenter Si défini sur True, supprime le centrage des réponses et des prédicteurs avant l'ajustement.
noCVStdize Si défini sur True, supprime le récentrage et la remise à l'échelle des réponses et des prédicteurs lors de la validation croisée.
nominals Spécifie les variables nominales à utiliser pour l'analyse.
noScale Si défini sur True, supprime la mise à l'échelle des réponses et des prédicteurs avant l'ajustement.
output Crée une table de données sur le serveur qui contient des statistiques par observation, qui sont calculées après l'ajustement du modèle.
outputTables Liste les noms des tables de résultats à enregistrer en tant que tables CAS sur le serveur.
partitionByFrac Spécifie les fractions des données à utiliser pour l'entraînement et les tests.
partitionByVar Spécifie la variable et ses valeurs utilisées pour partitionner les données dans des rôles d'entraînement et de test.
polynomial Spécifie un effet polynomial. Toutes les variables spécifiées doivent être numériques.
spline Développe les variables en bases de splines dont la forme dépend des paramètres spécifiés.
table Spécifie les paramètres de la table d'entrée.
target Spécifie la variable cible à utiliser pour l'analyse.
varss Si défini sur True, affiche la quantité de variation prise en compte dans chaque réponse et prédicteur.

Préparation des données

Création de la table de données d'exemple

Ce code charge la table d'exemple `sashelp.cars` dans la mémoire CAS pour qu'on puisse l'analyser avec l'action pls.

1PROC CASUTIL; load DATA=sashelp.cars casout='cars' replace; QUIT;

Exemples d'utilisation

Ajustement d'un modèle PLS simple

Ce code ajuste un modèle prédictif linéaire en utilisant les moindres carrés partiels.

1PROC CAS; pls.pls / TABLE='cars', target='MSRP', inputs={'EngineSize', 'Cylinders', 'Horsepower', 'Weight'}, method={name='PLS'}, nFactors=2; RUN; QUIT;
Résultat Attendu :
L'action génère et affiche l'ajustement du modèle PLS avec 2 facteurs extraits pour prédire la variable MSRP.
Modèle PLS avancé avec validation croisée et génération de prédictions

Cet exemple montre comment ajuster un modèle PLS avec %%validation croisée%% de Van der Voet, créer une table de sortie avec les prédictions, et spécifier des variables de classe (catégorielles).

1PROC CAS; pls.pls / TABLE='cars', target='MSRP', class={'Make', 'Type'}, inputs={'Make', 'Type', 'EngineSize', 'Cylinders', 'Horsepower', 'Weight'}, method={name='PLS'}, nFactors=3, cvTest={stat='PRESS', nSamp=100}, OUTPUT={casOut={name='pls_out', replace=true}, predicted='Pred_MSRP', xResidual='XResid', yResidual='YResid'}; RUN; QUIT;
Résultat Attendu :
Le modèle évalue les composants principaux avec une validation croisée aléatoire basée sur 100 échantillons et génère une table CAS `pls_out` contenant les prédictions finales et les résidus observés.