The analysis conducted in this project explores insights from CSRIC’s communications best practices on priority areas like public safety, disaster management, and network resilience. This data is valuable for policymakers to develop informed recommendations to enhance communication security and reliability.
The dataset used in this analysis was obtained from the CSRIC Best Practices Search Tool and includes fields like priority level, network types, industry roles, and public safety relevance.
Source: Communications Security, Reliability and Interoperability Council (CSRIC) Content: Priority levels, network types, industry roles, keywords, and public safety flags Usage: Public dataset intended for use by researchers, analysts, and policymakers Project Structure The repository includes the following files:
├── CSRIC_Best_Practices_Raw.csv # Original raw data file
├── CSRIC_Best_Practices_Cleaned.csv # Cleaned data file for reproducibility
├── CSRIC_Analysis_Report.Rmd # Main RMarkdown analysis report
├── CSRIC_Analysis_Report.pdf # PDF output of the analysis report
├── scripts/
│ ├── Data_Cleaning.R # Script for data cleaning and preparation
│ ├── Exploratory_Analysis.R # Script for exploratory data analysis (EDA)
│ ├── Statistical_Tests.R # Script for statistical analysis
│ ├── Visualization.R # Script for generating visualizations
└── README.md # Project readme file
-Checked for missing values, removed duplicates, and converted categorical columns to factors for analysis.
Exploratory Data Analysis (EDA): Generated summary statistics Analyzed distributions of priority levels, network types, and industry roles -Conducted Chi-squared tests to assess relationships between priority levels and network types or industry roles. -Created bar charts and heatmaps to reveal patterns and associations. -Summarized findings, including policy recommendations for communications security.
Insights from the analysis include:
High-priority best practices are more common in public safety and disaster management roles. Wireless and mobile networks are heavily associated with high-priority recommendations, reflecting the importance of security in these areas. Significant relationships exist between priority level and industry role, particularly for network operators and service providers. For detailed results and visualizations, see the CSRIC_Analysis_Report.pdf.
To replicate the analysis:
Clone this repository. bash Copy code git clone https://github.com/Ekhwatenge/CSRIC-Best-Practices Ensure that R and the required packages (e.g., dplyr, ggplot2, reshape2) are installed. Run the analysis scripts in the scripts folder sequentially or open and render CSRIC_Analysis_Report.Rmd in RStudio. ## Requirements R version 4.0 or higher R Packages: dplyr for data manipulation ggplot2 for visualizations reshape2 for creating heatmaps knitr and rmarkdown for generating reports
To contribute, please fork the repository, create a new branch, and submit a pull request. We welcome improvements to the analysis, additional visualizations, or enhancements to the documentation.
This project is licensed under the MIT License - see the LICENSE file for details.
# Load necessary libraries
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
# Load the dataset (update the path as necessary)
csric_data <- read.csv("CSRIC_Best_Practices_Raw.csv.csv")
# Preview the data
head(csric_data)
3.1 Checking for Missing Values
## BP.Number Priority
## 0 0
## Description Network.Type.s.
## 0 0
## Industry.Role.s. Keywords
## 0 0
## Public.Safety.and.Disaster Reference
## 0 0
## cable internet.Data
## 0 0
## satellite wireless
## 0 0
## wireline Service.Provider
## 0 0
## Network.Operator Priority..1.2.3.
## 0 123
## Equipment.Supplier Property.Manager
## 0 0
## Government Public.Safety
## 0 0
3.2 Removing Duplicates and Setting Data Types
# Remove duplicates
csric_data <- csric_data[!duplicated(csric_data), ]
# Convert relevant columns to factors for categorical analysis
csric_data$Priority <- as.factor(csric_data$Priority)
# Print column names to confirm exact names
colnames(csric_data)
## [1] "BP.Number" "Priority"
## [3] "Description" "Network.Type.s."
## [5] "Industry.Role.s." "Keywords"
## [7] "Public.Safety.and.Disaster" "Reference"
## [9] "cable" "internet.Data"
## [11] "satellite" "wireless"
## [13] "wireline" "Service.Provider"
## [15] "Network.Operator" "Priority..1.2.3."
## [17] "Equipment.Supplier" "Property.Manager"
## [19] "Government" "Public.Safety"
csric_data$Public.Safety.and.Disaster <-as.factor(csric_data$Public.Safety.and.Disaster)
csric_data$Network.Operator <- as.factor(csric_data$Network.Operator)
csric_data$Industry_Role.s. <- as.factor(csric_data$Industry.Role.s.)
# Display summary statistics for key columns
summary(csric_data)
## BP.Number Priority Description
## Length:1129 :123 Length:1129
## Class :character Critical :191 Class :character
## Mode :character Highly Important:350 Mode :character
## Important :465
##
##
##
## Network.Type.s. Industry.Role.s. Keywords
## Length:1129 Length:1129 Length:1129
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
## Public.Safety.and.Disaster Reference cable internet.Data
## FALSE:513 Length:1129 Mode :logical Mode :logical
## TRUE :616 Class :character FALSE:228 FALSE:109
## Mode :character TRUE :901 TRUE :1020
##
##
##
##
## satellite wireless wireline Service.Provider
## Mode :logical Mode :logical Mode :logical Mode :logical
## FALSE:353 FALSE:216 FALSE:232 FALSE:257
## TRUE :776 TRUE :913 TRUE :897 TRUE :872
##
##
##
##
## Network.Operator Priority..1.2.3. Equipment.Supplier Property.Manager
## FALSE:183 Min. :1.000 Mode :logical Mode :logical
## TRUE :946 1st Qu.:1.000 FALSE:725 FALSE:947
## Median :2.000 TRUE :404 TRUE :182
## Mean :1.728
## 3rd Qu.:2.000
## Max. :3.000
## NA's :123
## Government Public.Safety
## Mode :logical Mode :logical
## FALSE:1069 FALSE:513
## TRUE :60 TRUE :616
##
##
##
##
## Industry_Role.s.
## Service Provider; Network Operator; :205
## Service Provider; Network Operator; Public Safety; :177
## Service Provider; Network Operator; Equipment Supplier; Public Safety; :175
## Network Operator; : 79
## Service Provider; Network Operator; Public Safety; Property Manager; : 64
## Service Provider; Network Operator; Equipment Supplier; Public Safety; Property Manager;: 62
## (Other) :367
4.2 Distribution of Priority Levels
# Plot the distribution of Priority Levels
ggplot(csric_data, aes(x = Priority)) +
geom_bar() +
ggtitle("Distribution of Priority Levels") +
xlab("Priority Level") +
ylab("Count") +
theme_minimal()
4.3 Network Type Distribution
# Plot the distribution of Network.Operator
ggplot(csric_data, aes(x = Network.Operator)) +
geom_bar() +
ggtitle("Distribution of Network Operator") +
xlab("Network OPerator") +
ylab("Count") +
theme_minimal()
4.4 Industry Role Distribution
# Plot the distribution of Industry Roles
ggplot(csric_data, aes(x = Industry.Role.s.)) +
geom_bar() +
ggtitle("Distribution of Industry Roles") +
xlab("Industry Role") +
ylab("Count") +
theme_minimal()
# Chi-squared test for association between Priority Level and Network Operators
table_priority_network <- table(csric_data$Priority, csric_data$Network.Operator)
chi_test_priority_network <- chisq.test(table_priority_network)
chi_test_priority_network
##
## Pearson's Chi-squared test
##
## data: table_priority_network
## X-squared = 5.0475, df = 3, p-value = 0.1684
5.2 Chi-Squared Test for Priority Level and Industry Role
# Chi-squared test for association between Priority Level and Industry Role
table_priority_role <- table(csric_data$Priority, csric_data$Industry.Role.s.)
chi_test_priority_role <- chisq.test(table_priority_role)
## Warning in chisq.test(table_priority_role): Chi-squared approximation may be
## incorrect
chi_test_priority_role
##
## Pearson's Chi-squared test
##
## data: table_priority_role
## X-squared = 452.06, df = 102, p-value < 2.2e-16
library(reshape2)
heatmap_data_network <- as.data.frame(table_priority_network)
ggplot(heatmap_data_network, aes(x = Var1, y = Var2, fill = Freq)) +
geom_tile() +
scale_fill_gradient(low = "white", high = "blue") +
labs(title = "Heatmap of Priority Level and Network Type", x = "Priority Level", y = "Network Type") +
theme_minimal()
6.2 Heatmap of Priority Level and Industry Role Association
heatmap_data_role <- as.data.frame(table_priority_role)
ggplot(heatmap_data_role, aes(x = Var1, y = Var2, fill = Freq)) +
geom_tile() +
scale_fill_gradient(low = "white", high = "blue") +
labs(title = "Heatmap of Priority Level and Industry Role", x = "Priority Level", y = "Industry Role") +
theme_minimal()
7. Conclusion The analysis of the CSRIC Best Practices dataset provides
insights into priority recommendations and the distribution of practices
across network operators, industry roles, and public safety aspects.
Below are the summary findings:
a)Distribution of Priority Levels
The majority of best practices were found to have lower or medium priority levels, with a smaller subset designated as high priority. High-priority recommendations are predominantly associated with public safety and cybersecurity domains, aligning with the nature of these areas in communications infrastructure.
b)Network Operator and Priority Level Association
An association was observed between network operators and priority levels, for practices linked to mobile and wireless networks. Network operators frequently associated with higher priority recommendations include wireless, mobile, and satellite networks, reflecting the high security and reliability requirements in these areas. Policy advisors should prioritize guidelines for wireless and mobile operators to reinforce security and resilience in these communication infrastructures.
c)Industry Role Distribution
Analysis of industry roles revealed that network operators and service providers are most frequently cited, indicating their central role in implementing best practices. Public safety entities and government roles also play an important part concerning practices relevant to disaster management and emergency response therefore policies should continue to emphasize collaboration between public and private sectors to maintain a robust communication framework.
d)Chi-Squared Tests and Heatmap Visualizations
Chi-squared tests confirmed relationships between priority levels and both network types and industry roles. Heatmap visualizations showed that high-priority best practices are concentrated among network operators and service providers, particularly in roles related to public safety and cybersecurity. Policy implications include reinforcing best practices for these industry roles to ensure a resilient communications network, particularly in times of crisis or exceptional strain.
e)Recommendations for Policy Advisors
Focus efforts on ensuring compliance and adoption of high-priority recommendations by network operators, particularly in mobile and wireless sectors. Develop targeted guidelines that support the integration of public safety measures across industry roles to enhance the reliability and security of communications infrastructure. Encourage continued collaboration between private network operators and public entities, particularly for roles directly involved in disaster management and emergency response..
# Save cleaned data for reproducibility (run separately to avoid overwriting)
write.csv(csric_data, "CSRIC_Best_Practices_Cleaned.csv", row.names = FALSE)