Comment parcourir des variables dans une régression dans SAS / JMPSalut les gens,
Suis très nouveau et récemment formé dans Programmation SAS . J'essaie de prendre un ensemble de variables indépendantes et de tester si elles sont (statistiquement significativement) corrélées différemment à deux groupes de données.
JMP m'a conseillé de faire une série de régressions linéaires comme celle-ci:
result = group + varA + group*varA
et examinez ensuite la signification de l'effet d'interaction, par exemple, la colonne "Prob> F" dans cet exemple "Country * Displacement":
(Je n'ai pas la réputation de publier une image.)
Maintenant, je dois être capable de changer l'une de ces variables; c'est-à-dire, pour une liste de ~ 350 variables, disons varA , varB , etc., je dois exécuter les régressions suivantes,
result = group + varA + group*varA
result = group + varB + group*varB
result = group + varC + group*varC
...
et obtenir la signification de cet effet d'interaction. Les tentatives précédentes de script ont abouti à environ 350 fenêtres de résultats, ou à environ 350 boîtes de dialogue de modèle. . . Tout avis sera le bienvenu.
Modifier:
Par exemple, à l'aide de l'exemple de jeu de données JMP Airline Delays, il s'agit du résultat de l'une des étapes suivantes:

Je dois extraire la signification de l'effet d'interaction (le 0.1397 sous Tests d'effet) pour chacune des variables; par exemple, interchanger la variable "Distance" avec "Temps écoulé". Mais je dois échanger cette variable pour chacun dans un ensemble de ~ 350.
Re: Comment parcourir des variables dans une régression dans SAS / JMPJe vous remercie @txnelson .
Re: Comment parcourir des variables dans une régression dans SAS / JMPVoici un petit exemple de ce que @ gzmorgan0 à condition de. cet exemple boucle sur plusieurs exécutions
names default to here(1);
dt=open("$SAMPLE_DATA/Diamonds Data.jmp");
charColNamesList = dt << get column names(string,character);
effectNameList = {};
effectProbList = {};
For(i=2,i<=nitems(charColNamesList),i++,
Eval(Substitute(Expr(
fm = Fit Model(invisible,
Y( :Price ),
Effects( __VarA__, __VarB__, __VarA__ * __VarB__ ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
)
);),
Expr(__VarA__),parse(":" || charColNamesList[1]),
Expr(__VarB__),parse(":" || charColNamesList[i]))
);
insert into(effectProbList, (report(fm)["Effect Tests"][numbercolbox(6)]<<GET></GET>Re: Comment parcourir des variables dans une régression dans SAS / JMPJe vous remercie @ gzmorgan0 , ce code m'aide définitivement.
Re: Comment parcourir des variables dans une régression dans SAS / JMPChercher
Menu principal> Aide> Index de script> sélectionnez Objets> faites défiler jusqu'à Ajuster le modèle> Moindres carrés> faites défiler le message jusqu'à Obtenir des valeurs d'effet.
Vous auriez besoin de parcourir vos 350 variables (probablement en utilisant une boucle for) où à l'intérieur de la boucle vous auriez un script comme celui ci-dessous.
Je ne recommande pas de s'appuyer sur des valeurs sans analyses résiduelles, de rechercher des valeurs aberrantes ou une violation d'hypothèses. Je ne sais pas pourquoi votre tâche décrite a été recommandée. JMP dispose de nombreux outils pour rechercher les variables les plus influentes. Cela dit, le script est un point de départ.
Names default to Here(1);
Open("$sample_data/Airline Delays.jmp");
fm = Data Table("Airline Delays") << Fit Model( Invisible,
Y( :Arrival Delay ),
Effects( :Day of Week, :Distance, :Day of Week * :Distance ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run(
:Arrival Delay << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Lack of Fit( 0 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 0 ), Plot Residual by Predicted( 0 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 )}
)
);
pv = fm << get effect pvalues;
show(pv); //look at the log or hover over pv the 3rd value pv[3] is the interaction pvalue<BR />fm << Close Window(); //to clean up the windows<BR />