iaiai_data <- read.xlsx("/Users/sushi/Downloads/IAIAI-Sakshi/IAIAI_Dashboard/data/AuraArtData_2010q1_onwards.xlsx")

iaiai_data <- iaiai_data %>%
  mutate(
    Price = as.numeric(Price),
    Area = as.numeric(Area),
    ArtistAge = as.numeric(ArtistAge),
    YQ = as.factor(YQ),
    Artist = as.factor(Artist),
    AuctionHouse = as.factor(AuctionHouse),
    Sketch = as.factor(Sketch),
    TitledBy = as.factor(TitledBy),
    Medium = as.factor(Medium),
    Base = as.factor(Base)
  )
  1. Univariate Outlier Analysis

Boxplots for numeric variables to visually inspect for outliers

numeric_vars <- sapply(iaiai_data, is.numeric)

for (v in names(iaiai_data)[numeric_vars]) {
boxplot(
iaiai_data[[v]],
main = v,
col = "#AED6F1"
)
}

  1. Baseline Hedonic Model
model_ols <- lm(
log(Price) ~ ArtistAge + Sketch + TitledBy + Medium +
Base + Artist + log(Area) +
AuctionHouse + YQ,
data = iaiai_data
)

s=summary(model_ols)
glance(model_ols)[, 1:6]
glance(model_ols)[, 7:12]
coeff_table <- s$coefficients
# Identify significant variables at 5% level
significant <- coeff_table[, "Pr(>|t|)"] < 0.05
sig_predictors <- rownames(coeff_table)[significant]
sig_predictors <- sig_predictors[sig_predictors != "(Intercept)"]

# Print significant predictors
sig_predictors
##  [1] "ArtistAge"                  "Sketch1"                   
##  [3] "TitledByArtist"             "TitledByOtherPeople"       
##  [5] "MediumOil"                  "ArtistB Prabha"            
##  [7] "ArtistBadri Narayan"        "ArtistBhupen Khakhar"      
##  [9] "ArtistBikash Bhattacharjee" "ArtistFN Souza"            
## [11] "ArtistGanesh Pyne"          "ArtistJamini Roy"          
## [13] "ArtistJehangir Sabavala"    "ArtistK Laxma Goud"        
## [15] "ArtistKG Subramanyan"       "ArtistKrishen Khanna"      
## [17] "ArtistLalu Prasad Shaw"     "ArtistManjit Bawa"         
## [19] "ArtistManu Parekh"          "ArtistRam Kumar"           
## [21] "ArtistSakti Burman"         "ArtistSatish Gujral"       
## [23] "ArtistSH Raza"              "ArtistTyeb Mehta"          
## [25] "ArtistVS Gaitonde"          "log(Area)"                 
## [27] "AuctionHouseChristies"      "AuctionHouseOthers"        
## [29] "AuctionHouseSaffronart"     "AuctionHouseSothebys"      
## [31] "AuctionHouseStoryLtd"       "YQ20124"                   
## [33] "YQ20154"                    "YQ20163"                   
## [35] "YQ20173"                    "YQ20183"                   
## [37] "YQ20184"                    "YQ20213"                   
## [39] "YQ20221"                    "YQ20223"                   
## [41] "YQ20232"                    "YQ20233"                   
## [43] "YQ20234"                    "YQ20241"                   
## [45] "YQ20242"                    "YQ20243"                   
## [47] "YQ20244"                    "YQ20251"                   
## [49] "YQ20252"                    "YQ20253"
  1. OLS Diagnostic Plots
plot(model_ols)

5,468,5064,3156,6189 are the points possibly problematic to the model.

problem_rows <- c(5, 468, 5064, 3156, 6189)
iaiai_data[problem_rows, ]

Very small works sold at exceptionally high prices For example, a painting with an area of 0.08 square units sold for ₹1,195,950 (Jamini Roy, Christie’s), while another work with an area of only 0.01 square units sold for ₹1,655,625 (Jamini Roy, Christie’s).

Large works sold at relatively modest prices For instance, a work with an area of 12.49 square units was sold for ₹245,000 (Jamini Roy, Other auction houses).

Certain transactions deviate substantially from model-predicted prices despite strong artist and medium fixed effects.
Examples include a 0.77 square unit work sold for ₹4,790 (Jamini Roy, Gouache on Paper) and a 1.69 square unit work sold for ₹180,000 (Ganesh Pyne, Oil on Canvas).

#Outlier and Influence Diagnostics

  1. Outlier test (Bonferroni p-values)
outlier_test <- outlierTest(model_ols)
print(outlier_test)  # the most extreme outliers
##        rstudent unadjusted p-value Bonferroni p
## 3156  -6.121014         9.6122e-10   1.0774e-05
## 5064   5.692490         1.2838e-08   1.4390e-04
## 6189  -5.318167         1.0685e-07   1.1977e-03
## 10571  5.258828         1.4767e-07   1.6553e-03
## 2820  -5.220582         1.8159e-07   2.0354e-03
## 5777   5.187090         2.1737e-07   2.4365e-03
## 6932  -5.185730         2.1896e-07   2.4543e-03
## 8482   4.806938         1.5527e-06   1.7404e-02
## 8953   4.736372         2.2027e-06   2.4691e-02
## 3153  -4.718481         2.4051e-06   2.6959e-02

Interpretation: The observations are statistically significant outliers because their Bonferroni-adjusted p-values are below the 5% significance level, leading to rejection of the null hypothesis that their residuals are consistent with the model.

  1. Computing Cook’s Distance for each observation

Taking threshold for Cook’s Distance as 4/(n-p-1) where n: No. of Observations p: No. of predictors

# Cook's Distance
cooks_vals <- cooks.distance(model_ols)

cooks_df <- data.frame(
  Observation = 1:length(cooks_vals),
  CooksDistance = cooks_vals
)

# Compute threshold
n <- nrow(iaiai_data)
p <- length(coef(model_ols)) - 1
threshold <- 4 / (n - p - 1)

# Plot Cook's Distance
cd_plot <- ggplot(cooks_df, aes(x = Observation, y = CooksDistance)) +
  geom_segment(aes(xend = Observation, yend = 0), color = "steelblue") +
  geom_hline(yintercept = threshold, color = "red", linetype = "dashed") +
  labs(
    x = "Observation Index",
    y = "Cook's Distance"
  ) +
  theme_minimal()

cd_plot

# Save plot
options(scipen = 999)
ggsave("iaiai_cooks_distance.png", plot = cd_plot, width = 7, height = 4, dpi = 300)

(f) Calculate hat values (leverage)

Threshold for hat values = 2*(p+1)/n

# Hat (leverage) values
hat_vals <- hatvalues(model_ols)

plot(
  hat_vals,
  type = "h",
  main = "Hat Values (Leverage) – IAIAI",
  ylab = "Hat Value",
  xlab = "Observation Index"
)

leverage_threshold <- 2 * (p + 1) / n
abline(h = leverage_threshold, col = "red", lty = 2, lwd = 3)

print(paste("Leverage Threshold:", round(leverage_threshold, 4)))
## [1] "Leverage Threshold: 0.0202"
  1. Influence Plot to visualize influential points
library(ggplot2)

# Extract diagnostics
diag_df <- data.frame(
  leverage = hatvalues(model_ols),
  std_resid = rstandard(model_ols),
  cooks = cooks.distance(model_ols)
)

# Cook's Distance bubble plot
cooks_plot <- ggplot(diag_df, aes(x = leverage, y = std_resid)) +
  geom_point(
    aes(size = cooks),
    alpha = 0.6,
    color = "black"
  ) +
  geom_smooth(
    method = "loess",
    se = FALSE,
    color = "blue",
    linewidth = 1
  ) +
  scale_size_continuous(
    name = "Cook's Distance",
    range = c(2, 10)
  ) +
  labs(
    x = "Leverage",
    y = "Standardized Residuals"
  ) +
  theme_minimal(base_size = 12)

cooks_plot

iaiai_data %>%group_by(YQ) %>% summarize(Frequency = n())
diagnostics_export <- iaiai_data %>%
  mutate(
    RowID = row_number(),
    Leverage = hatvalues(model_ols),
    CooksDistance = cooks.distance(model_ols),
    Std_Residual = rstandard(model_ols),
    Predicted_LogPrice = fitted(model_ols),
    Predicted_Price = exp(Predicted_LogPrice)
  ) %>%
  dplyr::select(
    RowID,
    Artist,
    YQ,
    Price,
    Predicted_Price,
    Area,
    Medium,
    AuctionHouse,
    Leverage,
    Std_Residual,
    CooksDistance
  ) %>%
  arrange(desc(CooksDistance))

write.xlsx(
  diagnostics_export,
  file = "IAIAI_OLS_Diagnostics_Influential_Observations.xlsx",
  rowNames = FALSE
)
  1. Removing Influential Observations and Re-fitting IAIAI Model 528 observation were removed,4.7% of observations, Leverage Threshold: 0.0202
# Identify influential observations using Cook's Distance
influential_points <- which(cooks_vals > threshold)

key_cols <- c(
  "RowID", "Price", "Artist", "Area",
  "Medium", "AuctionHouse", "YQ"
)

write.xlsx( influential_points,file = "IAIAI_Influential_Observations.xlsx",rowNames = FALSE)
# Remove influential observations
clean_data <- iaiai_data[-influential_points, ]
dim(clean_data)
## [1] 10684    16
model_clean <- lm(
  log(Price) ~ ArtistAge + Sketch + TitledBy + Medium +
    Base + Artist + log(Area) + AuctionHouse + YQ,
  data = clean_data
)

glance(model_clean)[, 1:6]
glance(model_clean)[, 7:12]

(i)Forming Index with outliers removed

coefficients <- coef(model_clean)
intercept <- coefficients["(Intercept)"]
index_data <- data.frame(Index = coefficients[grep("^YQ", names(coefficients))])
index_data$YQ <- rownames(index_data)
rownames(index_data) <- NULL
index_data <- index_data %>% relocate(YQ, .before = Index)
index_data <- index_data %>% add_row(YQ = "YQ20101", Index = 0, .before = 1)
index_data <- index_data %>% mutate( Index = Index + intercept, YQ = substr(YQ, 3, 7))
index_data$YQ <- as.numeric(index_data$YQ)
index_data <- index_data %>% arrange(YQ)
index_data$Index <- exp(index_data$Index)

base <- index_data$Index[1]
index_data <- index_data %>%
  mutate(Index = Index / base * 100)

index_data$YQ <- as.character(index_data$YQ)

(k)IndexPlot

library(ggplot2)

index_plot <- ggplot(index_data, aes(x = as.factor(YQ), y = Index, group = 1)) +
  geom_line(color = "darkslateblue", linewidth = 1) +
  geom_point(color = "darkslateblue", size = 2) +
  labs(x = "Year–Quarter", y = "IAIAI Art Price Index") +
  scale_x_discrete(limits = index_data$YQ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, size = 7),
    axis.title = element_text(size = 12),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank()
  )

index_plot

ggsave(
  "IAIAI_Index_Plot.png",
  plot = index_plot,
  width = 7,
  height = 4,
  dpi = 300
)

(l)Robust Regression Huber Weights

robreg1 <- rlm( log(Price) ~ ArtistAge + Sketch + TitledBy + Medium + Base + Artist + log(Area) + AuctionHouse + YQ,data = iaiai_data)
s1 <- summary(robreg1)
s1
## 
## Call: rlm(formula = log(Price) ~ ArtistAge + Sketch + TitledBy + Medium + 
##     Base + Artist + log(Area) + AuctionHouse + YQ, data = iaiai_data)
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -4.23846 -0.40548 -0.01627  0.40335  3.92115 
## 
## Coefficients:
##                            Value    Std. Error t value 
## (Intercept)                 10.8586   1.0380    10.4613
## ArtistAge                    0.0246   0.0060     4.1203
## Sketch1                     -0.4019   0.0254   -15.8014
## TitledByArtist               0.2320   0.0163    14.2367
## TitledByOtherPeople          0.1437   0.0207     6.9574
## Medium0.Ink                  0.4932   0.6423     0.7679
## MediumAcrylic                0.9326   0.6430     1.4504
## MediumCharcoal               0.5082   0.6436     0.7895
## MediumGouache                1.0337   0.6435     1.6064
## MediumMixed                  0.8273   0.6426     1.2873
## MediumOil                    1.4398   0.6431     2.2390
## MediumOthers                 0.5331   0.6427     0.8295
## MediumPastel                 0.5425   0.6434     0.8433
## MediumPencil                 0.5598   0.9074     0.6169
## MediumTempera                1.1507   0.6439     1.7870
## MediumWaterColor             0.6424   0.6426     0.9996
## Base0.Others                -1.0808   0.6413    -1.6855
## BaseBoard                   -1.0113   0.6408    -1.5781
## BaseCanvas                  -0.7331   0.6409    -1.1438
## BasePaper                   -1.2413   0.6404    -1.9382
## ArtistAnjolie Ela Menon      0.0722   0.0932     0.7750
## ArtistB Prabha              -0.9061   0.0601   -15.0776
## ArtistBadri Narayan         -0.4318   0.0534    -8.0870
## ArtistBhupen Khakhar         1.0318   0.0684    15.0857
## ArtistBikash Bhattacharjee  -0.0956   0.0923    -1.0361
## ArtistFN Souza               0.4458   0.0448     9.9455
## ArtistGanesh Pyne            1.2169   0.0750    16.2360
## ArtistJamini Roy            -1.1514   0.2498    -4.6099
## ArtistJehangir Sabavala      0.7868   0.0723    10.8876
## ArtistJogen Chowdhury        0.1358   0.0800     1.6976
## ArtistK Laxma Goud          -0.2450   0.0876    -2.7985
## ArtistKG Subramanyan        -0.6816   0.0563   -12.0977
## ArtistKrishen Khanna        -0.7161   0.0451   -15.8726
## ArtistLalu Prasad Shaw      -0.6789   0.0769    -8.8286
## ArtistManjit Bawa            1.0007   0.0942    10.6267
## ArtistManu Parekh           -1.2987   0.0843   -15.4044
## ArtistMF Husain              0.2351   0.0825     2.8494
## ArtistRam Kumar             -0.1867   0.0509    -3.6705
## ArtistSakti Burman          -0.3510   0.0625    -5.6117
## ArtistSatish Gujral         -0.4139   0.0688    -6.0187
## ArtistSH Raza                0.7271   0.0551    13.1943
## ArtistThota Vaikuntam       -0.0854   0.0967    -0.8831
## ArtistTyeb Mehta             2.0300   0.0700    28.9878
## ArtistVS Gaitonde            2.2863   0.0665    34.3806
## log(Area)                    0.6559   0.0069    94.6010
## AuctionHouseChristies        0.1747   0.0253     6.9098
## AuctionHouseOthers          -0.2102   0.0262    -8.0386
## AuctionHousePundoles         0.0149   0.0275     0.5440
## AuctionHouseSaffronart       0.1116   0.0192     5.7998
## AuctionHouseSothebys         0.2399   0.0315     7.6180
## AuctionHouseStoryLtd        -0.6242   0.0239   -26.1023
## YQ20102                     -0.1636   0.1561    -1.0485
## YQ20103                      0.0964   0.1478     0.6519
## YQ20104                     -0.1065   0.1891    -0.5636
## YQ20111                     -0.0681   0.1333    -0.5108
## YQ20112                      0.0391   0.1438     0.2722
## YQ20113                      0.0296   0.1315     0.2253
## YQ20114                      0.2015   0.1621     1.2430
## YQ20121                     -0.0785   0.1290    -0.6086
## YQ20122                     -0.2058   0.1327    -1.5510
## YQ20123                     -0.1201   0.1277    -0.9409
## YQ20124                     -0.2412   0.1405    -1.7168
## YQ20131                     -0.1671   0.1295    -1.2906
## YQ20132                     -0.0572   0.1306    -0.4379
## YQ20133                     -0.2269   0.1321    -1.7177
## YQ20134                      0.0711   0.1366     0.5205
## YQ20141                      0.1174   0.1285     0.9133
## YQ20142                      0.1051   0.1374     0.7652
## YQ20143                      0.0670   0.1303     0.5144
## YQ20144                      0.2714   0.1307     2.0772
## YQ20151                      0.1643   0.1327     1.2377
## YQ20152                      0.1880   0.1349     1.3931
## YQ20153                      0.0859   0.1331     0.6452
## YQ20154                      0.4477   0.1444     3.0999
## YQ20161                      0.1648   0.1364     1.2078
## YQ20162                      0.1865   0.1413     1.3193
## YQ20163                      0.4582   0.1451     3.1568
## YQ20164                      0.1283   0.1329     0.9652
## YQ20171                      0.2794   0.1390     2.0095
## YQ20172                      0.1399   0.1338     1.0462
## YQ20173                      0.3580   0.1420     2.5216
## YQ20174                      0.2130   0.1356     1.5701
## YQ20181                      0.3178   0.1349     2.3550
## YQ20182                      0.1874   0.1378     1.3596
## YQ20183                      0.3492   0.1391     2.5098
## YQ20184                      0.3550   0.1360     2.6094
## YQ20191                      0.2367   0.1415     1.6724
## YQ20192                      0.2338   0.1395     1.6763
## YQ20193                      0.1505   0.1433     1.0501
## YQ20194                      0.1953   0.1407     1.3877
## YQ20201                      0.3093   0.1484     2.0852
## YQ20202                      0.1751   0.1396     1.2543
## YQ20203                      0.2867   0.1372     2.0895
## YQ20204                      0.2626   0.1400     1.8755
## YQ20211                      0.2072   0.1393     1.4875
## YQ20212                      0.3520   0.1412     2.4930
## YQ20213                      0.3721   0.1393     2.6715
## YQ20214                      0.2932   0.1395     2.1026
## YQ20221                      0.3636   0.1508     2.4114
## YQ20222                      0.3159   0.1449     2.1810
## YQ20223                      0.5254   0.1486     3.5346
## YQ20224                      0.2866   0.1489     1.9256
## YQ20231                      0.3071   0.1487     2.0650
## YQ20232                      0.3528   0.1502     2.3497
## YQ20233                      0.6522   0.1492     4.3719
## YQ20234                      0.5554   0.1500     3.7029
## YQ20241                      0.5280   0.1503     3.5128
## YQ20242                      0.6602   0.1512     4.3675
## YQ20243                      0.7878   0.1509     5.2202
## YQ20244                      0.6819   0.1516     4.4971
## YQ20251                      0.4766   0.1547     3.0813
## YQ20252                      0.7593   0.1549     4.9026
## YQ20253                      1.0457   0.1556     6.7198
## 
## Residual standard error: 0.6002 on 11099 degrees of freedom
glance(robreg1)[1:4]
glance(robreg1)[5:7]
fitted_values1 <- fitted(robreg1)
r_squared_huber <- cor(log(iaiai_data$Price), fitted_values1)^2
r_squared_huber
## [1] 0.8479423
rlm_coef <- coef(s1)

rlm_coef <- cbind(
  rlm_coef,
  "p.value" = 2 * (1 - pnorm(abs(rlm_coef[, "t value"])))
)

signif_predictors_huber <- rownames(rlm_coef)[rlm_coef[, "p.value"] < 0.05]
signif_predictors_huber <- signif_predictors_huber[
  signif_predictors_huber != "(Intercept)"
]

signif_predictors_huber
##  [1] "ArtistAge"               "Sketch1"                
##  [3] "TitledByArtist"          "TitledByOtherPeople"    
##  [5] "MediumOil"               "ArtistB Prabha"         
##  [7] "ArtistBadri Narayan"     "ArtistBhupen Khakhar"   
##  [9] "ArtistFN Souza"          "ArtistGanesh Pyne"      
## [11] "ArtistJamini Roy"        "ArtistJehangir Sabavala"
## [13] "ArtistK Laxma Goud"      "ArtistKG Subramanyan"   
## [15] "ArtistKrishen Khanna"    "ArtistLalu Prasad Shaw" 
## [17] "ArtistManjit Bawa"       "ArtistManu Parekh"      
## [19] "ArtistMF Husain"         "ArtistRam Kumar"        
## [21] "ArtistSakti Burman"      "ArtistSatish Gujral"    
## [23] "ArtistSH Raza"           "ArtistTyeb Mehta"       
## [25] "ArtistVS Gaitonde"       "log(Area)"              
## [27] "AuctionHouseChristies"   "AuctionHouseOthers"     
## [29] "AuctionHouseSaffronart"  "AuctionHouseSothebys"   
## [31] "AuctionHouseStoryLtd"    "YQ20144"                
## [33] "YQ20154"                 "YQ20163"                
## [35] "YQ20171"                 "YQ20173"                
## [37] "YQ20181"                 "YQ20183"                
## [39] "YQ20184"                 "YQ20201"                
## [41] "YQ20203"                 "YQ20212"                
## [43] "YQ20213"                 "YQ20214"                
## [45] "YQ20221"                 "YQ20222"                
## [47] "YQ20223"                 "YQ20231"                
## [49] "YQ20232"                 "YQ20233"                
## [51] "YQ20234"                 "YQ20241"                
## [53] "YQ20242"                 "YQ20243"                
## [55] "YQ20244"                 "YQ20251"                
## [57] "YQ20252"                 "YQ20253"

Bisquare Weighting

robreg2 <- rlm(log(Price) ~ ArtistAge + Sketch + TitledBy + Medium + Base + Artist + log(Area) + AuctionHouse + YQ,data = iaiai_data,
  psi = psi.bisquare)
s2 <- summary(robreg2)
s2
## 
## Call: rlm(formula = log(Price) ~ ArtistAge + Sketch + TitledBy + Medium + 
##     Base + Artist + log(Area) + AuctionHouse + YQ, data = iaiai_data, 
##     psi = psi.bisquare)
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -4.25640 -0.39660 -0.01087  0.40728  3.93327 
## 
## Coefficients:
##                            Value    Std. Error t value 
## (Intercept)                 10.8504   1.0377    10.4558
## ArtistAge                    0.0240   0.0060     4.0185
## Sketch1                     -0.4054   0.0254   -15.9432
## TitledByArtist               0.2163   0.0163    13.2784
## TitledByOtherPeople          0.1408   0.0207     6.8189
## Medium0.Ink                  0.5145   0.6421     0.8012
## MediumAcrylic                0.9649   0.6428     1.5011
## MediumCharcoal               0.5420   0.6435     0.8422
## MediumGouache                1.0494   0.6433     1.6312
## MediumMixed                  0.8415   0.6425     1.3097
## MediumOil                    1.4586   0.6429     2.2687
## MediumOthers                 0.5556   0.6426     0.8647
## MediumPastel                 0.5732   0.6433     0.8910
## MediumPencil                 0.5847   0.9072     0.6446
## MediumTempera                1.1727   0.6438     1.8216
## MediumWaterColor             0.6626   0.6425     1.0312
## Base0.Others                -1.1047   0.6411    -1.7230
## BaseBoard                   -1.0416   0.6407    -1.6258
## BaseCanvas                  -0.7446   0.6407    -1.1621
## BasePaper                   -1.2651   0.6403    -1.9759
## ArtistAnjolie Ela Menon      0.1177   0.0932     1.2637
## ArtistB Prabha              -0.8667   0.0601   -14.4266
## ArtistBadri Narayan         -0.3757   0.0534    -7.0377
## ArtistBhupen Khakhar         1.0832   0.0684    15.8415
## ArtistBikash Bhattacharjee  -0.0555   0.0923    -0.6011
## ArtistFN Souza               0.4846   0.0448    10.8132
## ArtistGanesh Pyne            1.2380   0.0749    16.5207
## ArtistJamini Roy            -1.0767   0.2497    -4.3118
## ArtistJehangir Sabavala      0.8339   0.0723    11.5410
## ArtistJogen Chowdhury        0.1251   0.0800     1.5632
## ArtistK Laxma Goud          -0.2171   0.0875    -2.4804
## ArtistKG Subramanyan        -0.6320   0.0563   -11.2188
## ArtistKrishen Khanna        -0.6751   0.0451   -14.9675
## ArtistLalu Prasad Shaw      -0.6479   0.0769    -8.4262
## ArtistManjit Bawa            1.0391   0.0942    11.0365
## ArtistManu Parekh           -1.2723   0.0843   -15.0947
## ArtistMF Husain              0.2874   0.0825     3.4843
## ArtistRam Kumar             -0.1637   0.0508    -3.2205
## ArtistSakti Burman          -0.3191   0.0625    -5.1035
## ArtistSatish Gujral         -0.3698   0.0688    -5.3781
## ArtistSH Raza                0.7640   0.0551    13.8666
## ArtistThota Vaikuntam       -0.0757   0.0967    -0.7835
## ArtistTyeb Mehta             2.1009   0.0700    30.0060
## ArtistVS Gaitonde            2.3567   0.0665    35.4473
## log(Area)                    0.6549   0.0069    94.4824
## AuctionHouseChristies        0.1604   0.0253     6.3448
## AuctionHouseOthers          -0.2018   0.0261    -7.7173
## AuctionHousePundoles         0.0123   0.0274     0.4479
## AuctionHouseSaffronart       0.1132   0.0192     5.8837
## AuctionHouseSothebys         0.2215   0.0315     7.0368
## AuctionHouseStoryLtd        -0.6083   0.0239   -25.4409
## YQ20102                     -0.1379   0.1560    -0.8840
## YQ20103                      0.1292   0.1478     0.8743
## YQ20104                     -0.0726   0.1890    -0.3841
## YQ20111                     -0.0217   0.1332    -0.1632
## YQ20112                      0.0829   0.1438     0.5765
## YQ20113                      0.0522   0.1315     0.3973
## YQ20114                      0.2515   0.1621     1.5518
## YQ20121                     -0.0550   0.1290    -0.4268
## YQ20122                     -0.1880   0.1327    -1.4171
## YQ20123                     -0.0983   0.1276    -0.7704
## YQ20124                     -0.2267   0.1405    -1.6137
## YQ20131                     -0.1338   0.1295    -1.0333
## YQ20132                     -0.0297   0.1306    -0.2275
## YQ20133                     -0.1978   0.1321    -1.4981
## YQ20134                      0.0935   0.1366     0.6849
## YQ20141                      0.1422   0.1285     1.1069
## YQ20142                      0.1369   0.1373     0.9971
## YQ20143                      0.0909   0.1303     0.6979
## YQ20144                      0.2967   0.1306     2.2710
## YQ20151                      0.1984   0.1327     1.4951
## YQ20152                      0.2186   0.1349     1.6205
## YQ20153                      0.0881   0.1331     0.6615
## YQ20154                      0.4644   0.1444     3.2159
## YQ20161                      0.1915   0.1364     1.4037
## YQ20162                      0.2322   0.1413     1.6430
## YQ20163                      0.4765   0.1451     3.2838
## YQ20164                      0.1480   0.1329     1.1131
## YQ20171                      0.3044   0.1390     2.1898
## YQ20172                      0.1727   0.1337     1.2915
## YQ20173                      0.3714   0.1419     2.6165
## YQ20174                      0.2347   0.1356     1.7303
## YQ20181                      0.3317   0.1349     2.4587
## YQ20182                      0.2078   0.1378     1.5082
## YQ20183                      0.3784   0.1391     2.7204
## YQ20184                      0.3765   0.1360     2.7679
## YQ20191                      0.2535   0.1415     1.7920
## YQ20192                      0.2507   0.1394     1.7983
## YQ20193                      0.1716   0.1433     1.1977
## YQ20194                      0.2240   0.1407     1.5918
## YQ20201                      0.3359   0.1483     2.2646
## YQ20202                      0.1976   0.1396     1.4157
## YQ20203                      0.3097   0.1372     2.2579
## YQ20204                      0.2871   0.1400     2.0506
## YQ20211                      0.2406   0.1393     1.7271
## YQ20212                      0.3809   0.1412     2.6979
## YQ20213                      0.4007   0.1393     2.8774
## YQ20214                      0.3198   0.1394     2.2937
## YQ20221                      0.3795   0.1507     2.5174
## YQ20222                      0.3333   0.1448     2.3012
## YQ20223                      0.5435   0.1486     3.6572
## YQ20224                      0.3095   0.1488     2.0798
## YQ20231                      0.3187   0.1487     2.1437
## YQ20232                      0.3806   0.1501     2.5349
## YQ20233                      0.6779   0.1491     4.5456
## YQ20234                      0.5739   0.1499     3.8277
## YQ20241                      0.5531   0.1503     3.6802
## YQ20242                      0.6919   0.1511     4.5783
## YQ20243                      0.8071   0.1509     5.3495
## YQ20244                      0.7030   0.1516     4.6374
## YQ20251                      0.4897   0.1546     3.1668
## YQ20252                      0.7920   0.1548     5.1153
## YQ20253                      1.0691   0.1556     6.8714
## 
## Residual standard error: 0.5963 on 11099 degrees of freedom
glance(robreg2)[1:4]
glance(robreg2)[5:7]
fitted_values2 <- fitted(robreg2)
r_squared_bisquare <- cor(log(iaiai_data$Price), fitted_values2)^2
r_squared_bisquare
## [1] 0.8471805