397.If a satellite has excellent signal strength but very high latency, can it still deliver good quality communication? Why or why not?A Sas Study
If a satellite has excellent signal strength but very high latency, can it still deliver good quality communication? Why or why not?A Sas Study
HERE IN THIS PROJECT WE USED THESE SAS STATEMENTS —
DATA STEP | PROC SQL | PROC PRINT | PROC SGPLOT | MACROS | PROC CORR | PROC MEANS | PROC FREQ | PROC UNIVARIATE | SET | APPEND | PROC TRANSPOSE | PROC DATASETS DELETE | DATA FUNCTIONS
INTRODUCTION
Satellite communication is a backbone of modern connectivity—supporting GPS, TV broadcasting, military operations, disaster management, banking, aviation, telecom, and IoT.
In this project, we simulate a Satellite Communication Links dataset and analyze it using Base SAS, Advanced SAS, SQL, Statistics, Macros, and Data Engineering techniques.
TABLE OF CONTENTS
1. Business Context
2. Dataset Design & Variables
3. Data Creation (DATA Step)
4. Date Handling (MDY, INTCK, INTNX)
5. Character & Numeric Functions
6. Quality & Utilization Macros
7. Fraud / Anomaly Detection Logic
8. PROC SQL Analysis
9. PROC FREQ
10. PROC MEANS
11. PROC UNIVARIATE
12. PROC CORR
13. PROC SGPLOT
14. SET, MERGE, APPEND
15. PROC TRANSPOSE
16. PROC DATASETS DELETE
17. Business Insights
18. Conclusion
1. BUSINESS CONTEXT
Satellite operators must constantly monitor:
· Signal quality
· Data throughput
· Latency
· Interference
· Fraudulent or abnormal usage
Poor quality links can cause:
· Call drops
· Navigation errors
· Military risks
· Financial losses
This SAS project simulates monitoring & analytics used by:
· ISRO
· SpaceX
· Satellite ISPs
· Defense organizations
2. DATASET DESIGN
Core Variables
Variable | Description |
Satellite_ID | Unique satellite identifier |
Band_Type | Frequency band (C, Ku, Ka, X) |
Signal_Strength | Signal power (dB) |
Latency_ms | Communication delay |
Data_Rate | Mbps |
Interference_Level | Noise level |
Quality_Score | % quality |
Utilization_Pct | Bandwidth usage |
Link_Date | Observation date |
Fraud_Flag | Abnormal usage indicator |
3. DATA CREATION
data satellite_links_raw;
length Satellite_ID $10 Band_Type $5 Operator $20;
input Satellite_ID $ Band_Type $ Signal_Strength Latency_ms Data_Rate
Interference_Level Utilization_Pct Quality_Score Link_Date : date9.
Operator $;
format Link_Date date9.;
datalines;
SAT001 Ku 78 240 120 12 85 92 01JAN2024 ISRO
SAT002 Ka 65 310 95 18 72 81 05JAN2024 ISRO
SAT003 C 82 180 150 9 90 95 10JAN2024 SPACEX
SAT004 Ku 58 400 70 25 68 72 15JAN2024 SPACEX
SAT005 X 90 140 180 6 93 97 20JAN2024 DRDO
SAT006 Ka 62 330 85 20 70 79 25JAN2024 ISRO
SAT007 C 85 170 155 10 88 94 01FEB2024 ISRO
SAT008 Ku 55 420 65 28 65 68 05FEB2024 SPACEX
SAT009 X 92 135 190 5 96 98 10FEB2024 DRDO
SAT010 Ka 68 290 100 17 75 85 15FEB2024 ISRO
SAT011 C 80 200 140 11 82 90 20FEB2024 SPACEX
SAT012 Ku 60 360 80 22 70 78 25FEB2024 ISRO
SAT013 Ka 64 320 90 19 72 82 01MAR2024 DRDO
SAT014 C 88 160 165 8 91 96 05MAR2024 ISRO
SAT015 X 94 130 195 4 97 99 10MAR2024 DRDO
SAT016 Ku 57 410 68 27 66 70 15MAR2024 SPACEX
;
run;
proc print data=satellite_links_raw;
run;
OUTPUT:
| Obs | Satellite_ID | Band_Type | Operator | Signal_Strength | Latency_ms | Data_Rate | Interference_Level | Utilization_Pct | Quality_Score | Link_Date |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SAT001 | Ku | ISRO | 78 | 240 | 120 | 12 | 85 | 92 | 01JAN2024 |
| 2 | SAT002 | Ka | ISRO | 65 | 310 | 95 | 18 | 72 | 81 | 05JAN2024 |
| 3 | SAT003 | C | SPACEX | 82 | 180 | 150 | 9 | 90 | 95 | 10JAN2024 |
| 4 | SAT004 | Ku | SPACEX | 58 | 400 | 70 | 25 | 68 | 72 | 15JAN2024 |
| 5 | SAT005 | X | DRDO | 90 | 140 | 180 | 6 | 93 | 97 | 20JAN2024 |
| 6 | SAT006 | Ka | ISRO | 62 | 330 | 85 | 20 | 70 | 79 | 25JAN2024 |
| 7 | SAT007 | C | ISRO | 85 | 170 | 155 | 10 | 88 | 94 | 01FEB2024 |
| 8 | SAT008 | Ku | SPACEX | 55 | 420 | 65 | 28 | 65 | 68 | 05FEB2024 |
| 9 | SAT009 | X | DRDO | 92 | 135 | 190 | 5 | 96 | 98 | 10FEB2024 |
| 10 | SAT010 | Ka | ISRO | 68 | 290 | 100 | 17 | 75 | 85 | 15FEB2024 |
| 11 | SAT011 | C | SPACEX | 80 | 200 | 140 | 11 | 82 | 90 | 20FEB2024 |
| 12 | SAT012 | Ku | ISRO | 60 | 360 | 80 | 22 | 70 | 78 | 25FEB2024 |
| 13 | SAT013 | Ka | DRDO | 64 | 320 | 90 | 19 | 72 | 82 | 01MAR2024 |
| 14 | SAT014 | C | ISRO | 88 | 160 | 165 | 8 | 91 | 96 | 05MAR2024 |
| 15 | SAT015 | X | DRDO | 94 | 130 | 195 | 4 | 97 | 99 | 10MAR2024 |
| 16 | SAT016 | Ku | SPACEX | 57 | 410 | 68 | 27 | 66 | 70 | 15MAR2024 |
· length avoids truncation
· format ensures readable dates
· datalines makes dataset self-contained
· Realistic telecom ranges used
4. DATE FUNCTIONS (MDY, INTCK, INTNX)
data satellite_links_dates;
set satellite_links_raw;
Year = year(Link_Date);
Month = month(Link_Date);
Next_Maintenance = intnx('month', Link_Date, 3, 'same');
Days_Since_Link = intck('day', Link_Date, today());
run;
proc print data=satellite_links_dates;
run;
OUTPUT:
| Obs | Satellite_ID | Band_Type | Operator | Signal_Strength | Latency_ms | Data_Rate | Interference_Level | Utilization_Pct | Quality_Score | Link_Date | Year | Month | Next_Maintenance | Days_Since_Link |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SAT001 | Ku | ISRO | 78 | 240 | 120 | 12 | 85 | 92 | 01JAN2024 | 2024 | 1 | 23467 | 770 |
| 2 | SAT002 | Ka | ISRO | 65 | 310 | 95 | 18 | 72 | 81 | 05JAN2024 | 2024 | 1 | 23471 | 766 |
| 3 | SAT003 | C | SPACEX | 82 | 180 | 150 | 9 | 90 | 95 | 10JAN2024 | 2024 | 1 | 23476 | 761 |
| 4 | SAT004 | Ku | SPACEX | 58 | 400 | 70 | 25 | 68 | 72 | 15JAN2024 | 2024 | 1 | 23481 | 756 |
| 5 | SAT005 | X | DRDO | 90 | 140 | 180 | 6 | 93 | 97 | 20JAN2024 | 2024 | 1 | 23486 | 751 |
| 6 | SAT006 | Ka | ISRO | 62 | 330 | 85 | 20 | 70 | 79 | 25JAN2024 | 2024 | 1 | 23491 | 746 |
| 7 | SAT007 | C | ISRO | 85 | 170 | 155 | 10 | 88 | 94 | 01FEB2024 | 2024 | 2 | 23497 | 739 |
| 8 | SAT008 | Ku | SPACEX | 55 | 420 | 65 | 28 | 65 | 68 | 05FEB2024 | 2024 | 2 | 23501 | 735 |
| 9 | SAT009 | X | DRDO | 92 | 135 | 190 | 5 | 96 | 98 | 10FEB2024 | 2024 | 2 | 23506 | 730 |
| 10 | SAT010 | Ka | ISRO | 68 | 290 | 100 | 17 | 75 | 85 | 15FEB2024 | 2024 | 2 | 23511 | 725 |
| 11 | SAT011 | C | SPACEX | 80 | 200 | 140 | 11 | 82 | 90 | 20FEB2024 | 2024 | 2 | 23516 | 720 |
| 12 | SAT012 | Ku | ISRO | 60 | 360 | 80 | 22 | 70 | 78 | 25FEB2024 | 2024 | 2 | 23521 | 715 |
| 13 | SAT013 | Ka | DRDO | 64 | 320 | 90 | 19 | 72 | 82 | 01MAR2024 | 2024 | 3 | 23528 | 710 |
| 14 | SAT014 | C | ISRO | 88 | 160 | 165 | 8 | 91 | 96 | 05MAR2024 | 2024 | 3 | 23532 | 706 |
| 15 | SAT015 | X | DRDO | 94 | 130 | 195 | 4 | 97 | 99 | 10MAR2024 | 2024 | 3 | 23537 | 701 |
| 16 | SAT016 | Ku | SPACEX | 57 | 410 | 68 | 27 | 66 | 70 | 15MAR2024 | 2024 | 3 | 23542 | 696 |
· MDY creates dates
· INTNX schedules maintenance
· INTCK measures aging of links
5. CHARACTER & NUMERIC FUNCTIONS
data satellite_links_clean;
set satellite_links_dates;
Satellite_ID_Clean = strip(upcase(Satellite_ID));
Band_Type_Proper = propcase(Band_Type);
Operator_Clean = catx('-', 'ORG', upcase(Operator));
Signal_Adjusted = round(Signal_Strength * 1.05, 0.1);
Safe_Interference = coalesce(Interference_Level, 0);
run;
proc print data=satellite_links_clean;
var Satellite_ID Band_Type Operator Satellite_ID_Clean Band_Type_Proper Operator_Clean
Signal_Adjusted Safe_Interference;
run;
OUTPUT:
| Obs | Satellite_ID | Band_Type | Operator | Satellite_ID_Clean | Band_Type_Proper | Operator_Clean | Signal_Adjusted | Safe_Interference |
|---|---|---|---|---|---|---|---|---|
| 1 | SAT001 | Ku | ISRO | SAT001 | Ku | ORG-ISRO | 81.9 | 12 |
| 2 | SAT002 | Ka | ISRO | SAT002 | Ka | ORG-ISRO | 68.3 | 18 |
| 3 | SAT003 | C | SPACEX | SAT003 | C | ORG-SPACEX | 86.1 | 9 |
| 4 | SAT004 | Ku | SPACEX | SAT004 | Ku | ORG-SPACEX | 60.9 | 25 |
| 5 | SAT005 | X | DRDO | SAT005 | X | ORG-DRDO | 94.5 | 6 |
| 6 | SAT006 | Ka | ISRO | SAT006 | Ka | ORG-ISRO | 65.1 | 20 |
| 7 | SAT007 | C | ISRO | SAT007 | C | ORG-ISRO | 89.3 | 10 |
| 8 | SAT008 | Ku | SPACEX | SAT008 | Ku | ORG-SPACEX | 57.8 | 28 |
| 9 | SAT009 | X | DRDO | SAT009 | X | ORG-DRDO | 96.6 | 5 |
| 10 | SAT010 | Ka | ISRO | SAT010 | Ka | ORG-ISRO | 71.4 | 17 |
| 11 | SAT011 | C | SPACEX | SAT011 | C | ORG-SPACEX | 84.0 | 11 |
| 12 | SAT012 | Ku | ISRO | SAT012 | Ku | ORG-ISRO | 63.0 | 22 |
| 13 | SAT013 | Ka | DRDO | SAT013 | Ka | ORG-DRDO | 67.2 | 19 |
| 14 | SAT014 | C | ISRO | SAT014 | C | ORG-ISRO | 92.4 | 8 |
| 15 | SAT015 | X | DRDO | SAT015 | X | ORG-DRDO | 98.7 | 4 |
| 16 | SAT016 | Ku | SPACEX | SAT016 | Ku | ORG-SPACEX | 59.9 | 27 |
· strip removes blanks
· upcase standardizes IDs
· catx joins strings
· coalesce prevents missing errors
6. UTILIZATION CLASSIFICATION MACRO
%macro utilization_class;
data satellite_links_util;
set satellite_links_clean;
length Util_Class $10.;
if Utilization_Pct >= 90 then Util_Class = "CRITICAL";
else if Utilization_Pct >= 75 then Util_Class = "HIGH";
else if Utilization_Pct >= 60 then Util_Class = "MEDIUM";
else Util_Class = "LOW";
run;
proc print data=satellite_links_util;
run;
%mend;
%utilization_class;
OUTPUT:
| Obs | Satellite_ID | Band_Type | Operator | Signal_Strength | Latency_ms | Data_Rate | Interference_Level | Utilization_Pct | Quality_Score | Link_Date | Year | Month | Next_Maintenance | Days_Since_Link | Satellite_ID_Clean | Band_Type_Proper | Operator_Clean | Signal_Adjusted | Safe_Interference | Util_Class |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SAT001 | Ku | ISRO | 78 | 240 | 120 | 12 | 85 | 92 | 01JAN2024 | 2024 | 1 | 23467 | 770 | SAT001 | Ku | ORG-ISRO | 81.9 | 12 | HIGH |
| 2 | SAT002 | Ka | ISRO | 65 | 310 | 95 | 18 | 72 | 81 | 05JAN2024 | 2024 | 1 | 23471 | 766 | SAT002 | Ka | ORG-ISRO | 68.3 | 18 | MEDIUM |
| 3 | SAT003 | C | SPACEX | 82 | 180 | 150 | 9 | 90 | 95 | 10JAN2024 | 2024 | 1 | 23476 | 761 | SAT003 | C | ORG-SPACEX | 86.1 | 9 | CRITICAL |
| 4 | SAT004 | Ku | SPACEX | 58 | 400 | 70 | 25 | 68 | 72 | 15JAN2024 | 2024 | 1 | 23481 | 756 | SAT004 | Ku | ORG-SPACEX | 60.9 | 25 | MEDIUM |
| 5 | SAT005 | X | DRDO | 90 | 140 | 180 | 6 | 93 | 97 | 20JAN2024 | 2024 | 1 | 23486 | 751 | SAT005 | X | ORG-DRDO | 94.5 | 6 | CRITICAL |
| 6 | SAT006 | Ka | ISRO | 62 | 330 | 85 | 20 | 70 | 79 | 25JAN2024 | 2024 | 1 | 23491 | 746 | SAT006 | Ka | ORG-ISRO | 65.1 | 20 | MEDIUM |
| 7 | SAT007 | C | ISRO | 85 | 170 | 155 | 10 | 88 | 94 | 01FEB2024 | 2024 | 2 | 23497 | 739 | SAT007 | C | ORG-ISRO | 89.3 | 10 | HIGH |
| 8 | SAT008 | Ku | SPACEX | 55 | 420 | 65 | 28 | 65 | 68 | 05FEB2024 | 2024 | 2 | 23501 | 735 | SAT008 | Ku | ORG-SPACEX | 57.8 | 28 | MEDIUM |
| 9 | SAT009 | X | DRDO | 92 | 135 | 190 | 5 | 96 | 98 | 10FEB2024 | 2024 | 2 | 23506 | 730 | SAT009 | X | ORG-DRDO | 96.6 | 5 | CRITICAL |
| 10 | SAT010 | Ka | ISRO | 68 | 290 | 100 | 17 | 75 | 85 | 15FEB2024 | 2024 | 2 | 23511 | 725 | SAT010 | Ka | ORG-ISRO | 71.4 | 17 | HIGH |
| 11 | SAT011 | C | SPACEX | 80 | 200 | 140 | 11 | 82 | 90 | 20FEB2024 | 2024 | 2 | 23516 | 720 | SAT011 | C | ORG-SPACEX | 84.0 | 11 | HIGH |
| 12 | SAT012 | Ku | ISRO | 60 | 360 | 80 | 22 | 70 | 78 | 25FEB2024 | 2024 | 2 | 23521 | 715 | SAT012 | Ku | ORG-ISRO | 63.0 | 22 | MEDIUM |
| 13 | SAT013 | Ka | DRDO | 64 | 320 | 90 | 19 | 72 | 82 | 01MAR2024 | 2024 | 3 | 23528 | 710 | SAT013 | Ka | ORG-DRDO | 67.2 | 19 | MEDIUM |
| 14 | SAT014 | C | ISRO | 88 | 160 | 165 | 8 | 91 | 96 | 05MAR2024 | 2024 | 3 | 23532 | 706 | SAT014 | C | ORG-ISRO | 92.4 | 8 | CRITICAL |
| 15 | SAT015 | X | DRDO | 94 | 130 | 195 | 4 | 97 | 99 | 10MAR2024 | 2024 | 3 | 23537 | 701 | SAT015 | X | ORG-DRDO | 98.7 | 4 | CRITICAL |
| 16 | SAT016 | Ku | SPACEX | 57 | 410 | 68 | 27 | 66 | 70 | 15MAR2024 | 2024 | 3 | 23542 | 696 | SAT016 | Ku | ORG-SPACEX | 59.9 | 27 | MEDIUM |
· Reusable logic
· Easy future updates
· Industry-standard classification
7. FRAUD / ANOMALY DETECTION MACRO
%macro fraud_detection;
data satellite_links_fraud;
set satellite_links_util;
length Fraud_Flag $3.;
if Data_Rate > 180 and Latency_ms > 350 then Fraud_Flag = "YES";
else if Interference_Level > 25 then Fraud_Flag = "YES";
else Fraud_Flag = "NO";
run;
proc print data=satellite_links_fraud;
run;
%mend;
%fraud_detection;
OUTPUT:
| Obs | Satellite_ID | Band_Type | Operator | Signal_Strength | Latency_ms | Data_Rate | Interference_Level | Utilization_Pct | Quality_Score | Link_Date | Year | Month | Next_Maintenance | Days_Since_Link | Satellite_ID_Clean | Band_Type_Proper | Operator_Clean | Signal_Adjusted | Safe_Interference | Util_Class | Fraud_Flag |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SAT001 | Ku | ISRO | 78 | 240 | 120 | 12 | 85 | 92 | 01JAN2024 | 2024 | 1 | 23467 | 770 | SAT001 | Ku | ORG-ISRO | 81.9 | 12 | HIGH | NO |
| 2 | SAT002 | Ka | ISRO | 65 | 310 | 95 | 18 | 72 | 81 | 05JAN2024 | 2024 | 1 | 23471 | 766 | SAT002 | Ka | ORG-ISRO | 68.3 | 18 | MEDIUM | NO |
| 3 | SAT003 | C | SPACEX | 82 | 180 | 150 | 9 | 90 | 95 | 10JAN2024 | 2024 | 1 | 23476 | 761 | SAT003 | C | ORG-SPACEX | 86.1 | 9 | CRITICAL | NO |
| 4 | SAT004 | Ku | SPACEX | 58 | 400 | 70 | 25 | 68 | 72 | 15JAN2024 | 2024 | 1 | 23481 | 756 | SAT004 | Ku | ORG-SPACEX | 60.9 | 25 | MEDIUM | NO |
| 5 | SAT005 | X | DRDO | 90 | 140 | 180 | 6 | 93 | 97 | 20JAN2024 | 2024 | 1 | 23486 | 751 | SAT005 | X | ORG-DRDO | 94.5 | 6 | CRITICAL | NO |
| 6 | SAT006 | Ka | ISRO | 62 | 330 | 85 | 20 | 70 | 79 | 25JAN2024 | 2024 | 1 | 23491 | 746 | SAT006 | Ka | ORG-ISRO | 65.1 | 20 | MEDIUM | NO |
| 7 | SAT007 | C | ISRO | 85 | 170 | 155 | 10 | 88 | 94 | 01FEB2024 | 2024 | 2 | 23497 | 739 | SAT007 | C | ORG-ISRO | 89.3 | 10 | HIGH | NO |
| 8 | SAT008 | Ku | SPACEX | 55 | 420 | 65 | 28 | 65 | 68 | 05FEB2024 | 2024 | 2 | 23501 | 735 | SAT008 | Ku | ORG-SPACEX | 57.8 | 28 | MEDIUM | YES |
| 9 | SAT009 | X | DRDO | 92 | 135 | 190 | 5 | 96 | 98 | 10FEB2024 | 2024 | 2 | 23506 | 730 | SAT009 | X | ORG-DRDO | 96.6 | 5 | CRITICAL | NO |
| 10 | SAT010 | Ka | ISRO | 68 | 290 | 100 | 17 | 75 | 85 | 15FEB2024 | 2024 | 2 | 23511 | 725 | SAT010 | Ka | ORG-ISRO | 71.4 | 17 | HIGH | NO |
| 11 | SAT011 | C | SPACEX | 80 | 200 | 140 | 11 | 82 | 90 | 20FEB2024 | 2024 | 2 | 23516 | 720 | SAT011 | C | ORG-SPACEX | 84.0 | 11 | HIGH | NO |
| 12 | SAT012 | Ku | ISRO | 60 | 360 | 80 | 22 | 70 | 78 | 25FEB2024 | 2024 | 2 | 23521 | 715 | SAT012 | Ku | ORG-ISRO | 63.0 | 22 | MEDIUM | NO |
| 13 | SAT013 | Ka | DRDO | 64 | 320 | 90 | 19 | 72 | 82 | 01MAR2024 | 2024 | 3 | 23528 | 710 | SAT013 | Ka | ORG-DRDO | 67.2 | 19 | MEDIUM | NO |
| 14 | SAT014 | C | ISRO | 88 | 160 | 165 | 8 | 91 | 96 | 05MAR2024 | 2024 | 3 | 23532 | 706 | SAT014 | C | ORG-ISRO | 92.4 | 8 | CRITICAL | NO |
| 15 | SAT015 | X | DRDO | 94 | 130 | 195 | 4 | 97 | 99 | 10MAR2024 | 2024 | 3 | 23537 | 701 | SAT015 | X | ORG-DRDO | 98.7 | 4 | CRITICAL | NO |
| 16 | SAT016 | Ku | SPACEX | 57 | 410 | 68 | 27 | 66 | 70 | 15MAR2024 | 2024 | 3 | 23542 | 696 | SAT016 | Ku | ORG-SPACEX | 59.9 | 27 | MEDIUM | YES |
· Detect abnormal traffic
· Network misuse
· Cyber-attack indicators
8. PROC SQL ANALYSIS
proc sql;
create table sql_summary as
select Band_Type,
avg(Signal_Strength) as Avg_Signal,
avg(Latency_ms) as Avg_Latency,
avg(Data_Rate) as Avg_DataRate,
avg(Quality_Score) as Avg_Quality
from satellite_links_fraud
group by Band_Type;
quit;
proc print data=sql_summary;
run;
OUTPUT:
| Obs | Band_Type | Avg_Signal | Avg_Latency | Avg_DataRate | Avg_Quality |
|---|---|---|---|---|---|
| 1 | C | 83.75 | 177.5 | 152.500 | 93.75 |
| 2 | Ka | 64.75 | 312.5 | 92.500 | 81.75 |
| 3 | Ku | 61.60 | 366.0 | 80.600 | 76.00 |
| 4 | X | 92.00 | 135.0 | 188.333 | 98.00 |
· Business-friendly
· Easy aggregation
· Used heavily in clinical & telecom
9. PROC FREQ
proc freq data=satellite_links_fraud;
tables Band_Type Util_Class Fraud_Flag;
run;
OUTPUT:
The FREQ Procedure
| Band_Type | Frequency | Percent | Cumulative Frequency | Cumulative Percent |
|---|---|---|---|---|
| C | 4 | 25.00 | 4 | 25.00 |
| Ka | 4 | 25.00 | 8 | 50.00 |
| Ku | 5 | 31.25 | 13 | 81.25 |
| X | 3 | 18.75 | 16 | 100.00 |
| Util_Class | Frequency | Percent | Cumulative Frequency | Cumulative Percent |
|---|---|---|---|---|
| CRITICAL | 5 | 31.25 | 5 | 31.25 |
| HIGH | 4 | 25.00 | 9 | 56.25 |
| MEDIUM | 7 | 43.75 | 16 | 100.00 |
| Fraud_Flag | Frequency | Percent | Cumulative Frequency | Cumulative Percent |
|---|---|---|---|---|
| NO | 14 | 87.50 | 14 | 87.50 |
| YES | 2 | 12.50 | 16 | 100.00 |
· Category distribution
· Risk concentration analysis
10. PROC MEANS
proc means data=satellite_links_fraud mean min max std;
var Signal_Strength Latency_ms Data_Rate Quality_Score;
run;
OUTPUT:
The MEANS Procedure
| Variable | Mean | Minimum | Maximum | Std Dev |
|---|---|---|---|---|
Signal_Strength Latency_ms Data_Rate Quality_Score | 73.6250000 262.1875000 121.7500000 86.0000000 | 55.0000000 130.0000000 65.0000000 68.0000000 | 94.0000000 420.0000000 195.0000000 99.0000000 | 13.8413631 104.8644959 45.9020697 10.5261579 |
· Central tendency
· Variability
· Performance benchmarking
11. PROC UNIVARIATE
proc univariate data=satellite_links_fraud;
var Quality_Score;
histogram Quality_Score;
run;
OUTPUT:
The UNIVARIATE Procedure
Variable: Quality_Score
| Moments | |||
|---|---|---|---|
| N | 16 | Sum Weights | 16 |
| Mean | 86 | Sum Observations | 1376 |
| Std Deviation | 10.5261579 | Variance | 110.8 |
| Skewness | -0.3880409 | Kurtosis | -1.254161 |
| Uncorrected SS | 119998 | Corrected SS | 1662 |
| Coeff Variation | 12.2397185 | Std Error Mean | 2.63153947 |
| Basic Statistical Measures | |||
|---|---|---|---|
| Location | Variability | ||
| Mean | 86.00000 | Std Deviation | 10.52616 |
| Median | 87.50000 | Variance | 110.80000 |
| Mode | . | Range | 31.00000 |
| Interquartile Range | 17.00000 | ||
| Tests for Location: Mu0=0 | ||||
|---|---|---|---|---|
| Test | Statistic | p Value | ||
| Student's t | t | 32.68049 | Pr > |t| | <.0001 |
| Sign | M | 8 | Pr >= |M| | <.0001 |
| Signed Rank | S | 68 | Pr >= |S| | <.0001 |
| Quantiles (Definition 5) | |
|---|---|
| Level | Quantile |
| 100% Max | 99.0 |
| 99% | 99.0 |
| 95% | 99.0 |
| 90% | 98.0 |
| 75% Q3 | 95.5 |
| 50% Median | 87.5 |
| 25% Q1 | 78.5 |
| 10% | 70.0 |
| 5% | 68.0 |
| 1% | 68.0 |
| 0% Min | 68.0 |
| Extreme Observations | |||
|---|---|---|---|
| Lowest | Highest | ||
| Value | Obs | Value | Obs |
| 68 | 8 | 95 | 3 |
| 70 | 16 | 96 | 14 |
| 72 | 4 | 97 | 5 |
| 78 | 12 | 98 | 9 |
| 79 | 6 | 99 | 15 |
The UNIVARIATE Procedure
· Distribution shape
· Outliers
· Quality consistency
12. PROC CORR
proc corr data=satellite_links_fraud;
var Signal_Strength Latency_ms Data_Rate Interference_Level Quality_Score;
run;
OUTPUT:
The CORR Procedure
| 5 Variables: | Signal_Strength Latency_ms Data_Rate Interference_Level Quality_Score |
|---|
| Simple Statistics | ||||||
|---|---|---|---|---|---|---|
| Variable | N | Mean | Std Dev | Sum | Minimum | Maximum |
| Signal_Strength | 16 | 73.62500 | 13.84136 | 1178 | 55.00000 | 94.00000 |
| Latency_ms | 16 | 262.18750 | 104.86450 | 4195 | 130.00000 | 420.00000 |
| Data_Rate | 16 | 121.75000 | 45.90207 | 1948 | 65.00000 | 195.00000 |
| Interference_Level | 16 | 15.06250 | 7.97052 | 241.00000 | 4.00000 | 28.00000 |
| Quality_Score | 16 | 86.00000 | 10.52616 | 1376 | 68.00000 | 99.00000 |
| Pearson Correlation Coefficients, N = 16 Prob > |r| under H0: Rho=0 | |||||
|---|---|---|---|---|---|
| Signal_Strength | Latency_ms | Data_Rate | Interference_Level | Quality_Score | |
| Signal_Strength | 1.00000 | -0.98874 <.0001 | 0.99258 <.0001 | -0.98416 <.0001 | 0.97234 <.0001 |
| Latency_ms | -0.98874 <.0001 | 1.00000 | -0.97935 <.0001 | 0.99445 <.0001 | -0.98808 <.0001 |
| Data_Rate | 0.99258 <.0001 | -0.97935 <.0001 | 1.00000 | -0.97409 <.0001 | 0.95301 <.0001 |
| Interference_Level | -0.98416 <.0001 | 0.99445 <.0001 | -0.97409 <.0001 | 1.00000 | -0.99326 <.0001 |
| Quality_Score | 0.97234 <.0001 | -0.98808 <.0001 | 0.95301 <.0001 | -0.99326 <.0001 | 1.00000 |
· Relationship analysis
· Identify performance drivers
13. PROC SGPLOT
proc sgplot data=satellite_links_fraud;
scatter x=Latency_ms y=Quality_Score;
run;
OUTPUT:
· Visual insight
· Latency vs Quality trade-off
14. SET, APPEND
data new_links;
set satellite_links_fraud;
if Band_Type='Ka';
run;
proc print data=new_links;
run;
OUTPUT:
| Obs | Satellite_ID | Band_Type | Operator | Signal_Strength | Latency_ms | Data_Rate | Interference_Level | Utilization_Pct | Quality_Score | Link_Date | Year | Month | Next_Maintenance | Days_Since_Link | Satellite_ID_Clean | Band_Type_Proper | Operator_Clean | Signal_Adjusted | Safe_Interference | Util_Class | Fraud_Flag |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SAT002 | Ka | ISRO | 65 | 310 | 95 | 18 | 72 | 81 | 05JAN2024 | 2024 | 1 | 23471 | 766 | SAT002 | Ka | ORG-ISRO | 68.3 | 18 | MEDIUM | NO |
| 2 | SAT006 | Ka | ISRO | 62 | 330 | 85 | 20 | 70 | 79 | 25JAN2024 | 2024 | 1 | 23491 | 746 | SAT006 | Ka | ORG-ISRO | 65.1 | 20 | MEDIUM | NO |
| 3 | SAT010 | Ka | ISRO | 68 | 290 | 100 | 17 | 75 | 85 | 15FEB2024 | 2024 | 2 | 23511 | 725 | SAT010 | Ka | ORG-ISRO | 71.4 | 17 | HIGH | NO |
| 4 | SAT013 | Ka | DRDO | 64 | 320 | 90 | 19 | 72 | 82 | 01MAR2024 | 2024 | 3 | 23528 | 710 | SAT013 | Ka | ORG-DRDO | 67.2 | 19 | MEDIUM | NO |
proc append base=satellite_links_fraud
data=new_links force;
run;
proc print data=satellite_links_fraud;
run;
OUTPUT:
| Obs | Satellite_ID | Band_Type | Operator | Signal_Strength | Latency_ms | Data_Rate | Interference_Level | Utilization_Pct | Quality_Score | Link_Date | Year | Month | Next_Maintenance | Days_Since_Link | Satellite_ID_Clean | Band_Type_Proper | Operator_Clean | Signal_Adjusted | Safe_Interference | Util_Class | Fraud_Flag |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SAT001 | Ku | ISRO | 78 | 240 | 120 | 12 | 85 | 92 | 01JAN2024 | 2024 | 1 | 23467 | 770 | SAT001 | Ku | ORG-ISRO | 81.9 | 12 | HIGH | NO |
| 2 | SAT002 | Ka | ISRO | 65 | 310 | 95 | 18 | 72 | 81 | 05JAN2024 | 2024 | 1 | 23471 | 766 | SAT002 | Ka | ORG-ISRO | 68.3 | 18 | MEDIUM | NO |
| 3 | SAT003 | C | SPACEX | 82 | 180 | 150 | 9 | 90 | 95 | 10JAN2024 | 2024 | 1 | 23476 | 761 | SAT003 | C | ORG-SPACEX | 86.1 | 9 | CRITICAL | NO |
| 4 | SAT004 | Ku | SPACEX | 58 | 400 | 70 | 25 | 68 | 72 | 15JAN2024 | 2024 | 1 | 23481 | 756 | SAT004 | Ku | ORG-SPACEX | 60.9 | 25 | MEDIUM | NO |
| 5 | SAT005 | X | DRDO | 90 | 140 | 180 | 6 | 93 | 97 | 20JAN2024 | 2024 | 1 | 23486 | 751 | SAT005 | X | ORG-DRDO | 94.5 | 6 | CRITICAL | NO |
| 6 | SAT006 | Ka | ISRO | 62 | 330 | 85 | 20 | 70 | 79 | 25JAN2024 | 2024 | 1 | 23491 | 746 | SAT006 | Ka | ORG-ISRO | 65.1 | 20 | MEDIUM | NO |
| 7 | SAT007 | C | ISRO | 85 | 170 | 155 | 10 | 88 | 94 | 01FEB2024 | 2024 | 2 | 23497 | 739 | SAT007 | C | ORG-ISRO | 89.3 | 10 | HIGH | NO |
| 8 | SAT008 | Ku | SPACEX | 55 | 420 | 65 | 28 | 65 | 68 | 05FEB2024 | 2024 | 2 | 23501 | 735 | SAT008 | Ku | ORG-SPACEX | 57.8 | 28 | MEDIUM | YES |
| 9 | SAT009 | X | DRDO | 92 | 135 | 190 | 5 | 96 | 98 | 10FEB2024 | 2024 | 2 | 23506 | 730 | SAT009 | X | ORG-DRDO | 96.6 | 5 | CRITICAL | NO |
| 10 | SAT010 | Ka | ISRO | 68 | 290 | 100 | 17 | 75 | 85 | 15FEB2024 | 2024 | 2 | 23511 | 725 | SAT010 | Ka | ORG-ISRO | 71.4 | 17 | HIGH | NO |
| 11 | SAT011 | C | SPACEX | 80 | 200 | 140 | 11 | 82 | 90 | 20FEB2024 | 2024 | 2 | 23516 | 720 | SAT011 | C | ORG-SPACEX | 84.0 | 11 | HIGH | NO |
| 12 | SAT012 | Ku | ISRO | 60 | 360 | 80 | 22 | 70 | 78 | 25FEB2024 | 2024 | 2 | 23521 | 715 | SAT012 | Ku | ORG-ISRO | 63.0 | 22 | MEDIUM | NO |
| 13 | SAT013 | Ka | DRDO | 64 | 320 | 90 | 19 | 72 | 82 | 01MAR2024 | 2024 | 3 | 23528 | 710 | SAT013 | Ka | ORG-DRDO | 67.2 | 19 | MEDIUM | NO |
| 14 | SAT014 | C | ISRO | 88 | 160 | 165 | 8 | 91 | 96 | 05MAR2024 | 2024 | 3 | 23532 | 706 | SAT014 | C | ORG-ISRO | 92.4 | 8 | CRITICAL | NO |
| 15 | SAT015 | X | DRDO | 94 | 130 | 195 | 4 | 97 | 99 | 10MAR2024 | 2024 | 3 | 23537 | 701 | SAT015 | X | ORG-DRDO | 98.7 | 4 | CRITICAL | NO |
| 16 | SAT016 | Ku | SPACEX | 57 | 410 | 68 | 27 | 66 | 70 | 15MAR2024 | 2024 | 3 | 23542 | 696 | SAT016 | Ku | ORG-SPACEX | 59.9 | 27 | MEDIUM | YES |
| 17 | SAT002 | Ka | ISRO | 65 | 310 | 95 | 18 | 72 | 81 | 05JAN2024 | 2024 | 1 | 23471 | 766 | SAT002 | Ka | ORG-ISRO | 68.3 | 18 | MEDIUM | NO |
| 18 | SAT006 | Ka | ISRO | 62 | 330 | 85 | 20 | 70 | 79 | 25JAN2024 | 2024 | 1 | 23491 | 746 | SAT006 | Ka | ORG-ISRO | 65.1 | 20 | MEDIUM | NO |
| 19 | SAT010 | Ka | ISRO | 68 | 290 | 100 | 17 | 75 | 85 | 15FEB2024 | 2024 | 2 | 23511 | 725 | SAT010 | Ka | ORG-ISRO | 71.4 | 17 | HIGH | NO |
| 20 | SAT013 | Ka | DRDO | 64 | 320 | 90 | 19 | 72 | 82 | 01MAR2024 | 2024 | 3 | 23528 | 710 | SAT013 | Ka | ORG-DRDO | 67.2 | 19 | MEDIUM | NO |
· Incremental data
· Real-time feeds
15. PROC TRANSPOSE
proc transpose data=satellite_links_fraud out=transposed;
by Band_Type NotSorted;
var Quality_Score;
run;
proc print data=transposed;
run;
OUTPUT:
| Obs | Band_Type | _NAME_ | COL1 | COL2 | COL3 | COL4 |
|---|---|---|---|---|---|---|
| 1 | Ku | Quality_Score | 92 | . | . | . |
| 2 | Ka | Quality_Score | 81 | . | . | . |
| 3 | C | Quality_Score | 95 | . | . | . |
| 4 | Ku | Quality_Score | 72 | . | . | . |
| 5 | X | Quality_Score | 97 | . | . | . |
| 6 | Ka | Quality_Score | 79 | . | . | . |
| 7 | C | Quality_Score | 94 | . | . | . |
| 8 | Ku | Quality_Score | 68 | . | . | . |
| 9 | X | Quality_Score | 98 | . | . | . |
| 10 | Ka | Quality_Score | 85 | . | . | . |
| 11 | C | Quality_Score | 90 | . | . | . |
| 12 | Ku | Quality_Score | 78 | . | . | . |
| 13 | Ka | Quality_Score | 82 | . | . | . |
| 14 | C | Quality_Score | 96 | . | . | . |
| 15 | X | Quality_Score | 99 | . | . | . |
| 16 | Ku | Quality_Score | 70 | . | . | . |
| 17 | Ka | Quality_Score | 81 | 79 | 85 | 82 |
· Reporting
· Pivot-style layouts
16. PROC DATASETS DELETE
proc datasets library=work nolist;
delete new_links;
quit;
LOG:
· Memory optimization
· Clean workspace
17. BUSINESS INSIGHTS
· Ka & X bands give highest data rates
· High latency reduces quality
· Interference > 25 is risky
· Critical utilization needs expansion
· Fraud mostly seen in high data + high latency links
18. CONCLUSION
This Satellite Communication Links project shows how SAS can be used like a real monitoring system for satellites.
By using DATA steps, PROC SQL, statistical procedures, macros, and date functions, we can clearly understand:
· Which satellite links are strong or weak
· How latency and interference affect quality
· Which links are over-utilized and risky
· Where abnormal or fraudulent behavior may exist
Overall, this project proves that SAS is not just for reports, but a powerful tool for decision-making, risk detection, and performance improvement in high-tech industries like satellite communication.
INTERVIEW QUESTIONS FOR YOU
· What is indexing in SAS?
· How do you prevent overwriting datasets?
· What is the role of formats in reporting?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
About the Author:
· What is indexing in SAS?
· How do you prevent overwriting datasets?
· What is the role of formats in reporting?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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 SATELLITE 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 and smart cities
· EV and energy industry professionals
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
About Us | Contact | Privacy Policy
Comments
Post a Comment