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

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

401.How Efficient Are Global Data Centers? A Complete SAS Analytics Study

383.Which Pharma Distributors Are High-Risk? Can SAS Detect Delays, Temperature Violations, and Fraud?