Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/07/2011, 14h27   #1
Futur Membre du Club
 
Marlène I
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Marlène I

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 19
Points : 19
Par défaut Calculer racine la moyenne des résidus au carré

bonjour,
étant habituée au logiciel R je ne sais meme pas faire un calcul tout simple sous SAS...
J'ai récupéré les réisdus de mon modèle et j'aimerai ensuite calculer le RMSE (racine de la moyenne des résidus carré) mais je sais pas comment l 'écrire...

voici le code que j'ai commencé a écrire, si qn pouvait m'éclairer...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
proc glm DATA=data1;
class GROUP;
model ch=GROUP;
output out=residus r=resid;
lsmeans GROUP;
run;
 
/*proc print data=residus;
run;*/
 
DATA data1;
RMSE = sqrt((sum(resid^2)/75));
run;
proc print DATA=RMSE;
run;

MERCI!!!!!!!!!!!!!!!!!
marlene2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 14h58   #2
Futur Membre du Club
 
Femme
Étudiant
Inscription : juin 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 19
Points : 17
Points : 17
Bonjour,

Pour mettre au carré la syntaxe est **

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
proc glm DATA=data1;
class GROUP;
model ch=GROUP;
output out=residus r=resid;
lsmeans GROUP;
run;
 
/*proc print data=residus;
run;*/
 
DATA data1;
set residus;
RMSE = sqrt((sum(resid**2)/75));
run;
proc print DATA=RMSE;
run;
J'espère que ça va fonctionner.

Magali
Mag35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 15h17   #3
Futur Membre du Club
 
Marlène I
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Marlène I

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 19
Points : 19
non ca ne marche pas ms en rajoutant une ligne c un peu mieux :

Code :
1
2
3
4
5
DATA data1;
set residus;
RMSE = sqrt((sum(resid**2)/75));
put RMSE=;
run;
ms le pbm c est que g 75 obs ds ma table et donc 75 RMSE qui sortent je comprend pas...
marlene2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 15h27   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
L'étape DATA ne fonctionne qu'en lisant une ligne à la fois dans les données. Les calculs sont donc effectués ligne par ligne. Pas de souci pour la mise au carré, mais la somme n'est pas verticale. La fonction SUM dans l'étape DATA sert à additionner les valeurs de plusieurs variables dans une même ligne.
Ce sera plus simple en SQL.
Code :
1
2
3
PROC SQL ;
SELECT sqrt((mean(resid**2))) AS RMSE FROM work.residus ;
QUIT ;
Et si tu veux mettre ça dans une table, il faut mettre
Code :
CREATE TABLE work.res1 AS
devant SELECT.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 15h46   #5
Futur Membre du Club
 
Marlène I
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Marlène I

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 19
Points : 19
ok merci!!!
marlene2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h03.


 
 
 
 
Partenaires

Hébergement Web