/* EXERCICE 1 */ /* question 1 */ data Mercury; infile "Mercury.txt" expandtabs ; input id lake$ alkalinity ph calcium cholophyll avg_m nosamples minn maxx yrstd age_data ; run; /* question 2 */ proc print data=mercury; run; /* 53 obs */ /* question 3 */ data mercury_age; set mercury; if age_data=1; drop age_data; /* 53 obs et 11 var */ data no_age; set mercury; if age_data=0; drop age_data; /* 10 obs et 11 var */ proc print data=mercury_age; run; proc print data=no_age; run; /* question 4 */ proc means data=mercury_age; var alkalinity ph calcium cholophyll avg_m nosamples minn maxx yrstd; run; /* pas de données manquantes */ proc corr data=mercury_age; var alkalinity ph avg_m yrstd; run; /* toutes les variables sont corrélées entre elles */ /* question 5 */ proc univariate data=mercury_age normal; var alkalinity yrstd; histogram alkalinity yrstd/normal; run; /* question 6 */ data n_mercury_age; set mercury_age; log_alkalinity=log(alkalinity); log_yrstd=log(yrstd); run; /* question 7 */ proc univariate data=n_mercury_age normal; var log_alkalinity log_yrstd; /* toutes les deux sont de loi Normale */ histogram log_alkalinity log_yrstd/normal; run; /* question 8 */ proc means data=n_mercury_age; var log_alkalinity log_yrstd; run; /* 2.99 et -0.82 */ /* question 9 */ data n2_mercury_age; set n_mercury_age; diff=log_alkalinity-log_yrstd; proc univariate data=n2_mercury_age; var diff; run; /* EXERCICE 2 */ proc iml; /* question 1 */ use mercury; read all var {alkalinity ph avg_m yrstd} into X; close pharynx; print(X); /* question 2 */ v=x[,3]-x[,4]; print(v); /* question 3*/ z=j(nrow(x),1,1); do i=1 to nrow(z); if v[i]<0 then z[i]=-1; if v[i]=0 then v[i]=0; if v[i]>0 then v[i]=1; end; vz=v || z; print(vz); /* question 4 */ Y=X || vz; print(Y); /* question 5 */ create nouveau from Y ; append from Y; close nouveau; quit; /* Exercice 3 */ data final; merge mercury nouveau; v=col5; z=col6; keep id lake alkalinity ph calcium cholophyll avg_m nosamples minn maxx yrstd age_data v z; proc print data=final ; run; /* Exercice 4 */ proc sort data=final ; by pH; run; axis1 value=(c=green) label=(c=green "alkalinity"); axis2 value=(c=black) label=(c=black "pH"); proc gplot data=final; plot alkalinity*pH / vaxis=axis1 haxis=axis2; symbol1 interpol=j color=blue v=star; title "alkalinity fonction du pH"; run; quit; /* Exercice 5 ***/ /* question 1 */ option mprint mlogic symbolgen; %let tableau=final; %let V1=pH; %let V2=Alkalinity; %let V3=Calcium; %let V4=avg_m; /*** question 2 **/ %macro regression(X1,X2,X3); proc reg data=&tableau; model &X3=&X1 &X2; run; %mend regression; %regression(&V1,&V3,&V4) %regression(&V2,&V1,&V4)