UNVEILING URBAN TRAFFIC DYNAMICS: A COMPREHENSIVE ANALYSIS USING SAS PROCEDURES | PROC CONTENTS | PROC PRINT | PROC MEANS | PROC FREQ | PROC FORMAT | PROC REPORT | PROC SGPLOT | PROC SQL | PROC UNIVARIATE | PROC CORR
/*Create a unique dataset centered around urban traffic patterns and apply various SAS procedures to analyze it.*/
Dataset Overview: Urban Traffic Patterns
Dataset Name: urban_traffic_data
Variables:
Intersection_ID (Character): Unique identifier for each intersection (e.g., "INT001").
Date (Date): Date of observation.
Time (Time): Time of observation.
Vehicle_Count (Numeric): Number of vehicles passing through the intersection during the observed time interval.
Average_Speed (Numeric): Average speed of vehicles in km/h.
Accident_Occurred (Character): Indicates if an accident occurred ("Yes"/"No").
Weather_Condition (Character): Weather during observation ("Clear", "Rainy", "Foggy", etc.).
Traffic_Signal_Status (Character): Status of the traffic signal ("Operational", "Flashing", "Out of Order").
Creating the Dataset in SAS
data urban_traffic_data;
format Date date9. Time time5.;
input Intersection_ID $ Date :date9. Time :time5. Vehicle_Count Average_Speed Accident_Occurred $ Weather_Condition $ Traffic_Signal_Status $;
datalines;
INT001 01JAN2025 08:00 120 45 No Clear Operational
INT002 01JAN2025 08:00 95 50 No Rainy Operational
INT003 01JAN2025 08:00 110 40 Yes Foggy Flashing
INT001 01JAN2025 09:00 130 47 No Clear Operational
INT002 01JAN2025 09:00 100 52 No Rainy Operational
INT003 01JAN2025 09:00 115 42 No Foggy Flashing
;
run;
proc print data=urban_traffic_data (obs=10);
title "Sample Observations from Urban Traffic Data";
run;
Output:
| Sample Observations from Urban Traffic
Data |
| Obs | Date | Time | Intersection_ID | Vehicle_Count | Average_Speed | Accident_Occurred | Weather_Condition | Traffic_Signal_Status |
|---|---|---|---|---|---|---|---|---|
| 1 | 01JAN2025 | 8:00 | INT001 | 120 | 45 | No | Clear | Operational |
| 2 | 01JAN2025 | 8:00 | INT002 | 95 | 50 | No | Rainy | Operational |
| 3 | 01JAN2025 | 8:00 | INT003 | 110 | 40 | Yes | Foggy | Flashing |
| 4 | 01JAN2025 | 9:00 | INT001 | 130 | 47 | No | Clear | Operational |
| 5 | 01JAN2025 | 9:00 | INT002 | 100 | 52 | No | Rainy | Operational |
| 6 | 01JAN2025 | 9:00 | INT003 | 115 | 42 | No | Foggy | Flashing |
Applying SAS Procedures
1. PROC CONTENTS: Understanding the Dataset Structure
proc contents data=urban_traffic_data;
run;
Output:
| Data Set Name | WORK.URBAN_TRAFFIC_DATA | Observations | 6 |
|---|---|---|---|
| Member Type | DATA | Variables | 8 |
| Engine | V9 | Indexes | 0 |
| Created | 14/09/2015 00:37:18 | Observation Length | 72 |
| Last Modified | 14/09/2015 00:37:18 | Deleted Observations | 0 |
| Protection | Compressed | NO | |
| Data Set Type | Sorted | NO | |
| Label | |||
| Data Representation | WINDOWS_64 | ||
| Encoding | wlatin1 Western (Windows) |
| Engine/Host Dependent Information | |
|---|---|
| Data Set Page Size | 65536 |
| Number of Data Set Pages | 1 |
| First Data Page | 1 |
| Max Obs per Page | 908 |
| Obs in First Data Page | 6 |
| Number of Data Set Repairs | 0 |
| ExtendObsCounter | YES |
| Filename | C:\Users\Lenovo\AppData\Local\Temp\SAS Temporary Files\_TD11628_DESKTOP-QFAA4KV_\urban_traffic_data.sas7bdat |
| Release Created | 9.0401M2 |
| Host Created | X64_8HOME |
| Alphabetic List of Variables and Attributes | ||||
|---|---|---|---|---|
| # | Variable | Type | Len | Format |
| 6 | Accident_Occurred | Char | 8 | |
| 5 | Average_Speed | Num | 8 | |
| 1 | Date | Num | 8 | DATE9. |
| 3 | Intersection_ID | Char | 8 | |
| 2 | Time | Num | 8 | TIME5. |
| 8 | Traffic_Signal_Status | Char | 15 | |
| 4 | Vehicle_Count | Num | 8 | |
| 7 | Weather_Condition | Char | 8 | |
/*This procedure provides metadata about the dataset, including variable types, lengths, and formats.*/
2. PROC MEANS: Descriptive Statistics
proc means data=urban_traffic_data n mean std min max;
var Vehicle_Count Average_Speed;
run;
Output:
| Variable | N | Mean | Std Dev | Minimum | Maximum | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
/*Calculates basic statistics for Vehicle_Count and Average_Speed.*/
3. PROC FREQ: Frequency Analysis
proc freq data=urban_traffic_data;
tables Accident_Occurred Weather_Condition Traffic_Signal_Status;
run;
Output:
| Accident_Occurred | Frequency | Percent | Cumulative Frequency |
Cumulative Percent |
|---|---|---|---|---|
| No | 5 | 83.33 | 5 | 83.33 |
| Yes | 1 | 16.67 | 6 | 100.00 |
| Weather_Condition | Frequency | Percent | Cumulative Frequency |
Cumulative Percent |
|---|---|---|---|---|
| Clear | 2 | 33.33 | 2 | 33.33 |
| Foggy | 2 | 33.33 | 4 | 66.67 |
| Rainy | 2 | 33.33 | 6 | 100.00 |
| Traffic_Signal_Status | Frequency | Percent | Cumulative Frequency |
Cumulative Percent |
|---|---|---|---|---|
| Flashing | 2 | 33.33 | 2 | 33.33 |
| Operational | 4 | 66.67 | 6 | 100.00 |
/*Analyzes the frequency of accidents, weather conditions, and signal statuses.*/
4. PROC FORMAT: Creating Custom Formats
proc format;
value $accident_fmt
'Yes' = 'Accident'
'No' = 'No Accident';
value $weather_fmt
'Clear' = 'Clear Weather'
'Rainy' = 'Rainy Weather'
'Foggy' = 'Foggy Conditions';
run;
/*Defines custom formats for better readability.*/
5. PROC REPORT: Customized Reporting
proc report data=urban_traffic_data nowd;
columns Intersection_ID Date Vehicle_Count Average_Speed Accident_Occurred;
define Intersection_ID / group;
define Date / group;
define Vehicle_Count / analysis sum;
define Average_Speed / analysis mean;
define Accident_Occurred / display format=$accident_fmt.;
title "Traffic Summary by Intersection and Date";
run;
Output:
| Traffic Summary by Intersection and
Date |
| Intersection_ID | Date | Vehicle_Count | Average_Speed | Accident_Occurred |
|---|---|---|---|---|
| INT001 | 01JAN2025 | 120 | 45 | No Accident |
| 130 | 47 | No Accident | ||
| INT002 | 01JAN2025 | 95 | 50 | No Accident |
| 100 | 52 | No Accident | ||
| INT003 | 01JAN2025 | 110 | 40 | Accident |
| 115 | 42 | No Accident |
/*Generates a report summarizing traffic data by intersection and date.*/
6. PROC SGPLOT: Visualizing Data
proc sgplot data=urban_traffic_data;
series x=Time y=Vehicle_Count / group=Intersection_ID;
title "Vehicle Count Over Time by Intersection";
run;
/*Creates a line plot showing vehicle counts over time for each intersection.*/
7. PROC SQL: Advanced Data Queries
proc sql;
create table high_traffic as
select Intersection_ID, Date, sum(Vehicle_Count) as Total_Vehicles
from urban_traffic_data
group by Intersection_ID, Date
having Total_Vehicles > 1000;
quit;
proc print;run;
Log:
NOTE: Table WORK.HIGH_TRAFFIC created, with 0 rows and 3 columns.
/*Identifies intersections with high traffic volumes on specific dates.*/
8. PROC UNIVARIATE: Detailed Statistical Analysis
proc univariate data=urban_traffic_data;
var Average_Speed;
histogram Average_Speed / normal;
inset mean std / position=ne;
title "Distribution of Average Speeds";
run;
Output:
| Distribution of Average
Speeds |
| Parameters for Normal Distribution | ||
|---|---|---|
| Parameter | Symbol | Estimate |
| Mean | Mu | 46 |
| Std Dev | Sigma | 4.604346 |
| Goodness-of-Fit Tests for Normal Distribution | ||||
|---|---|---|---|---|
| Test | Statistic | p Value | ||
| Kolmogorov-Smirnov | D | 0.14083988 | Pr > D | >0.150 |
| Cramer-von Mises | W-Sq | 0.02085136 | Pr > W-Sq | >0.250 |
| Anderson-Darling | A-Sq | 0.15729075 | Pr > A-Sq | >0.250 |
| Quantiles for Normal Distribution | ||
|---|---|---|
| Percent | Quantile | |
| Observed | Estimated | |
| 1.0 | 40.0000 | 35.2887 |
| 5.0 | 40.0000 | 38.4265 |
| 10.0 | 40.0000 | 40.0993 |
| 25.0 | 42.0000 | 42.8944 |
| 50.0 | 46.0000 | 46.0000 |
| 75.0 | 50.0000 | 49.1056 |
| 90.0 | 52.0000 | 51.9007 |
| 95.0 | 52.0000 | 53.5735 |
| 99.0 | 52.0000 | 56.7113 |
/*Analyzes the distribution of average speeds, including a histogram and statistical measures.*/
9. PROC CORR: Correlation Analysis
proc corr data=urban_traffic_data;
var Vehicle_Count Average_Speed;
title "Correlation Between Vehicle Count and Average Speed";
run;
Output:
| Correlation Between Vehicle Count and Average Speed |
The CORR Procedure
| 2 Variables: | Vehicle_Count Average_Speed |
|---|
| Simple Statistics | ||||||
|---|---|---|---|---|---|---|
| Variable | N | Mean | Std Dev | Sum | Minimum | Maximum |
| Vehicle_Count | 6 | 111.66667 | 12.90994 | 670.00000 | 95.00000 | 130.00000 |
| Average_Speed | 6 | 46.00000 | 4.60435 | 276.00000 | 40.00000 | 52.00000 |
| Pearson Correlation
Coefficients, N = 6 Prob > |r| under H0: Rho=0 | ||||||
|---|---|---|---|---|---|---|
| Vehicle_Count | Average_Speed | |||||
| Vehicle_Count |
|
| ||||
| Average_Speed |
|
| ||||
/*Examines the relationship between vehicle count and average speed.*/
No comments:
Post a Comment