Monet Paintings Data

THe Monet paintings were sold at auction over 1989-2006. Model is slightly modified with {it} represents intrinsic, unobserved features of the painting and \u{it} represents the ubobserved preferences of the buyer. For more details consult Example 4.5 Econometric Analysis by William Greene. Data can be downloaded from Table 4.1 Monet Paintings \[ lnPrice_{it} = \beta_0 + \beta_1 lnArea_{it}+ \beta_2 Aspectratio_{it} + w_{it}+u_{it}\] We have a chunk of relevant R-packages as follows

## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.4     v dplyr   1.0.2
## v tidyr   1.1.2     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows

Monet Painting Art Work

First of all data are read from csv file and stored in monet and then linear model is used to estimate the model. In routine we use default standard errors but due to hetroscedasticity or correlations across groups, one needs to use Robust and Clustered SE respectively. Purpose of this post is to demonstrate that Default, Robust and Clustered Robust standard errors may produce different results and as a result our test statistics may be large or small. Using correct standard errors is important for doing any econometric investigation. In case of cross-sectional data, use Heteroscedastic Robust Standard Errors whether there is homoscedasticity or heteroscedasticity. As if data will be homoscedastic, there will be no correction in standard errors and in case there wil be heteroscedastic, standard errors will be corrected accordingly. For panel data or data which have clusters, there is a possibility that there is dependence over time for an individual or there is spatial dependence among clusters, this will require Clustered robust standard errros. In Monet paintings data, we have used picture variable as cluster and calculated Clustered Standard errors. Comparison of three different procedures for calculation of Standard errors suggest that coefficient remains same but SEs may change from technique to another. There is a chance that an estimator which is significant by one procedure maybe insignificant by another procedure or vice vers. Therefore, it is important that standard errors are claculated correctly. All three standard errors are reported as below.

Heteroskedasticity-Consistent Estimation of Covariance Matrix
(Intercept) log(HEIGHT * WIDTH) I(WIDTH/HEIGHT)
(Intercept) 0.542 -0.075 -0.028
log(HEIGHT * WIDTH) -0.075 0.011 -0.001
I(WIDTH/HEIGHT) -0.028 -0.001 0.028
Robust Standard Errors
Estimate Std. Error Heteroscedasticity (Std. Error) Cluster (Std. Error)
(Intercept) -8.342 0.678 0.736 0.759
log(HEIGHT * WIDTH) 1.316 0.092 0.106 0.109
I(WIDTH/HEIGHT) -0.096 0.158 0.168 0.178

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

mg<-ggplot(monet)+aes(x=log(WIDTH*HEIGHT),y=log(PRICE))+geom_point()+geom_smooth(method = "lm",se=FALSE)
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
ggplotly(mg)
## `geom_smooth()` using formula 'y ~ x'
  mg+geom_label(
    label="Look", 
    x=7.295437,,
    y=-3.336843253,
    label.padding = unit(0.15, "lines"), # Rectangle size around label
    label.size = 0.35,
    color = "red",
    fill="#69b3a2"
  )
## `geom_smooth()` using formula 'y ~ x'

  mg+annotate("text", x=7.295437,
    y=-3.336843253, label = "Look at this!")
## `geom_smooth()` using formula 'y ~ x'

  ggtitle("Influential Observations ")
## $title
## [1] "Influential Observations "
## 
## attr(,"class")
## [1] "labels"