Wednesday, 17 December 2025

342.DISTRIBUTION ANALYSIS OF WAR OUTCOMES USING DATA STEP | PROQ MEANS | PROC UNIVARIATE | MACROS | PROC SQL | PROC GCHART | PROC FREQ FOR GRAPHICAL AND FREQUENCY-BASED SUMMARIZATION

DISTRIBUTION ANALYSIS OF WAR OUTCOMES USING DATA STEP | PROQ MEANS | PROC UNIVARIATE | MACROS | PROC SQL | PROC GCHART | PROC FREQ FOR GRAPHICAL AND FREQUENCY-BASED SUMMARIZATION

options nocenter;

1.HISTORICAL WARS DATASET CREATION

data historical_wars;

    length War_Name $40 Outcome $25;

    format Start_Date End_Date date9.;

    input War_Name $ Start_Date :date9. End_Date :date9.

          Countries_Involved Casualties Outcome $;

          

    Year = year(Start_Date);

    Duration_Days = intck('day', Start_Date, End_Date);

    

datalines;

World_War_I       28JUL1914 11NOV1918 30 20000000 Allied_Victory

World_War_II      01SEP1939 02SEP1945 50 70000000 Allied_Victory

Cold_War          12MAR1947 26DEC1991 45 2000000 Ideological_End

Vietnam_War       01NOV1955 30APR1975 10 3000000 Communist_Victory

Korean_War        25JUN1950 27JUL1953 20 1500000 Armistice

Gulf_War          02AUG1990 28FEB1991 35 25000 Coalition_Victory

Afghan_War_US     07OCT2001 30AUG2021 40 240000 Taliban_Victory

Iran_Iraq_War     22SEP1980 20AUG1988 2 1000000 Stalemate

Napoleonic_Wars   18MAY1803 20NOV1815 25 6000000 Coalition_Victory

Crimean_War       16OCT1853 30MAR1856 6 500000 Allied_Victory

Franco_Prussian   19JUL1870 28JAN1871 2 180000 German_Victory

Russo_Japanese    08FEB1904 05SEP1905 2 150000 Japanese_Victory

;

run;

proc print data=historical_wars;

run;

OUTPUT:

ObsWar_NameOutcomeStart_DateEnd_DateCountries_InvolvedCasualtiesYearDuration_Days
1World_War_IAllied_Victory28JUL191411NOV1918302000000019141567
2World_War_IIAllied_Victory01SEP193902SEP1945507000000019392193
3Cold_WarIdeological_End12MAR194726DEC1991452000000194716360
4Vietnam_WarCommunist_Victory01NOV195530APR197510300000019557120
5Korean_WarArmistice25JUN195027JUL195320150000019501128
6Gulf_WarCoalition_Victory02AUG199028FEB199135250001990210
7Afghan_War_USTaliban_Victory07OCT200130AUG20214024000020017267
8Iran_Iraq_WarStalemate22SEP198020AUG19882100000019802889
9Napoleonic_WarsCoalition_Victory18MAY180320NOV181525600000018034569
10Crimean_WarAllied_Victory16OCT185330MAR185665000001853896
11Franco_PrussianGerman_Victory19JUL187028JAN187121800001870193
12Russo_JapaneseJapanese_Victory08FEB190405SEP190521500001904575


2.PROC SQL – DATA EXTRACTION AND DERIVED COLUMNS

proc sql;

    create table wars_sql as

    select War_Name,Year,Countries_Involved,Casualties,Duration_Days,Outcome,

           intnx('year', Start_Date, 1) as Next_Year_Start format=date9.

    from historical_wars;

quit;

proc print data=wars_sql;

run;

OUTPUT:

ObsWar_NameYearCountries_InvolvedCasualtiesDuration_DaysOutcomeNext_Year_Start
1World_War_I191430200000001567Allied_Victory01JAN1915
2World_War_II193950700000002193Allied_Victory01JAN1940
3Cold_War194745200000016360Ideological_End01JAN1948
4Vietnam_War19551030000007120Communist_Victory01JAN1956
5Korean_War19502015000001128Armistice01JAN1951
6Gulf_War19903525000210Coalition_Victory01JAN1991
7Afghan_War_US2001402400007267Taliban_Victory01JAN2002
8Iran_Iraq_War1980210000002889Stalemate01JAN1981
9Napoleonic_Wars18032560000004569Coalition_Victory01JAN1804
10Crimean_War18536500000896Allied_Victory01JAN1854
11Franco_Prussian18702180000193German_Victory01JAN1871
12Russo_Japanese19042150000575Japanese_Victory01JAN1905


3.PROC FREQ – OUTCOME DISTRIBUTION

proc freq data=historical_wars;

    tables Outcome / nocum nopercent;

run;

OUTPUT:

The FREQ Procedure

OutcomeFrequency
Allied_Victory3
Armistice1
Coalition_Victory2
Communist_Victory1
German_Victory1
Ideological_End1
Japanese_Victory1
Stalemate1
Taliban_Victory1

4.PROC MEANS – DESCRIPTIVE STATISTICS

proc means data=historical_wars mean min max sum;

    var Casualties Duration_Days Countries_Involved;

run;

OUTPUT:

The MEANS Procedure

VariableMeanMinimumMaximumSum
Casualties
Duration_Days
Countries_Involved
8716250.00
3747.25
22.2500000
25000.00
193.0000000
2.0000000
70000000.00
16360.00
50.0000000
104595000
44967.00
267.0000000

5.PROC UNIVARIATE – DISTRIBUTION ANALYSIS

proc univariate data=historical_wars;

    var Casualties;

    histogram Casualties;

run;

OUTPUT:

The UNIVARIATE Procedure

Variable: Casualties

Moments
N12Sum Weights12
Mean8716250Sum Observations104595000
Std Deviation20092823.1Variance4.03722E14
Skewness3.0552289Kurtosis9.65331645
Uncorrected SS5.35261E15Corrected SS4.44094E15
Coeff Variation230.521418Std Error Mean5800298.42
Basic Statistical Measures
LocationVariability
Mean8716250Std Deviation20092823
Median1250000Variance4.03722E14
Mode.Range69975000
  Interquartile Range4290000
Tests for Location: Mu0=0
TestStatisticp Value
Student's tt1.502724Pr > |t|0.1611
SignM6Pr >= |M|0.0005
Signed RankS39Pr >= |S|0.0005
Quantiles (Definition 5)
LevelQuantile
100% Max70000000
99%70000000
95%70000000
90%20000000
75% Q34500000
50% Median1250000
25% Q1210000
10%150000
5%25000
1%25000
0% Min25000
Extreme Observations
LowestHighest
ValueObsValueObs
25000620000003
1500001230000004
1800001160000009
2400007200000001
50000010700000002

The UNIVARIATE Procedure

Histogram for Casualties

6.PROC SGPLOT – VISUALIZATION 

proc sgplot data=historical_wars;

    vbar War_Name / response=Casualties datalabel;

    xaxis display=(nolabel);

    yaxis label="Number of Casualties";

run;

OUTPUT:

The SGPlot Procedure


7.MACRO – WAR IMPACT CLASSIFICATION

%macro impact_classification;

    data war_impact;

        set historical_wars;

        length Impact_Level $15;

        

        if Casualties >= 20000000 then Impact_Level = 'Very Severe';

        else if Casualties >= 5000000 then Impact_Level = 'Severe';

        else if Casualties >= 1000000 then Impact_Level = 'Moderate';

        else Impact_Level = 'Low';

    run;

    proc print data=war_impact;

    run;

%mend;


%impact_classification;

OUTPUT:

ObsWar_NameOutcomeStart_DateEnd_DateCountries_InvolvedCasualtiesYearDuration_DaysImpact_Level
1World_War_IAllied_Victory28JUL191411NOV1918302000000019141567Very Severe
2World_War_IIAllied_Victory01SEP193902SEP1945507000000019392193Very Severe
3Cold_WarIdeological_End12MAR194726DEC1991452000000194716360Moderate
4Vietnam_WarCommunist_Victory01NOV195530APR197510300000019557120Moderate
5Korean_WarArmistice25JUN195027JUL195320150000019501128Moderate
6Gulf_WarCoalition_Victory02AUG199028FEB199135250001990210Low
7Afghan_War_USTaliban_Victory07OCT200130AUG20214024000020017267Low
8Iran_Iraq_WarStalemate22SEP198020AUG19882100000019802889Moderate
9Napoleonic_WarsCoalition_Victory18MAY180320NOV181525600000018034569Severe
10Crimean_WarAllied_Victory16OCT185330MAR185665000001853896Low
11Franco_PrussianGerman_Victory19JUL187028JAN187121800001870193Low
12Russo_JapaneseJapanese_Victory08FEB190405SEP190521500001904575Low


8.DATE FUNCTION (INTCK)

data war_years;

    set historical_wars;

    Duration_Years = intck('year', Start_Date, End_Date);

run;

proc print data=war_years;

run;

OUTPUT:

ObsWar_NameOutcomeStart_DateEnd_DateCountries_InvolvedCasualtiesYearDuration_DaysDuration_Years
1World_War_IAllied_Victory28JUL191411NOV19183020000000191415674
2World_War_IIAllied_Victory01SEP193902SEP19455070000000193921936
3Cold_WarIdeological_End12MAR194726DEC199145200000019471636044
4Vietnam_WarCommunist_Victory01NOV195530APR19751030000001955712020
5Korean_WarArmistice25JUN195027JUL1953201500000195011283
6Gulf_WarCoalition_Victory02AUG199028FEB1991352500019902101
7Afghan_War_USTaliban_Victory07OCT200130AUG2021402400002001726720
8Iran_Iraq_WarStalemate22SEP198020AUG198821000000198028898
9Napoleonic_WarsCoalition_Victory18MAY180320NOV18152560000001803456912
10Crimean_WarAllied_Victory16OCT185330MAR1856650000018538963
11Franco_PrussianGerman_Victory19JUL187028JAN1871218000018701931
12Russo_JapaneseJapanese_Victory08FEB190405SEP1905215000019045751


9.ADDITIONAL PROC – PROC PRINT (DATA REVIEW)

proc print data=war_impact(obs=5);

    title "Sample Output with Impact Classification";

run;

OUTPUT:

Sample Output with Impact Classification

ObsWar_NameOutcomeStart_DateEnd_DateCountries_InvolvedCasualtiesYearDuration_DaysImpact_Level
1World_War_IAllied_Victory28JUL191411NOV1918302000000019141567Very Severe
2World_War_IIAllied_Victory01SEP193902SEP1945507000000019392193Very Severe
3Cold_WarIdeological_End12MAR194726DEC1991452000000194716360Moderate
4Vietnam_WarCommunist_Victory01NOV195530APR197510300000019557120Moderate
5Korean_WarArmistice25JUN195027JUL195320150000019501128Moderate

10.PIE PLOT – DISTRIBUTION OF WAR OUTCOMES

proc gchart data=historical_wars;

    pie Outcome / percent=inside value=inside;

    title "DISTRIBUTION OF WAR OUTCOMES USING PIE CHART";

run;

quit;

OUTPUT:

Pie chart of Outcome






To Visit My Previous Online Streaming Flatform Dataset:Click Here
To Visit My Previous Statistical Evaluation Of Clinical Trials:Click Here
To Visit My Previous Unlocking Retail Insights Dataset:Click Here
To Visit My Previous Sas Interview Questions-1:Click Here


Follow Us On : 


 

--- FOLLOW OUR BLOG FOR MORE INFORMATION.
--->PLEASE DO COMMENTS AND SHARE OUR BLOG.

No comments:

Post a Comment