Web scraping on Rent the RunWay's Dresses
Fashion industry underwent digital revolution rapidly. Majority of the retailers are choosing to start up the business through virtual online store, integrating diversified payment methods , efficient delivery logistics and easy return policies. Rent the Runway is a very successful example of that. Rent the Runway is an online service that provides designer dresses and accessories, laughed at Nov. 2009 , becoming more and more popular among the customers. Until February 2014, Rent the Runway has over 4 million members, 250 employees, and over 200 designer partners. The business model of Rent the Runway is quite straightforward : there are two time duration options(4 days and 8 days) for customers to rent the stuffy from their website; each dress rental includes a back-up size at no additional cost to ensure fit; customers can get a second dress style with their order for an additional cost; it also provides customers with a pre-paid, pre-addressed package to return the dress, and offers insurance fee to protect against accidents; rental prices is a fraction of retail price, include the dry cleaning and care of the garments.
This report is going to analysis the performance of dresses from Rent the Runway online website to get useful insights. Plus, the article will use statistical skills to analysis the dresses's rental price and try to use a model to predict the prices for different rental time period.
This report is mainly using "Scrapy" tool to get the information of dresses, embedded with "Selenium" tool to deal with dynamic problems during the scraping process, at the mean time to visualise how the information is scraped down . Each dress information is saved as a dictionary in "Mongoldb" database, named "testrunway" in the local machine. The raw code of construct the project by using "Scrapy" could be found here. The core file of the scraping project is called "spider", where the code is telling you how to scrap the information of the dresses on the website of Rent the Runway. Click here for the raw code of spiders.
Clean & Pre-process Data
The article is using the package of "rmongodb" in RStudio to export the data from "testrunway" database to R and then reorganised the data into a data frame for further exploratory data analysis.
There are 2072 dresses with 13 different attributes after pre-process the data.
4 Categorical variables:
- item : Dresses Name
- brand: Designer Name
- type : Defined by cut/construction
- img_url: the link to the image of the dress
9 Numerical variables:
- reviews: Number of Reviews from customers
- avgrating(0-10): Average Rating of the dress from 0 to 10 score( 0 is the worst , 10 is the best)
- fit_large, true_to_size, fit_small : Number of customers voted for fitness
- retailPrice: Retail price of the dress
- rentalPrice_4: Rental price of the dress for 4 days duration
- rentalPrice_8: Rental price of the dress for 8 days duration
- discount(%): Percentage of decreasing of the dress's retail price for renting on retail price
Exploratory Data Analysis
There are 197 different brands among the 2072 dresses, which are available for renting from Runt the Runway's online store.The top 15 brands by share are listed in the right pie chart, where "Badgley Mischaka " account for the biggest amount of share around 5%. Moreover, "Badgley Mischaka" is a brand focusing on the luxury party dresses. However, there is no brand dominate the share or over shadow other brands. In other words, Rent the Runway corporate with hundreds of designers without preferences on specific brands.
There are 9 types of dresses available for customer to choose from. Regular-dress takes over half of the percentage, followed by gown, sheath, shift,maxidress,shirt dress wrapdress and frock dress( which is other in the left pie chart)
The dresses' retail prices are vary from $65 to $7345 and most of the prices are in the range of $0 to $500. The dresses' rental prices of 4 days are vary from $30 to $800 and majority of the rental prices are in the range of $50 to $100. The rental prices of 8 days are vary from $48 to $1280. Half of the dresses' rental prices are below $70 of 4 days duration and below $112 of 8 days duration.
The discount rate is vary from 46.15% to 99.00% and the decreasing rate is around 85% on average. Most of the discount rate is about 80% to 85%. The averaging rating of the dresses is about 8 , vary from 0 to 10. Most of the dresses are in the range of 7 to 9 score of rating.
Half of the dresses have less than 40 reviews and each dress has 88 reviews on average. The Fifth Avenue Showstopper Dress has the largest number of reviews(3248), followed by Award Winner Gown( 2228) . Both of them are from the brand Badgley Mischka.
The top 20 popular brands measured by the number of reviews is in the bar chart below. Badgley Mischka is ranking at the first and the number of reviews, overshadow the other brands.
From the above analysis, we will find that the brand Badgley Mischka plays a crucial role among the dresses.
It is very interesting to see such relationship( see graph below) between rental price of 8 days and rental price of 4 days. The rental price of 8 days is the rental price of 4 days increases by 60% .
Due to such relationship, if the rental price of 4 days is predicted , it is easy to get the rental price of 8 days increasing by 60% of rental price of 4 days.
The above graph shows the relationship between rental price of 4 days and retail price of that dress. From the scatter plot, the rental price of 4 days is positive correlated to retail price of the dress.
Linear Regression Model
For the following paragraphs, the article is going to build a linear regression model to predict the rental price of the dress on 4 days duration.
The response variable is the rentalPrice_4, predictive variables are retailPrice, brand , type. The reason of choosing these variables to do the model is that the rental price of the dress is not correlated to the reviews. The dress rental price may corrected to the dress itself, such as retail price , the brand prestige, type of the dress.
Variable Selection for the Linear Model
The model with all the predictive variable : retailPrice, brand , type, show in the table below as model 1. The variance of rental price of 4 days of each dress could be explain by the three predictive variables around 85%, which is a very good predicting performance. However, the degree freedom of the Model 1 is really too high as maybe the Model is overfitting. So the report is conducting the other three model shown as Model 2, Model 3, Model 4 in the table below. Compared to each model by AIC , we will choose Model 1 as AIC focus on the accuracy of predicting. While the better decision should be Model 2 , removing the variable "brand", based on the value of BIC. The principle of BIC is that the more simple the model is, the less the value of BIC will come out. Thus, considering of the model simplistic, I choose Model 2 to predict the rental price of the dresses on 4 days duration.
Model Equation Explanation
The Model2 linear regression equation is
rentalPrice_4= 19.19418 + 0.10829* retailPrice + 11.89650 *gown + 11.15222 * maxidress+ 11.15222*regulardress+(-11.01769)*sheath +(-4.54707)*shift +(-13.07648) *shirtdress + 20.88506*slipdress+4.59122 * wrapdress
The explanation of each coefficient of the equation is list below:
- When all variables are 0 and the price on the frock type, the average expected rental price of 4 days is about $19.19; As the retail Price for address increases by one point, the rental price increases on average by about 11 penny WHILE HOLDING ALL OTHER VARIABLES CONSTANT.
- A gown dress has an average rental price that is about $12 more expensive than a frock dress WHILE HOLDING ALL OTHER VARIABLES CONSTANT.
- A maxi dress has an average rental price that is about $11 more expensive than frock dress, WHILE HOLDING ALL OTHER VARIABLES CONSTANT
- A regular dress has an $11 more expensive than frock type dress, WHILE HOLDING ALL OTHER VARIABLES CONSTANT
- A sheath dress has an $11 cheaper than frock type dress , WHILE HOLDING ALL OTHER VARIABLES CONSTANT
- A shift dress has an $5 cheaper than frock type dress, WHILE HOLDING ALL OTHER VARIABLES CONSTANT
- A shirt dress has an $13 more expensive than frock type dress, WHILE HOLDING ALL OTHER VARIABLES CONSTANT
- A slip dress has an $20 more expensive than frock type dress, WHILE HOLDING ALL OTHER VARIABLES CONSTANT
- A wrap dress has an $5 more expensive than frock type dress, WHILE HOLDING ALL OTHER VARIABLES CONSTANT
Accuracy and Validation
The Model is built by use the training data set which is account for 70% of the origin data set. The remaining 30% data is called test data set which is used to validate the model and to check how accurate the model is to predict the dresses' rental rental price of 4 days duration. After calculating the MSE (Mean Square Error) which is 1374.112 , our model is still exist a problem of such big predicting error.
The accuracy of the predicting results is not that good because the model has some server violation on the assumption of the linear regression model. In other words, the data of the dresses are not good to fit the linear model by checking the assumptions of the model. The error is not identical and independent distributed, which violate the assumption of constant variance of linear regression model. Additionally, the normality is also violated as shown in the Q-Q plot, a lot of the observations are not following the line.
Conclusion and Recommendation
- The brand of Badgley Mischka is playing a crucial role among the dresses as it has the highest share among the all the brand, ranked at the first in the number of reviews , the most popular two dresses are from this brand.
- There exists positive correlation between rentalPrice _4 and retail price of dress, but linear regression model is not that appropriate for predicting the rental price of 4 days
- Rental price of 8 days duration is increased by 60% of rental Price of 4 days
- In the future, we could use other predictive modelling approaches (regression decision tree) to predict the rental price of the dresses and check the model accuracy and assumptions.
- Could conduct sentimental analysis on the review details and could build a recommendation system based on each reviewers’ information.