289.Can Modern Art Data Explain What Actually Sells? – A Real-World SAS Analytics Project

Can Modern Art Data Explain What Actually Sells? – A Real-World SAS Analytics Project

 1) Create the dataset with datalines 

Purpose:Creaing the primary dataset modern_art with specified variables and formats.

options nocenter;

data work.modern_art;

    infile datalines dlm='|' dsd truncover;

    length ArtworkID $8 Title $60 Artist $40 Medium $20 Style $25 Gallery_City $30;

    input ArtworkID $ Title :$60. Artist :$40. Year_Created Medium :$20. Style :$25. 

          Price_USD Gallery_City :$30.;

    format Price_USD dollar12.2;

datalines;

A001|Chromatic Drift|Ananya Rao|2019|Acrylic on Canvas|Abstract Expressionism|12500|Mumbai

A002|Urban Echoes|Liam Patel|2021|Mixed Media|Street Modernism|8200|Bengaluru

A003|Silent Poles|Sofia Iyer|2018|Sculpture (Bronze)|Minimalist|22000|Hyderabad

A004|Neon Hymn|Arjun Mehra|2023|Digital Print|Neo-Pop|4500|Delhi

A005|Driftwood Sonata|Maya Kapoor|2017|Installation|Eco-Modernism|17800|Goa

A006|Voxel Garden|Ravi Shenoy|2020|3D-Printed Resin|Contemporary|9800|Chennai

A007|Palimpsest|Isha Menon|2015|Oil on Canvas|Abstract Expressionism|34000|Kolkata

A008|Glass Lattice|Omar Qureshi|2022|Glass Sculpture|Contemporary|15000|Pune

A009|Binary Bloom|Neha Sharma|2016|Interactive Media|Digital Avant-Garde|6400|Mumbai

A010|Folded Horizon|Karan Desai|2014|Paper Sculpture|Minimalist|5200|Ahmedabad

A011|Resonant Grid|Sara Reddy|2023|Acrylic & LED|Neo-Pop|11200|Hyderabad

A012|Salt Memory|Ritu Varma|2019|Mixed Media|Eco-Modernism|8600|Kochi

;

run;

proc print;run;

Output:

ObsArtworkIDTitleArtistMediumStyleGallery_CityYear_CreatedPrice_USD
1A001Chromatic DriftAnanya RaoAcrylic on CanvasAbstract ExpressionismMumbai2019$12,500.00
2A002Urban EchoesLiam PatelMixed MediaStreet ModernismBengaluru2021$8,200.00
3A003Silent PolesSofia IyerSculpture (Bronze)MinimalistHyderabad2018$22,000.00
4A004Neon HymnArjun MehraDigital PrintNeo-PopDelhi2023$4,500.00
5A005Driftwood SonataMaya KapoorInstallationEco-ModernismGoa2017$17,800.00
6A006Voxel GardenRavi Shenoy3D-Printed ResinContemporaryChennai2020$9,800.00
7A007PalimpsestIsha MenonOil on CanvasAbstract ExpressionismKolkata2015$34,000.00
8A008Glass LatticeOmar QureshiGlass SculptureContemporaryPune2022$15,000.00
9A009Binary BloomNeha SharmaInteractive MediaDigital Avant-GardeMumbai2016$6,400.00
10A010Folded HorizonKaran DesaiPaper SculptureMinimalistAhmedabad2014$5,200.00
11A011Resonant GridSara ReddyAcrylic & LEDNeo-PopHyderabad2023$11,200.00
12A012Salt MemoryRitu VarmaMixed MediaEco-ModernismKochi2019$8,600.00


2) Quick print of the dataset 

Purpose: PROC PRINT - quick tabular display for data inspection. 

title "MODERN ART - RAW DATA (FIRST LOOK)";

proc print data=work.modern_art(obs=7) noobs label;

    var ArtworkID Title Artist Year_Created Medium Style Price_USD Gallery_City;

run;

 Output:

MODERN ART - RAW DATA (FIRST LOOK)

ArtworkIDTitleArtistYear_CreatedMediumStylePrice_USDGallery_City
A001Chromatic DriftAnanya Rao2019Acrylic on CanvasAbstract Expressioni$12,500.00Mumbai
A002Urban EchoesLiam Patel2021Mixed MediaStreet Modernism$8,200.00Bengaluru
A003Silent PolesSofia Iyer2018Sculpture (Bronze)Minimalist$22,000.00Hyderabad
A004Neon HymnArjun Mehra2023Digital PrintNeo-Pop$4,500.00Delhi
A005Driftwood SonataMaya Kapoor2017InstallationEco-Modernism$17,800.00Goa
A006Voxel GardenRavi Shenoy20203D-Printed ResinContemporary$9,800.00Chennai
A007PalimpsestIsha Menon2015Oil on CanvasAbstract Expressioni$34,000.00Kolkata

3) Basic numeric summary on price 

Purpose: PROC MEANS - summary statistics for continuous variable Price_USD. 

proc means data=work.modern_art n mean median std min max maxdec=2;

    var Price_USD;

    title "PRICE SUMMARY (USD)";

run;

 Output:

PRICE SUMMARY (USD)

The MEANS Procedure

Analysis Variable : Price_USD
NMeanMedianStd DevMinimumMaximum
1212933.3310500.008430.284500.0034000.00

4) Frequency distribution of Style and Medium 

Purpose: PROC FREQ - count artworks by Style and Medium to see distribution. 

proc freq data=work.modern_art order=freq;

    tables Style Medium / nocum nopercent;

    title "FREQUENCY: STYLE AND MEDIUM";

run;

 Output:

FREQUENCY: STYLE AND MEDIUM

The FREQ Procedure

StyleFrequency
Abstract Expressioni2
Contemporary2
Eco-Modernism2
Minimalist2
Neo-Pop2
Digital Avant-Garde1
Street Modernism1
MediumFrequency
Mixed Media2
3D-Printed Resin1
Acrylic & LED1
Acrylic on Canvas1
Digital Print1
Glass Sculpture1
Installation1
Interactive Media1
Oil on Canvas1
Paper Sculpture1
Sculpture (Bronze)1

5) Sort dataset by Style and descending Price 

Purpose: PROC SORT - order data for grouped reporting. 

proc sort data=work.modern_art out=work.modern_art_sorted;

    by Style descending Price_USD;

run;

proc print;run;

Output:

ObsArtworkIDTitleArtistMediumStyleGallery_CityYear_CreatedPrice_USD
1A007PalimpsestIsha MenonOil on CanvasAbstract ExpressioniKolkata2015$34,000.00
2A001Chromatic DriftAnanya RaoAcrylic on CanvasAbstract ExpressioniMumbai2019$12,500.00
3A008Glass LatticeOmar QureshiGlass SculptureContemporaryPune2022$15,000.00
4A006Voxel GardenRavi Shenoy3D-Printed ResinContemporaryChennai2020$9,800.00
5A009Binary BloomNeha SharmaInteractive MediaDigital Avant-GardeMumbai2016$6,400.00
6A005Driftwood SonataMaya KapoorInstallationEco-ModernismGoa2017$17,800.00
7A012Salt MemoryRitu VarmaMixed MediaEco-ModernismKochi2019$8,600.00
8A003Silent PolesSofia IyerSculpture (Bronze)MinimalistHyderabad2018$22,000.00
9A010Folded HorizonKaran DesaiPaper SculptureMinimalistAhmedabad2014$5,200.00
10A011Resonant GridSara ReddyAcrylic & LEDNeo-PopHyderabad2023$11,200.00
11A004Neon HymnArjun MehraDigital PrintNeo-PopDelhi2023$4,500.00
12A002Urban EchoesLiam PatelMixed MediaStreet ModernismBengaluru2021$8,200.00


6) Use PROC REPORT for a professional grouped table 

Purpose: PROC REPORT - formatted grouped report showing artworks by Style and Gallery. 

proc report data=work.modern_art_sorted nowd headline headskip;

    column Style Gallery_City Artist Title Year_Created Price_USD;

    define Style / group 'Style';

    define Gallery_City / group 'Gallery City';

    define Artist / display 'Artist';

    define Title / display 'Title';

    define Year_Created / analysis 'Year';

    define Price_USD / analysis sum format=dollar12.2 'Price (USD)';

    title "GROUPED REPORT: ARTWORKS BY STYLE & GALLERY";

run;

 Output:

GROUPED REPORT: ARTWORKS BY STYLE & GALLERY

StyleGallery CityArtistTitleYearPrice (USD)
Abstract ExpressioniKolkataIsha MenonPalimpsest2015$34,000.00
 MumbaiAnanya RaoChromatic Drift2019$12,500.00
ContemporaryChennaiRavi ShenoyVoxel Garden2020$9,800.00
 PuneOmar QureshiGlass Lattice2022$15,000.00
Digital Avant-GardeMumbaiNeha SharmaBinary Bloom2016$6,400.00
Eco-ModernismGoaMaya KapoorDriftwood Sonata2017$17,800.00
 KochiRitu VarmaSalt Memory2019$8,600.00
MinimalistAhmedabadKaran DesaiFolded Horizon2014$5,200.00
 HyderabadSofia IyerSilent Poles2018$22,000.00
Neo-PopDelhiArjun MehraNeon Hymn2023$4,500.00
 HyderabadSara ReddyResonant Grid2023$11,200.00
Street ModernismBengaluruLiam PatelUrban Echoes2021$8,200.00

7) PROC SQL: create a summary table with counts and average price per style 

Purpose: PROC SQL - produce summary aggregations by Style. 

proc sql;

    create table work.style_summary as

    select Style,

           count(*) as N_Artworks,

           mean(Price_USD) as Avg_Price format=dollar12.2,

           min(Price_USD) as Min_Price format=dollar12.2,

           max(Price_USD) as Max_Price format=dollar12.2

    from work.modern_art

    group by Style

    order by N_Artworks desc;

quit;

proc print;run;

Output:

ObsStyleN_ArtworksAvg_PriceMin_PriceMax_Price
1Neo-Pop2$7,850.00$4,500.00$11,200.00
2Minimalist2$13,600.00$5,200.00$22,000.00
3Abstract Expressioni2$23,250.00$12,500.00$34,000.00
4Contemporary2$12,400.00$9,800.00$15,000.00
5Eco-Modernism2$13,200.00$8,600.00$17,800.00
6Digital Avant-Garde1$6,400.00$6,400.00$6,400.00
7Street Modernism1$8,200.00$8,200.00$8,200.00


8) Macro to create price band reports across the whole dataset 

Purpose: %price_band_report - bucket artworks into price bands and show counts per band. 

%macro price_band_report(lb=, ub=);

    %local dsname;

    %let dsname = priceband_&lb._to_&ub;

    proc sql;

        create table work.&dsname as

        select *, case

                   when Price_USD < &lb then "<&lb"

                   when Price_USD between &lb and &ub then "&lb-&ub"

                   else ">&ub"

                   end as Price_Band

        from work.modern_art;

    quit;

    proc print;run;

    title "PRICE BAND REPORT: &lb to &ub";

    proc freq data=work.&dsname;

        tables Price_Band / nocum;

    run;

%mend price_band_report;


%price_band_report(lb=0, ub=8000);

Output:

ObsArtworkIDTitleArtistMediumStyleGallery_CityYear_CreatedPrice_USDPrice_Band
1A001Chromatic DriftAnanya RaoAcrylic on CanvasAbstract ExpressionismMumbai2019$12,500.00>8000
2A002Urban EchoesLiam PatelMixed MediaStreet ModernismBengaluru2021$8,200.00>8000
3A003Silent PolesSofia IyerSculpture (Bronze)MinimalistHyderabad2018$22,000.00>8000
4A004Neon HymnArjun MehraDigital PrintNeo-PopDelhi2023$4,500.000-8000
5A005Driftwood SonataMaya KapoorInstallationEco-ModernismGoa2017$17,800.00>8000
6A006Voxel GardenRavi Shenoy3D-Printed ResinContemporaryChennai2020$9,800.00>8000
7A007PalimpsestIsha MenonOil on CanvasAbstract ExpressionismKolkata2015$34,000.00>8000
8A008Glass LatticeOmar QureshiGlass SculptureContemporaryPune2022$15,000.00>8000
9A009Binary BloomNeha SharmaInteractive MediaDigital Avant-GardeMumbai2016$6,400.000-8000
10A010Folded HorizonKaran DesaiPaper SculptureMinimalistAhmedabad2014$5,200.000-8000
11A011Resonant GridSara ReddyAcrylic & LEDNeo-PopHyderabad2023$11,200.00>8000
12A012Salt MemoryRitu VarmaMixed MediaEco-ModernismKochi2019$8,600.00>8000

PRICE BAND REPORT: 0 to 8000

The FREQ Procedure

Price_BandFrequencyPercent
0-8000325.00
>8000975.00

%price_band_report(lb=8001, ub=20000);

Output:

ObsArtworkIDTitleArtistMediumStyleGallery_CityYear_CreatedPrice_USDPrice_Band
1A001Chromatic DriftAnanya RaoAcrylic on CanvasAbstract ExpressionismMumbai2019$12,500.008001-20000
2A002Urban EchoesLiam PatelMixed MediaStreet ModernismBengaluru2021$8,200.008001-20000
3A003Silent PolesSofia IyerSculpture (Bronze)MinimalistHyderabad2018$22,000.00>20000
4A004Neon HymnArjun MehraDigital PrintNeo-PopDelhi2023$4,500.00<8001
5A005Driftwood SonataMaya KapoorInstallationEco-ModernismGoa2017$17,800.008001-20000
6A006Voxel GardenRavi Shenoy3D-Printed ResinContemporaryChennai2020$9,800.008001-20000
7A007PalimpsestIsha MenonOil on CanvasAbstract ExpressionismKolkata2015$34,000.00>20000
8A008Glass LatticeOmar QureshiGlass SculptureContemporaryPune2022$15,000.008001-20000
9A009Binary BloomNeha SharmaInteractive MediaDigital Avant-GardeMumbai2016$6,400.00<8001
10A010Folded HorizonKaran DesaiPaper SculptureMinimalistAhmedabad2014$5,200.00<8001
11A011Resonant GridSara ReddyAcrylic & LEDNeo-PopHyderabad2023$11,200.008001-20000
12A012Salt MemoryRitu VarmaMixed MediaEco-ModernismKochi2019$8,600.008001-20000

PRICE BAND REPORT: 8001 to 20000

The FREQ Procedure

Price_BandFrequencyPercent
8001-20000758.33
<8001325.00
>20000216.67

9) Simple QC: check for missing critical variables 

Purpose: DATA/QC + PROC FREQ - find records with missing critical values.

data work.qc_checks;

    set work.modern_art;

    missing_flag = (missing(ArtworkID) or missing(Title) or missing(Artist) or missing(Price_USD));

run;

proc print;run;

Output:

ObsArtworkIDTitleArtistMediumStyleGallery_CityYear_CreatedPrice_USDmissing_flag
1A001Chromatic DriftAnanya RaoAcrylic on CanvasAbstract ExpressionismMumbai2019$12,500.000
2A002Urban EchoesLiam PatelMixed MediaStreet ModernismBengaluru2021$8,200.000
3A003Silent PolesSofia IyerSculpture (Bronze)MinimalistHyderabad2018$22,000.000
4A004Neon HymnArjun MehraDigital PrintNeo-PopDelhi2023$4,500.000
5A005Driftwood SonataMaya KapoorInstallationEco-ModernismGoa2017$17,800.000
6A006Voxel GardenRavi Shenoy3D-Printed ResinContemporaryChennai2020$9,800.000
7A007PalimpsestIsha MenonOil on CanvasAbstract ExpressionismKolkata2015$34,000.000
8A008Glass LatticeOmar QureshiGlass SculptureContemporaryPune2022$15,000.000
9A009Binary BloomNeha SharmaInteractive MediaDigital Avant-GardeMumbai2016$6,400.000
10A010Folded HorizonKaran DesaiPaper SculptureMinimalistAhmedabad2014$5,200.000
11A011Resonant GridSara ReddyAcrylic & LEDNeo-PopHyderabad2023$11,200.000
12A012Salt MemoryRitu VarmaMixed MediaEco-ModernismKochi2019$8,600.000

proc freq data=work.qc_checks;

    tables missing_flag / nocum;

    title "QC: MISSING CRITICAL FIELDS";

run;

  Output:

QC: MISSING CRITICAL FIELDS

The FREQ Procedure

missing_flagFrequencyPercent
012100.00



To Visit My Previous Proc  Means And Nway Option:Click Here
To Visit My Previous Proc Means And CharType Option:Click Here
To Visit My Previous SAS Functions:Click Here
To Visit My Previous Length Statement Using In Many Ways:Click Here



Follow Us On : 


 


--- FOLLOW OUR BLOG FOR MORE INFORMATION.

--->PLEASE DO COMMENTS AND SHARE OUR BLOG.

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?

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

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