720.Can We Detect Errors, Prevent Fraud, And Optimize Biometric Access System Security Using Advanced SAS Programming?

Smart Biometric Security Analytics: Error Detection And Fraud Prevention With SAS

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

HERE IN THIS PROJECT WE USED THESE SAS STATEMENTS —DATA STEP | LENGTH | FORMAT | INPUT | DATALINES | SET | MERGE | IF-THEN-ELSE | PROC TRANSPOSE | PROC APPEND | PROC DATASETS DELETE | MACRO | %MEND | %MACRO CALL

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Introduction

Biometric authentication systems are increasingly used in modern security infrastructures such as corporate offices, government facilities, airports, research laboratories, and banking institutions. These systems rely on biometric identifiers such as fingerprints, facial recognition, iris scans, voice recognition, or palm vein detection to grant secure access.

However, biometric systems produce large amounts of operational data. This data must be monitored carefully to detect:

  • authentication delays
  • system misuse
  • unusual failure rates
  • fraud attempts
  • system performance issues

Organizations therefore analyze biometric system logs using data analytics tools.

SAS (Statistical Analysis System) is widely used for this purpose because it provides powerful capabilities for:

  • data manipulation
  • security analytics
  • fraud detection
  • operational reporting

In this project, we simulate a Biometric Access Control Dataset and demonstrate how SAS programming can be used to:

  • detect data errors
  • correct incorrect values
  • standardize inconsistent formats
  • calculate security metrics
  • detect potential fraud
  • optimize system utilization

We intentionally introduce errors into the dataset to simulate real-world data issues and then demonstrate how SAS programming techniques resolve them.

Table Of Contents

  1. Business Context
  2. Dataset Design
  3. Intentional Error Dataset Creation
  4. Error Identification
  5. Corrected Dataset Code
  6. Character Functions Usage
  7. Numeric Functions Usage
  8. Date Functions (MDY, INTCK, INTNX)
  9. Dataset Combination (SET and MERGE)
  10. Dataset Transformation (TRANSPOSE)
  11. Dataset Extension (APPEND)
  12. Fraud Detection Macro
  13. Utilization Classification
  14. Dataset Cleanup Using PROC DATASETS DELETE
  15. Business Insights
  16. 20 Key Points
  17. Conclusion

Business Context

Consider a multinational company that uses biometric authentication across multiple secure facilities. Each entry attempt is recorded with details such as:

  • biometric type used
  • authentication time
  • failure rate
  • security score
  • system utilization

The security team wants to analyze this dataset to answer questions such as:

  • Which biometric system has the highest failure rate?
  • Are there suspicious access attempts?
  • Which systems have poor security scores?
  • Which locations experience fraud attempts?

To answer these questions, the security analytics team uses SAS programming.

Dataset Design

Our dataset contains the following variables.

Variable

Description

System_ID

Unique system identifier

Biometric_Type

Fingerprint / Face / Iris etc

Authentication_Time

Seconds required to authenticate

Failure_Rate

Percentage of failed attempts

False_Acceptance

False acceptance rate

Usage_Count

Number of access attempts

Security_Score

Overall security evaluation

Percentage

Performance percentage

Fees

Maintenance fee

Access_Date

Date of authentication

Location

Access location

Utilization_Class

System utilization classification

1. Creating Dataset With Intentional Errors

data biometric_raw;

length System_ID $5 Biometric_Type $20 Location $20;

input System_ID $ Biometric_Type:$20. Authentication_Time Failure_Rate False_Acceptance

 Usage_Count Security_Score percentage fees Location $ Access_Date:ddmmyy10.;

format Access_Date date9.;

datalines;

S101 fingerprint 2.4 3.2 0.01 230 88 90 5000 delhi 01-02-2024

S102 Face_recognition 3.1 2.8 0.02 190 85 92 4500 mumbai 02-03-2024

S103 iris 1.8 1.1 0.01 250 91 94 5200 chennai 15-04-2024

S104 voice_recognition 4.0 5.5 0.05 120 70 80 4200 hyderabad 12-05-2024

S105 palm_vein 2.7 . 0.02 200 87 91 4700 pune 10-06-2024

S106 fingerprint 3.5 7.2 0.06 90 60 72 3900 kolkata 22-07-2024

S107 face_recognition 2.9 2.2 0.02 210 89 93 5100 delhi 10-08-2024

S108 iris 1.7 1.0 0.01 260 92 95 5300 chennai 12-09-2024

S109 voice_recognition 4.3 6.1 0.07 100 65 70 3800 bangalore 14-10-2024

S110 palm_vein 2.6 2.0 0.02 215 90 92 5000 hyderabad 21-11-2024

S111 fingerprint 3.0 3.5 0.03 180 84 88 4500 mumbai 05-12-2024

S112 face_recognition 3.4 4.0 0.04 160 80 85 4300 pune 10-01-2025

S113 iris 1.9 1.2 0.01 240 93 96 5400 chennai 20-02-2025

;

run;

proc print data=biometric_raw;

run;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_Date
1S101fingerprintdelhi2.43.20.012308890500001FEB2024
2S102Face_recognitionmumbai3.12.80.021908592450002MAR2024
3S103irischennai1.81.10.012509194520015APR2024
4S104voice_recognitionhyderabad4.05.50.051207080420012MAY2024
5S105palm_veinpune2.7.0.022008791470010JUN2024
6S106fingerprintkolkata3.57.20.06906072390022JUL2024
7S107face_recognitiondelhi2.92.20.022108993510010AUG2024
8S108irischennai1.71.00.012609295530012SEP2024
9S109voice_recognitionbangalore4.36.10.071006570380014OCT2024
10S110palm_veinhyderabad2.62.00.022159092500021NOV2024
11S111fingerprintmumbai3.03.50.031808488450005DEC2024
12S112face_recognitionpune3.44.00.041608085430010JAN2025
13S113irischennai1.91.20.012409396540020FEB2025

Errors In The Dataset

The dataset contains several intentional errors.

Error 1: Date Format Issue

Dates are written as:

01-02-2024

But SAS expects a date input format.

Error 2: Missing Value

Failure rate is missing for System_ID S105.

Error 3: Inconsistent Case

Biometric types appear as:

fingerprint
Face recognition
iris

Case inconsistency affects reporting.

Error 4: Character Formatting Issues

Extra spaces and inconsistent capitalization appear in several variables.

2. Corrected Dataset Code

data biometric_clean;

set biometric_raw;

Biometric_Type = propcase(strip(Biometric_Type));

Location = propcase(strip(Location));

Failure_Rate = coalesce(Failure_Rate,0);

Auth_Rounded = round(Authentication_Time,0.1);

Usage_Adjusted = abs(Usage_Count);

Access_Month = intnx('month',Access_Date,0,'b');

Access_Duration = intck('day',mdy(1,1,2024),Access_Date);

Utilization_Class =

ifc(Usage_Count >220,"High",

ifc(Usage_Count >150,"Medium","Low"));

run;

proc print data=biometric_clean;

run;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_Class
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
2S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
3S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
4S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
5S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
6S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
7S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
8S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
9S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
10S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
11S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
12S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
13S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High
Explanation Of Code

SET Statement

set biometric_raw;

Reads observations from the raw dataset.

STRIP Function

strip()

Removes leading and trailing spaces.

PROPCASE Function

propcase()

Converts text to proper case.

Example

face recognition → Face Recognition

COALESCE Function

coalesce(Failure_Rate,0)

Replaces missing values with zero.

ROUND Function

round(Authentication_Time,0.1)

Rounds authentication time to 1 decimal place.

ABS Function

abs()

Ensures numeric values remain positive.

Date Functions

MDY

mdy(1,1,2024)

Creates SAS date.

INTCK

intck('day',start,end)

Counts number of days between two dates.

INTNX

intnx('month',date,0,'b')

Returns beginning of the month.

3. Dataset Combination Using SET

data biometric_archive;

set biometric_clean 

    biometric_clean;

run;

proc print data=biometric_archive;

run;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_Class
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
2S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
3S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
4S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
5S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
6S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
7S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
8S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
9S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
10S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
11S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
12S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
13S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High
14S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
15S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
16S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
17S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
18S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
19S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
20S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
21S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
22S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
23S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
24S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
25S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
26S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High

SET stacks datasets vertically.

4. Dataset Merge

proc sort data=biometric_clean;by System_ID;run;

proc print data=biometric_clean;

run;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_Class
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
2S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
3S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
4S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
5S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
6S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
7S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
8S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
9S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
10S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
11S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
12S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
13S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High

proc sort data=biometric_archive;by System_ID;run;

proc print data=biometric_archive;

run;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_Class
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
2S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
3S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
4S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
5S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
6S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
7S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
8S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
9S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
10S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
11S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
12S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
13S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
14S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
15S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
16S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
17S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
18S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
19S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
20S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
21S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
22S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
23S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
24S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
25S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High
26S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High

data security_merge;

merge biometric_clean 

      biometric_archive;

by System_ID;

run;

proc print data=security_merge;

run;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_Class
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
2S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
3S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
4S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
5S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
6S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
7S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
8S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
9S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
10S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
11S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
12S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
13S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
14S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
15S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
16S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
17S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
18S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
19S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
20S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
21S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
22S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
23S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
24S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
25S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High
26S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High

MERGE combines datasets horizontally.

5. Dataset Transpose

proc transpose data=biometric_clean out=biometric_transposed;

var Authentication_Time Failure_Rate Security_Score;

run;

proc print data=biometric_transposed;

run;

OUTPUT:

Obs_NAME_COL1COL2COL3COL4COL5COL6COL7COL8COL9COL10COL11COL12COL13
1Authentication_Time2.43.11.84.02.73.52.91.74.32.63.03.41.9
2Failure_Rate3.22.81.15.50.07.22.21.06.12.03.54.01.2
3Security_Score88.085.091.070.087.060.089.092.065.090.084.080.093.0

TRANSPOSE rotates dataset structure.

6. Append Example

proc append base=biometric_archive

            data=biometric_clean;

run;

proc print data=biometric_archive;

run;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_Class
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
2S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
3S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
4S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
5S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
6S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
7S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
8S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
9S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
10S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
11S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
12S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
13S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
14S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
15S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
16S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
17S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
18S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
19S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
20S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
21S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
22S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
23S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
24S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
25S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High
26S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High
27S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731High
28S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661Medium
29S103IrisChennai1.81.10.012509194520015APR20241.825023467105High
30S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132Low
31S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161Medium
32S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203Low
33S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222Medium
34S108IrisChennai1.71.00.012609295530012SEP20241.726023620255High
35S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287Low
36S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325Medium
37S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339Medium
38S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375Medium
39S113IrisChennai1.91.20.012409396540020FEB20251.924023773416High

TRANSPOSE rotates dataset structure.

7. Fraud Detection Macro

%macro fraud_detection;

data fraud_flag;

set biometric_clean;

if Failure_Rate >5 and False_Acceptance >0.05 then Fraud_Flag="YES";

else Fraud_Flag="NO";

run;

proc print data=fraud_flag;

run;

%mend;


%fraud_detection;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_ClassFraud_Flag
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731HighNO
2S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661MediumNO
3S103IrisChennai1.81.10.012509194520015APR20241.825023467105HighNO
4S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132LowNO
5S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161MediumNO
6S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203LowYES
7S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222MediumNO
8S108IrisChennai1.71.00.012609295530012SEP20241.726023620255HighNO
9S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287LowYES
10S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325MediumNO
11S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339MediumNO
12S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375MediumNO
13S113IrisChennai1.91.20.012409396540020FEB20251.924023773416HighNO

Macro Explanation

Macros allow reusable SAS programs.

Fraud logic:

High failure rate
AND
High false acceptance

These patterns indicate possible fraud attempts.

8. Utilization Classification

%macro Utilization;

data Utilization;

set biometric_clean;

length Utilization $8.;

if Usage_Count > 220 then Utilization="HIGH";

else if 150 < Usage_Count < 220 then Utilization="MEDIUM";

else Utilization="LOW";

run;

proc print data=Utilization;

run;

%mend;


%Utilization;

OUTPUT:

ObsSystem_IDBiometric_TypeLocationAuthentication_TimeFailure_RateFalse_AcceptanceUsage_CountSecurity_ScorepercentagefeesAccess_DateAuth_RoundedUsage_AdjustedAccess_MonthAccess_DurationUtilization_ClassUtilization
1S101FingerprintDelhi2.43.20.012308890500001FEB20242.42302340731HighHIGH
2S102Face_recognitionMumbai3.12.80.021908592450002MAR20243.11902343661MediumMEDIUM
3S103IrisChennai1.81.10.012509194520015APR20241.825023467105HighHIGH
4S104Voice_recognitionHyderabad4.05.50.051207080420012MAY20244.012023497132LowLOW
5S105Palm_veinPune2.70.00.022008791470010JUN20242.720023528161MediumMEDIUM
6S106FingerprintKolkata3.57.20.06906072390022JUL20243.59023558203LowLOW
7S107Face_recognitionDelhi2.92.20.022108993510010AUG20242.921023589222MediumMEDIUM
8S108IrisChennai1.71.00.012609295530012SEP20241.726023620255HighHIGH
9S109Voice_recognitionBangalore4.36.10.071006570380014OCT20244.310023650287LowLOW
10S110Palm_veinHyderabad2.62.00.022159092500021NOV20242.621523681325MediumMEDIUM
11S111FingerprintMumbai3.03.50.031808488450005DEC20243.018023711339MediumMEDIUM
12S112Face_recognitionPune3.44.00.041608085430010JAN20253.416023742375MediumMEDIUM
13S113IrisChennai1.91.20.012409396540020FEB20251.924023773416HighHIGH

Systems are classified based on usage.

Usage Count

Category

High

>220

Medium

150–220

Low

<150

9.PROC DATASETS DELETE

proc datasets library=work;

delete biometric_archive biometric_transposed;

quit;

OUTPUT:

NOTE: Deleting WORK.BIOMETRIC_ARCHIVE (memtype=DATA).
NOTE: Deleting WORK.BIOMETRIC_TRANSPOSED (memtype=DATA).

Deletes unnecessary datasets.

Advantages:

·  frees memory

·  reduces clutter

·  improves efficiency

10. Business Insights

Using SAS analysis we can identify:

High Risk Systems

Systems with:

·  high failure rate

·  high false acceptance

Efficient Systems

Low authentication time and high security score.

Underutilized Systems

Low usage count systems may indicate:

·  poor placement

·  user dissatisfaction

11.  20 Key Points Of This Project

·  Dataset Creation for Biometric Access Systems Using SAS DATA Step and DATALINES

·  Simulation of Real-World Data Issues by Introducing Intentional Errors

·  Data Cleaning and Standardization Using Character Functions like STRIP and TRIM

·  Text Formatting and Case Standardization Using PROPCASE, UPCASE, and LOWCASE

·  Handling Missing Values in Security Data Using COALESCE Function

·  Numeric Data Correction and Precision Handling Using ROUND and ABS Functions

·  Date Construction and Formatting Using MDY Function

·  Time Interval and Activity Duration Analysis Using INTCK Function

·  Monthly Time Period Derivation Using INTNX Function

·  Vertical Dataset Combination Using SET Statement

·  Horizontal Dataset Integration Using MERGE Statement

·  Dataset Restructuring for Analytical Reporting Using PROC TRANSPOSE

·  Incremental Data Addition Using PROC APPEND

·  System Utilization Classification Based on Usage_Count Logic

·  Fraud Detection Logic Based on Failure Rate and False Acceptance Thresholds

·  Automation of Fraud Detection Process Using SAS MACROS

·  Text Concatenation and Label Creation Using CAT and CATX Functions

·  Detection and Correction of Data Quality Issues in Security Logs

·  Workspace and Dataset Management Using PROC DATASETS DELETE

·  Generating Security and Performance Insights for Biometric Authentication Systems Using SAS Analytics

Conclusion

This project demonstrates how SAS programming can be used to analyze and improve biometric access systems.

·  Real datasets contain errors and inconsistencies

·  SAS provides powerful tools to clean data

·  Character functions standardize text

·  Numeric functions correct values

·  Date functions analyze time patterns

·  Macros automate fraud detection

·  Dataset operations support advanced analysis

Using these techniques, organizations can ensure that biometric authentication systems remain reliable, secure, and fraud-resistant.

SAS INTERVIEW QUESTIONS

·  What is %STR and %NRSTR?

·  What is %DO loop?

·  What is SYMGET function?

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

About the Author:

SAS Learning Hub is a data analytics and SAS programming platform focused on clinical, financial, and real-world data analysis. The content is created by professionals with academic training in Pharmaceutics and hands-on experience in Base SAS, PROC SQL, Macros, SDTM, and ADaM, providing practical and industry-relevant SAS learning resources.


Disclaimer:

The datasets and analysis in this article are created for educational and demonstration purposes only. They do not represent PARKING SYSTEM data.


Our Mission:

This blog provides industry-focused SAS programming tutorials and analytics projects covering finance, healthcare, and technology.


This project is suitable for:

·  Students learning SAS

·  Data analysts building portfolios

·  Professionals preparing for SAS interviews

·  Bloggers writing about analytics 

·  Clinical SAS Programmer

·  Research Data Analyst

·  Regulatory Data Validator

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Follow Us On : 


 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--->Follow our blog for more SAS-based analytics projects and industry data models.

---> Support Us By Following Our Blog..

To deepen your understanding of SAS analytics, please refer to our other data science and industry-focused projects listed below:

1.Can SAS analytics reveal which programming languages are popular but surprisingly difficult to master?

2.Is SDTM DM quality control in SAS the key to avoiding last-minute FDA rejection risks?

3.Can SAS analytics reveal which world tourist places truly attract visitors year after year?

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

About Us | Contact Privacy Policy



Comments

Popular posts from this blog

412.Can We Build And Clean A University Course Analytics & Fraud Detection System In Sas Using Only Macros While Intentionally Creating And Fixing Errors?

718.Can We Design, Debug, Detect Fraud, And Optimize A Smart Parking System Using Advanced SAS Programming Techniques?

416.Can We Design, Debug, Detect Fraud, and Build an ADaM-Ready Autonomous Drone Flight Analytics System Using Advanced SAS Programming Techniques?