MIS450FinalPortfolioSAS CodeOpt2

.txt
/*Import the CSV file into a temporary SAS data set*/ PROC IMPORT OUT= WORK.BANKNOTE_FORGERY DATAFILE= "D:\Projects\SarahM\banknote.csv" DBMS=CSV REPLACE; GETNAMES=YES; DATAROW=2; GUESSINGROWS=500; RUN; /*Rename Columns to meaningful terms*/ data WORK.BANKNOTE_FORGERY; length Forged_Class $ 16; set WORK.BANKNOTE_FORGERY(rename=(V1=Variance_of_Wavelet V2=Skewness_of_Wavelet V3=Kurtosis_of_Wavelet V4=Entropy_of_Wavelet Class=Forgery_Status)); If Forgery_Status=1 then Forged_Class="Genuine"; else Forged_Class="Forged"; run; /*Provide Summary Statistics and Graphical Summaries of All Variables*/ ods path work.templat(update) sasuser.templat(read) sashelp.tmplmst(read); options orientation = landscape; ods graphics on / reset width=900px height=600px border=off ANTIALIASMAX=50100; proc univariate data=WORK.BANKNOTE_FORGERY plot; var Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet Entropy_of_Wavelet; histogram Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet Entropy_of_Wavelet/ kernel; inset mean std="Std Deviation" median / pos = ne format = 6.3; run; ods path work.templat(update) sasuser.templat(read) sashelp.tmplmst(read); options orientation = landscape; ods graphics on / reset width=900px height=600px border=off ANTIALIASMAX=50100; proc univariate data=WORK.BANKNOTE_FORGERY ; class Forged_Class; var Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet Entropy_of_Wavelet; histogram Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet Entropy_of_Wavelet/ kernel; inset mean std="Std Deviation" median / pos = ne format = 6.3; run; proc freq data=banknote_forgery; tables forged_class; run; data banknote_forgery; set banknote_forgery; y=rannor(1); /* random response variable */ run; ods select none; proc robustreg data=banknote_forgery method=lts seed=54321; model y = Variance_of_Wavelet Skewness_of_Wavelet
Kurtosis_of_Wavelet Entropy_of_Wavelet / diagnostics leverage(CUTOFFALPHA=0.025 MCDALPHA=0.025 MCDInfo); output out=banknote_outliers leverage=outlier_indicator; run; ods select all; /* Calculating Euclidean distances between observations using PROC DISTANCE */ proc distance data=banknote_outliers out=__distance_matrix__; copy outlier_indicator; var interval (Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet Entropy_of_Wavelet); run; /* Using PROC MDS to do the multidimensional scaling */ proc mds data=__distance_matrix__ level=absolute fit=d formula=1 dim=2 out=__out_coordinates__ oconfig; id outlier_indicator; run; options orientation = landscape; ods graphics on / reset width=1200px height=850px border=off ANTIALIASMAX=50100; ods html style=sarah; proc sgplot data=__out_coordinates__; scatter x=Dim1 y=Dim2 / group=outlier_indicator; run; data banknote_outliers_neutralized; set banknote_outliers(where=(outlier_indicator=0)); run; options MAXPOINTS=none; ods select all; ods graphics; proc corr data=banknote_outliers_neutralized nomiss plots(maxpoints=none)=matrix(histogram); var Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet Entropy_of_Wavelet; run; proc logistic data=banknote_outliers_neutralized plots =EFFECT plots=ROC(id=prob);
model Forged_Class(event='Forged')=Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet; roc 'main' Variance_of_Wavelet Skewness_of_Wavelet Kurtosis_of_Wavelet; output out=estimated predicted=estprob l=lower95 u=upper95; run; data estimated; length Predicted_Forged_Class $ 16; set estimated; Predicted_Forged_Class="Genuine"; if estprob>0.5 then Predicted_Forged_Class="Forged"; run; proc freq data=estimated; tables Forged_Class*Predicted_Forged_Class; run;
Uploaded by shelby80138 on coursehero.com