Wstęp

Celem projektu jest skonstruowanie modelu predykcyjnego przewidującego ceny samochodów z wykorzystaniem dostępnych zmiennych. W tym celu zostanie wykorzystany zbiór danych zawierający informacje na temat konkretnych samochodów.

Projekt został podzieony na 3 etapy:
* Zbiór danych
* Wykresy
* Model
* Wynik predykcji
* Podsumowanie

Zbiór danych

W pierwszej kolejności należy

## 'data.frame':    643 obs. of  13 variables:
##  $ X       : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Price   : num  17542 16219 16337 15230 15048 ...
##  $ Mileage : int  9135 13196 16342 22576 22964 24021 27325 10237 15066 16633 ...
##  $ Make    : chr  "Buick" "Buick" "Buick" "Buick" ...
##  $ Model   : chr  "Century" "Century" "Century" "Century" ...
##  $ Trim    : chr  "Sedan 4D" "Sedan 4D" "Sedan 4D" "Sedan 4D" ...
##  $ Type    : chr  "Sedan" "Sedan" "Sedan" "Sedan" ...
##  $ Cylinder: int  6 6 6 6 6 6 6 6 6 6 ...
##  $ Liter   : num  3.1 3.1 3.1 3.1 3.1 3.1 3.1 3.6 3.6 3.6 ...
##  $ Doors   : int  4 4 4 4 4 4 4 4 4 4 ...
##  $ Cruise  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Sound   : int  1 1 0 1 1 0 1 0 1 1 ...
##  $ Leather : int  0 0 0 0 0 1 1 0 0 0 ...

Jak widać w naszym zbiorze danych występuje 13 zmiennych, z czego 7 jest typu int, 4 są typu chr oraz 2 są num. Od razu widać, że pierwsza kolumna X zawiera tylko i wyłącznie numery wiersza, dlatego też jest ona zbędną i nie będzie wykorzystywana w modelu. Reszta zmiennych będzie uwzględniana w teoretycznym modelu ekonometrycznym. Widzimy również, że wszystkie zmienne tekstowe są zmiennymi kategorycznymi dlatego też będziętrzeba zamienić je na tego typu zmienne. Poniżej dodatkowo znajduje się tabela, która zawiera wszystkie zmienne wraz z ich opisem (pogrubiona została zmienna zależna (objaśniana)):

Zmienna Opis
Price Cena samochodu w USD
Mileage liczba mil przejechana przez samochód
Make wytwórca samochodu (np. Saturn, Pontiac, Chevrolet)
Model model specyficzny dla każdego wytwórcy (np. Ion, Vibe, Cavalier)
Trim typ modelu samochodu (np. SE Sedan 4D, Quad Coupe 2D)
Type rodzaj nadwozia (np. sedan, coupe, etc.)
Cylinder liczba cylidrów silnika
Liter pojemność silnika
Doors liczba drzwi
Cruise indykator wskazujący czy samochód jest wyposażony w tempomat (1 = tempomat)
Sound indykator wskazujący czy samochód ma ulepszone głośniki (1 = ulepszone)
Leather indykator wskazujący czy samochód ma skórzane siedzenia (1 = skórzane siedzenia)

Usunięcie kolumny “X”

train <- subset(train, select = -c(X))

Zamiana posczególnych zmiennych na kategoryczne wartości

Wszystkie zmienne z wyjątkiem Price, Milage i Liter należy traktować jako zmienne kategoryczne. W tym kroku zostaną wszystkie zamienione na tego typu zmienne.

train$Make <- factor(train$Make)
train$Model <- factor(train$Model)
train$Trim <- factor(train$Trim)
train$Type <- factor(train$Type)
train$Cylinder <- factor(train$Cylinder)
train$Doors <- factor(train$Doors)
train$Cruise <- factor(train$Cruise)
train$Sound <- factor(train$Sound)
train$Leather <- factor(train$Leather)

Pozbycie się pustych danych

train <- na.omit(train)

Statystyki kolumn

lapply(train, summary)
## $Price
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8639   14196   18169   21532   27269   69134 
## 
## $Mileage
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     266   14620   20910   19806   25088   50387 
## 
## $Make
##     Buick  Cadillac Chevrolet   Pontiac      SAAB    Saturn 
##        61        72       255       115        95        45 
## 
## $Model
##    9-2X AWD         9_3      9_3 HO         9_5      9_5 HO        AVEO 
##           2          18          36          20          19          55 
##  Bonneville    Cavalier     Century     Classic      Cobalt    Corvette 
##          21          51           7           7          37          14 
##       CST-V         CTS     Deville          G6    Grand Am  Grand Prix 
##           9           9          28          16          17          22 
##         GTO      Impala         Ion    L Series    Lacrosse     Lesabre 
##           9          24          38           7          26          13 
##      Malibu Monte Carlo Park Avenue      STS-V6      STS-V8     Sunfire 
##          42          25          15           8          10           8 
##        Vibe      XLR-V8 
##          22           8 
## 
## $Trim
##        Aero Conv 2D       Aero Sedan 4D       Aero Wagon 4D         Arc Conv 2D 
##                  10                  17                  10                   9 
##        Arc Sedan 4D        Arc Wagon 4D   AWD Sportwagon 4D             Conv 2D 
##                  16                   6                   9                   5 
##            Coupe 2D     Custom Sedan 4D         CX Sedan 4D        CXL Sedan 4D 
##                  40                   7                   9                   9 
##        CXS Sedan 4D        DHS Sedan 4D        DTS Sedan 4D         GT Coupe 2D 
##                   8                  10                   9                   9 
##         GT Sedan 4D       GT Sportwagon        GTP Sedan 4D        GXP Sedan 4D 
##                  17                   7                   6                   6 
##     Hardtop Conv 2D       L300 Sedan 4D    Limited Sedan 4D      Linear Conv 2D 
##                   8                   7                   6                   9 
##     Linear Sedan 4D     Linear Wagon 4D         LS Coupe 2D     LS Hatchback 4D 
##                   9                   9                  24                   9 
##    LS MAXX Hback 4D         LS Sedan 4D   LS Sport Coupe 2D   LS Sport Sedan 4D 
##                   6                  41                  10                   9 
##         LT Coupe 2D     LT Hatchback 4D    LT MAXX Hback 4D         LT Sedan 4D 
##                   7                  10                   7                  26 
##       MAXX Hback 4D       Quad Coupe 2D         SE Sedan 4D            Sedan 4D 
##                   6                  13                  17                 136 
##        SLE Sedan 4D Special Ed Ultra 4D       Sportwagon 4D         SS Coupe 2D 
##                   6                   8                   6                   9 
##         SS Sedan 4D    SVM Hatchback 4D        SVM Sedan 4D 
##                   8                  10                   8 
## 
## $Type
## Convertible       Coupe   Hatchback       Sedan       Wagon 
##          41         112          48         395          47 
## 
## $Cylinder
##   4   6   8 
## 321 238  84 
## 
## $Liter
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.600   2.200   2.800   3.021   3.800   6.000 
## 
## $Doors
##   2   4 
## 153 490 
## 
## $Cruise
##   0   1 
## 161 482 
## 
## $Sound
##   0   1 
## 216 427 
## 
## $Leather
##   0   1 
## 180 463

Analiza cen samochodów wykazała, że ceny wahają się od 8639 do 69134. Mediana cen wynosi 18169, a średnia 21532. Przebieg samochodów z kolei zscala się w przedziale 266 do 50387, z medianą 20910 i średnią 19806. Wśród marek samochodów dominują modele Chevrolet, a najczęściej pojawiającym się modelem jest AVEO. Najwięcej samochodów to typ LS Sedan 4D. Typy samochodów to convertible, coupe, hatchback, sedan i wagon, a ilość cylindrów w silniku waha się od 4 do 8, z największą liczbą 4-cylindrowych. Pojemność silników wynosi od 1.6 do 6.0 litrów.

Wykres

W tym podrozdziale zostaną zaprezentowane wykresy ceny samochodów w zależności od zmiennych objaśniających. Zostaną zaprezentowane różne sposoby wizulaizacji danych, takie jak np. wykres liniowy czy wykres pudełkowy.

Pzebieg

W pierwszej kolejności zaprezentowano wykres liniowy przedstawiający zależność pomiędzy przebiegiem samochodu, a jego wyceną. Jak widać na wykresie nie wystęouje żadna znacząca zależność. Widać delikatny ubytek na wartości wraz ze wzrostem przebiegu, co również udowadnia linia regresji liniowej.

ggplot(train, aes(x = Mileage, y = Price)) +
  geom_point()+
  stat_smooth(method = "lm", se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'

Producent

Marka samochodu jak się okazało ma również znaczący wpływ na jego cenę. Według naszych danych, najwyższą średnią cenę mają samochody produkowane przez marki Cadillac i SAAB. Z kolei najniższą ceną charakteryzują się samochody producenta Saturn. W przypadku marki Chevrolet warto zauważyć, że chociaż średnio jest ona wyceniana niżej, to posiada ona kilka samochodów, których ceny znacząco odbiegają od średniej.

ggplot(train, aes(x = Make, y = Price)) +
  geom_boxplot()

Model

Wykres ze względu na to, że posiada wiele zmiennych na osi x jest mało czytelny. Możemy natomiast z niego wywnioskować, że cena samochodu rzeczywiście różni się w zależności od modelu samochodu. Najwyższą ceną charakteryzują się model samochodu: R-V8.

ggplot(train, aes(x = Model, y = Price)) +
  geom_boxplot()

Trim

Tak samo jak w przypadku zmiennej Model wykres jest mało czytelny. Możemy natomiast z niego wywnioskować, że cena samochodu rzeczywiście różni się w zależności typu samochodu.

ggplot(train, aes(x = Trim, y = Price)) +
  geom_boxplot()

Typ

Przeciętnie najwyższą ceną charakteryzują się samochodu typu Convertible, a więc tak zwane kabriolety. Drugi jest według kolejności jest typ Wagon, następnie Sedan i Coupe. Średnio najniższą cene mają auta typu Hatchback.

ggplot(train, aes(x = Type, y = Price)) +
  geom_boxplot()

Liczba cylindrów

Jak widać czym większa liczba cylindrów tym cena samochodu jest większa.

ggplot(train, aes(x = Cylinder, y = Price, group = Cylinder)) +
  geom_boxplot()

Model

Model liniowy

Następnie zostanie przedstawiony proces tworzenia modelu dla naszych zmiennych. W pierwszej kolejności zostanie opracowany model liniowy:

model_1<-lm(Price~.,data = train)
summary(model_1)
## 
## Call:
## lm(formula = Price ~ ., data = train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4944.3  -469.0    23.8   486.9  3921.6 
## 
## Coefficients: (21 not defined because of singularities)
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              2.628e+04  5.620e+02  46.765  < 2e-16 ***
## Mileage                 -1.820e-01  4.475e-03 -40.678  < 2e-16 ***
## MakeCadillac             3.976e+04  6.238e+02  63.737  < 2e-16 ***
## MakeChevrolet           -6.548e+03  5.282e+02 -12.396  < 2e-16 ***
## MakePontiac             -7.997e+03  6.509e+02 -12.285  < 2e-16 ***
## MakeSAAB                 4.763e+03  1.021e+03   4.664 3.88e-06 ***
## MakeSaturn              -6.893e+03  6.303e+02 -10.935  < 2e-16 ***
## Model9_3                -1.789e+03  9.156e+02  -1.954 0.051242 .  
## Model9_3 HO              4.354e+03  8.239e+02   5.285 1.79e-07 ***
## Model9_5                 5.454e+03  7.060e+02   7.726 5.05e-14 ***
## Model9_5 HO              6.122e+03  9.265e+02   6.607 9.00e-11 ***
## ModelAVEO               -6.642e+03  4.608e+02 -14.413  < 2e-16 ***
## ModelBonneville          5.511e+03  5.080e+02  10.848  < 2e-16 ***
## ModelCavalier           -4.549e+03  3.904e+02 -11.652  < 2e-16 ***
## ModelCentury            -7.337e+03  4.648e+02 -15.787  < 2e-16 ***
## ModelClassic            -3.196e+03  5.360e+02  -5.962 4.37e-09 ***
## ModelCobalt             -3.693e+03  4.028e+02  -9.168  < 2e-16 ***
## ModelCorvette            1.951e+04  5.283e+02  36.936  < 2e-16 ***
## ModelCST-V              -1.774e+04  6.029e+02 -29.417  < 2e-16 ***
## ModelCTS                -3.319e+04  5.999e+02 -55.326  < 2e-16 ***
## ModelDeville            -3.013e+04  6.029e+02 -49.969  < 2e-16 ***
## ModelG6                  4.161e+03  6.276e+02   6.630 7.79e-11 ***
## ModelGrand Am           -4.605e+02  6.596e+02  -0.698 0.485315    
## ModelGrand Prix          1.648e+03  6.258e+02   2.633 0.008706 ** 
## ModelGTO                 1.378e+04  6.632e+02  20.774  < 2e-16 ***
## ModelImpala              9.673e+02  4.543e+02   2.129 0.033644 *  
## ModelIon                -3.096e+03  5.692e+02  -5.439 7.95e-08 ***
## ModelL Series                   NA         NA      NA       NA    
## ModelLacrosse           -3.660e+02  6.197e+02  -0.591 0.555045    
## ModelLesabre            -1.873e+03  6.462e+02  -2.899 0.003891 ** 
## ModelMalibu             -7.924e+02  4.487e+02  -1.766 0.077910 .  
## ModelMonte Carlo                NA         NA      NA       NA    
## ModelPark Avenue                NA         NA      NA       NA    
## ModelSTS-V6             -2.546e+04  6.109e+02 -41.672  < 2e-16 ***
## ModelSTS-V8             -2.023e+04  5.954e+02 -33.980  < 2e-16 ***
## ModelSunfire            -2.665e+03  6.664e+02  -3.999 7.20e-05 ***
## ModelVibe                       NA         NA      NA       NA    
## ModelXLR-V8                     NA         NA      NA       NA    
## TrimAero Sedan 4D       -6.339e+03  4.127e+02 -15.361  < 2e-16 ***
## TrimAero Wagon 4D       -4.692e+03  5.749e+02  -8.162 2.13e-15 ***
## TrimArc Conv 2D          3.662e+03  3.993e+02   9.171  < 2e-16 ***
## TrimArc Sedan 4D        -3.617e+03  4.032e+02  -8.971  < 2e-16 ***
## TrimArc Wagon 4D        -2.536e+03  6.299e+02  -4.026 6.43e-05 ***
## TrimAWD Sportwagon 4D    1.516e+03  4.605e+02   3.293 0.001054 ** 
## TrimConv 2D              4.728e+03  6.747e+02   7.006 6.94e-12 ***
## TrimCoupe 2D             2.358e+02  4.682e+02   0.504 0.614688    
## TrimCustom Sedan 4D     -2.548e+03  4.849e+02  -5.255 2.10e-07 ***
## TrimCX Sedan 4D         -2.704e+03  4.232e+02  -6.389 3.47e-10 ***
## TrimCXL Sedan 4D        -1.328e+03  4.239e+02  -3.132 0.001824 ** 
## TrimCXS Sedan 4D                NA         NA      NA       NA    
## TrimDHS Sedan 4D         4.856e+03  5.833e+02   8.326 6.25e-16 ***
## TrimDTS Sedan 4D         5.263e+03  5.906e+02   8.911  < 2e-16 ***
## TrimGT Coupe 2D          4.613e+02  6.242e+02   0.739 0.460154    
## TrimGT Sedan 4D          8.108e+02  5.290e+02   1.533 0.125893    
## TrimGT Sportwagon        1.368e+03  4.857e+02   2.817 0.005014 ** 
## TrimGTP Sedan 4D         3.693e+03  6.173e+02   5.982 3.91e-09 ***
## TrimGXP Sedan 4D         2.544e+03  5.030e+02   5.058 5.73e-07 ***
## TrimHardtop Conv 2D             NA         NA      NA       NA    
## TrimL300 Sedan 4D               NA         NA      NA       NA    
## TrimLimited Sedan 4D            NA         NA      NA       NA    
## TrimLinear Conv 2D       6.939e+03  4.104e+02  16.909  < 2e-16 ***
## TrimLinear Sedan 4D             NA         NA      NA       NA    
## TrimLinear Wagon 4D     -3.668e+03  6.150e+02  -5.965 4.31e-09 ***
## TrimLS Coupe 2D          8.298e+02  4.664e+02   1.779 0.075728 .  
## TrimLS Hatchback 4D      1.595e+03  4.235e+02   3.765 0.000184 ***
## TrimLS MAXX Hback 4D     1.314e+03  5.504e+02   2.387 0.017290 *  
## TrimLS Sedan 4D          1.269e+03  3.890e+02   3.262 0.001174 ** 
## TrimLS Sport Coupe 2D    6.449e+02  5.113e+02   1.261 0.207739    
## TrimLS Sport Sedan 4D    1.397e+03  5.190e+02   2.692 0.007301 ** 
## TrimLT Coupe 2D          4.154e+03  6.413e+02   6.477 2.02e-10 ***
## TrimLT Hatchback 4D      1.785e+03  4.210e+02   4.240 2.60e-05 ***
## TrimLT MAXX Hback 4D     1.673e+03  5.327e+02   3.142 0.001767 ** 
## TrimLT Sedan 4D          1.336e+03  3.881e+02   3.441 0.000621 ***
## TrimMAXX Hback 4D        9.535e+02  5.516e+02   1.729 0.084411 .  
## TrimQuad Coupe 2D        1.689e+03  5.192e+02   3.254 0.001205 ** 
## TrimSE Sedan 4D         -1.293e+03  4.591e+02  -2.815 0.005042 ** 
## TrimSedan 4D             5.537e+01  4.263e+02   0.130 0.896704    
## TrimSLE Sedan 4D                NA         NA      NA       NA    
## TrimSpecial Ed Ultra 4D  1.811e+03  6.193e+02   2.924 0.003598 ** 
## TrimSportwagon 4D               NA         NA      NA       NA    
## TrimSS Coupe 2D          5.389e+03  6.243e+02   8.633  < 2e-16 ***
## TrimSS Sedan 4D          6.447e+03  5.445e+02  11.841  < 2e-16 ***
## TrimSVM Hatchback 4D    -4.862e+02  4.147e+02  -1.172 0.241519    
## TrimSVM Sedan 4D                NA         NA      NA       NA    
## TypeCoupe                       NA         NA      NA       NA    
## TypeHatchback                   NA         NA      NA       NA    
## TypeSedan                       NA         NA      NA       NA    
## TypeWagon                       NA         NA      NA       NA    
## Cylinder6                       NA         NA      NA       NA    
## Cylinder8                       NA         NA      NA       NA    
## Liter                           NA         NA      NA       NA    
## Doors4                          NA         NA      NA       NA    
## Cruise1                  3.472e+01  1.100e+02   0.316 0.752380    
## Sound1                   2.756e+02  8.730e+01   3.157 0.001676 ** 
## Leather1                 2.983e+02  1.015e+02   2.938 0.003442 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 868.9 on 569 degrees of freedom
## Multiple R-squared:  0.9934, Adjusted R-squared:  0.9926 
## F-statistic:  1173 on 73 and 569 DF,  p-value: < 2.2e-16

Podsumowanie powyższego modelu zawiera wiele nieistotnych zmiennych, w celu się ich pozbycia wykorzystam funkcję stepAIC, która z modelu po kolei wyrzuca najmniej znaczące zmienne tak długo aż wszystkie będą istotne.

stepAIC(model_1,direction = "both")
## Start:  AIC=8772.09
## Price ~ Mileage + Make + Model + Trim + Type + Cylinder + Liter + 
##     Doors + Cruise + Sound + Leather
## 
## 
## Step:  AIC=8772.09
## Price ~ Mileage + Make + Model + Trim + Type + Cylinder + Liter + 
##     Cruise + Sound + Leather
## 
## 
## Step:  AIC=8772.09
## Price ~ Mileage + Make + Model + Trim + Type + Cylinder + Cruise + 
##     Sound + Leather
## 
## 
## Step:  AIC=8772.09
## Price ~ Mileage + Make + Model + Trim + Type + Cruise + Sound + 
##     Leather
## 
## 
## Step:  AIC=8772.09
## Price ~ Mileage + Make + Model + Trim + Cruise + Sound + Leather
## 
## 
## Step:  AIC=8772.09
## Price ~ Mileage + Model + Trim + Cruise + Sound + Leather
## 
##           Df  Sum of Sq        RSS     AIC
## - Cruise   1 7.5231e+04 4.2970e+08  8770.2
## <none>                  4.2962e+08  8772.1
## - Leather  1 6.5154e+06 4.3614e+08  8779.8
## - Sound    1 7.5271e+06 4.3715e+08  8781.3
## - Mileage  1 1.2494e+09 1.6790e+09  9646.5
## - Trim    38 1.5004e+09 1.9301e+09  9662.1
## - Model   23 1.8828e+10 1.9258e+10 11171.3
## 
## Step:  AIC=8770.2
## Price ~ Mileage + Model + Trim + Sound + Leather
## 
##           Df  Sum of Sq        RSS     AIC
## <none>                  4.2970e+08  8770.2
## + Cruise   1 7.5231e+04 4.2962e+08  8772.1
## - Leather  1 6.4924e+06 4.3619e+08  8777.8
## - Sound    1 7.6081e+06 4.3731e+08  8779.5
## - Mileage  1 1.2496e+09 1.6793e+09  9644.6
## - Trim    38 1.5004e+09 1.9301e+09  9660.2
## - Model   23 2.1377e+10 2.1807e+10 11249.2
## 
## Call:
## lm(formula = Price ~ Mileage + Model + Trim + Sound + Leather, 
##     data = train)
## 
## Coefficients:
##             (Intercept)                  Mileage                 Model9_3  
##               31077.495                   -0.182                -1788.024  
##             Model9_3 HO                 Model9_5              Model9_5 HO  
##                4354.943                 5455.190                 6122.092  
##               ModelAVEO          ModelBonneville            ModelCavalier  
##              -17973.697                -7247.880               -15870.681  
##            ModelCentury             ModelClassic              ModelCobalt  
##              -12094.447               -14515.998               -15016.310  
##           ModelCorvette               ModelCST-V                 ModelCTS  
##                8209.439                17267.360                 1813.744  
##            ModelDeville                  ModelG6            ModelGrand Am  
##                4874.577                -8592.860               -13241.380  
##         ModelGrand Prix                 ModelGTO              ModelImpala  
##              -11106.347                 1024.394               -10336.625  
##                ModelIon            ModelL Series            ModelLacrosse  
##              -14769.343               -11654.965                -5128.452  
##            ModelLesabre              ModelMalibu         ModelMonte Carlo  
##               -6636.299               -12115.380               -11308.264  
##        ModelPark Avenue              ModelSTS-V6              ModelSTS-V8  
##               -4757.416                 9546.597                14769.778  
##            ModelSunfire                ModelVibe              ModelXLR-V8  
##              -15436.728               -12782.203                34997.080  
##       TrimAero Sedan 4D        TrimAero Wagon 4D          TrimArc Conv 2D  
##               -6338.756                -4691.664                 3662.017  
##        TrimArc Sedan 4D         TrimArc Wagon 4D    TrimAWD Sportwagon 4D  
##               -3617.604                -2536.768                 1519.956  
##             TrimConv 2D             TrimCoupe 2D      TrimCustom Sedan 4D  
##                4722.170                  230.660                -2548.119  
##         TrimCX Sedan 4D         TrimCXL Sedan 4D         TrimCXS Sedan 4D  
##               -2704.587                -1327.572                       NA  
##        TrimDHS Sedan 4D         TrimDTS Sedan 4D          TrimGT Coupe 2D  
##                4851.459                 5258.100                  459.461  
##         TrimGT Sedan 4D        TrimGT Sportwagon         TrimGTP Sedan 4D  
##                 805.404                 1366.621                 3687.285  
##        TrimGXP Sedan 4D      TrimHardtop Conv 2D        TrimL300 Sedan 4D  
##                2544.783                       NA                       NA  
##    TrimLimited Sedan 4D       TrimLinear Conv 2D      TrimLinear Sedan 4D  
##                      NA                 6938.564                       NA  
##     TrimLinear Wagon 4D          TrimLS Coupe 2D      TrimLS Hatchback 4D  
##               -3668.838                  828.002                 1589.721  
##    TrimLS MAXX Hback 4D          TrimLS Sedan 4D    TrimLS Sport Coupe 2D  
##                1297.804                 1261.632                  645.938  
##   TrimLS Sport Sedan 4D          TrimLT Coupe 2D      TrimLT Hatchback 4D  
##                1393.322                 4152.241                 1785.536  
##    TrimLT MAXX Hback 4D          TrimLT Sedan 4D        TrimMAXX Hback 4D  
##                1661.263                 1331.426                  937.061  
##       TrimQuad Coupe 2D          TrimSE Sedan 4D             TrimSedan 4D  
##                1686.265                -1292.965                   50.039  
##        TrimSLE Sedan 4D  TrimSpecial Ed Ultra 4D        TrimSportwagon 4D  
##                      NA                 1805.535                       NA  
##         TrimSS Coupe 2D          TrimSS Sedan 4D     TrimSVM Hatchback 4D  
##                5387.214                 6440.968                 -478.572  
##        TrimSVM Sedan 4D                   Sound1                 Leather1  
##                      NA                  276.840                  297.688

Model końcowy przedstawia się następująco:

model_2<-lm(Price ~ Mileage + Model + Trim + Sound + Leather,data = train)
summary(model_2)
## 
## Call:
## lm(formula = Price ~ Mileage + Model + Trim + Sound + Leather, 
##     data = train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4943.1  -472.9    25.9   487.2  3921.4 
## 
## Coefficients: (8 not defined because of singularities)
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              3.108e+04  8.757e+02  35.488  < 2e-16 ***
## Mileage                 -1.820e-01  4.471e-03 -40.714  < 2e-16 ***
## Model9_3                -1.788e+03  9.148e+02  -1.954 0.051134 .  
## Model9_3 HO              4.355e+03  8.232e+02   5.290 1.75e-07 ***
## Model9_5                 5.455e+03  7.054e+02   7.734 4.77e-14 ***
## Model9_5 HO              6.122e+03  9.258e+02   6.613 8.67e-11 ***
## ModelAVEO               -1.797e+04  9.207e+02 -19.522  < 2e-16 ***
## ModelBonneville         -7.248e+03  9.379e+02  -7.728 4.95e-14 ***
## ModelCavalier           -1.587e+04  9.688e+02 -16.382  < 2e-16 ***
## ModelCentury            -1.209e+04  1.021e+03 -11.849  < 2e-16 ***
## ModelClassic            -1.452e+04  1.021e+03 -14.222  < 2e-16 ***
## ModelCobalt             -1.502e+04  9.603e+02 -15.637  < 2e-16 ***
## ModelCorvette            8.209e+03  1.030e+03   7.973 8.48e-15 ***
## ModelCST-V               1.727e+04  1.011e+03  17.085  < 2e-16 ***
## ModelCTS                 1.814e+03  1.009e+03   1.798 0.072783 .  
## ModelDeville             4.875e+03  1.011e+03   4.823 1.82e-06 ***
## ModelG6                 -8.593e+03  1.007e+03  -8.530  < 2e-16 ***
## ModelGrand Am           -1.324e+04  1.030e+03 -12.852  < 2e-16 ***
## ModelGrand Prix         -1.111e+04  1.006e+03 -11.043  < 2e-16 ***
## ModelGTO                 1.024e+03  1.029e+03   0.996 0.319706    
## ModelImpala             -1.034e+04  9.768e+02 -10.582  < 2e-16 ***
## ModelIon                -1.477e+04  9.830e+02 -15.025  < 2e-16 ***
## ModelL Series           -1.165e+04  9.290e+02 -12.546  < 2e-16 ***
## ModelLacrosse           -5.128e+03  9.201e+02  -5.574 3.84e-08 ***
## ModelLesabre            -6.636e+03  9.370e+02  -7.082 4.19e-12 ***
## ModelMalibu             -1.212e+04  9.631e+02 -12.580  < 2e-16 ***
## ModelMonte Carlo        -1.131e+04  1.028e+03 -11.001  < 2e-16 ***
## ModelPark Avenue        -4.757e+03  1.020e+03  -4.662 3.89e-06 ***
## ModelSTS-V6              9.547e+03  1.016e+03   9.401  < 2e-16 ***
## ModelSTS-V8              1.477e+04  1.006e+03  14.678  < 2e-16 ***
## ModelSunfire            -1.544e+04  1.033e+03 -14.947  < 2e-16 ***
## ModelVibe               -1.278e+04  9.381e+02 -13.626  < 2e-16 ***
## ModelXLR-V8              3.500e+04  9.212e+02  37.992  < 2e-16 ***
## TrimAero Sedan 4D       -6.339e+03  4.123e+02 -15.373  < 2e-16 ***
## TrimAero Wagon 4D       -4.692e+03  5.744e+02  -8.167 2.04e-15 ***
## TrimArc Conv 2D          3.662e+03  3.990e+02   9.178  < 2e-16 ***
## TrimArc Sedan 4D        -3.618e+03  4.028e+02  -8.980  < 2e-16 ***
## TrimArc Wagon 4D        -2.537e+03  6.294e+02  -4.031 6.32e-05 ***
## TrimAWD Sportwagon 4D    1.520e+03  4.600e+02   3.305 0.001011 ** 
## TrimConv 2D              4.722e+03  6.740e+02   7.006 6.93e-12 ***
## TrimCoupe 2D             2.307e+02  4.676e+02   0.493 0.621970    
## TrimCustom Sedan 4D     -2.548e+03  4.845e+02  -5.259 2.05e-07 ***
## TrimCX Sedan 4D         -2.705e+03  4.229e+02  -6.395 3.34e-10 ***
## TrimCXL Sedan 4D        -1.328e+03  4.236e+02  -3.134 0.001812 ** 
## TrimCXS Sedan 4D                NA         NA      NA       NA    
## TrimDHS Sedan 4D         4.851e+03  5.826e+02   8.327 6.18e-16 ***
## TrimDTS Sedan 4D         5.258e+03  5.899e+02   8.913  < 2e-16 ***
## TrimGT Coupe 2D          4.595e+02  6.237e+02   0.737 0.461591    
## TrimGT Sedan 4D          8.054e+02  5.283e+02   1.525 0.127936    
## TrimGT Sportwagon        1.367e+03  4.853e+02   2.816 0.005031 ** 
## TrimGTP Sedan 4D         3.687e+03  6.166e+02   5.980 3.94e-09 ***
## TrimGXP Sedan 4D         2.545e+03  5.026e+02   5.063 5.59e-07 ***
## TrimHardtop Conv 2D             NA         NA      NA       NA    
## TrimL300 Sedan 4D               NA         NA      NA       NA    
## TrimLimited Sedan 4D            NA         NA      NA       NA    
## TrimLinear Conv 2D       6.939e+03  4.100e+02  16.922  < 2e-16 ***
## TrimLinear Sedan 4D             NA         NA      NA       NA    
## TrimLinear Wagon 4D     -3.669e+03  6.145e+02  -5.970 4.17e-09 ***
## TrimLS Coupe 2D          8.280e+02  4.660e+02   1.777 0.076124 .  
## TrimLS Hatchback 4D      1.590e+03  4.229e+02   3.759 0.000188 ***
## TrimLS MAXX Hback 4D     1.298e+03  5.476e+02   2.370 0.018113 *  
## TrimLS Sedan 4D          1.262e+03  3.880e+02   3.251 0.001216 ** 
## TrimLS Sport Coupe 2D    6.459e+02  5.109e+02   1.264 0.206652    
## TrimLS Sport Sedan 4D    1.393e+03  5.184e+02   2.688 0.007403 ** 
## TrimLT Coupe 2D          4.152e+03  6.408e+02   6.480 1.99e-10 ***
## TrimLT Hatchback 4D      1.786e+03  4.206e+02   4.245 2.55e-05 ***
## TrimLT MAXX Hback 4D     1.661e+03  5.308e+02   3.129 0.001841 ** 
## TrimLT Sedan 4D          1.331e+03  3.876e+02   3.435 0.000636 ***
## TrimMAXX Hback 4D        9.371e+02  5.487e+02   1.708 0.088205 .  
## TrimQuad Coupe 2D        1.686e+03  5.187e+02   3.251 0.001217 ** 
## TrimSE Sedan 4D         -1.293e+03  4.587e+02  -2.818 0.004993 ** 
## TrimSedan 4D             5.004e+01  4.256e+02   0.118 0.906458    
## TrimSLE Sedan 4D                NA         NA      NA       NA    
## TrimSpecial Ed Ultra 4D  1.806e+03  6.186e+02   2.919 0.003655 ** 
## TrimSportwagon 4D               NA         NA      NA       NA    
## TrimSS Coupe 2D          5.387e+03  6.238e+02   8.637  < 2e-16 ***
## TrimSS Sedan 4D          6.441e+03  5.437e+02  11.846  < 2e-16 ***
## TrimSVM Hatchback 4D    -4.786e+02  4.137e+02  -1.157 0.247788    
## TrimSVM Sedan 4D                NA         NA      NA       NA    
## Sound1                   2.768e+02  8.714e+01   3.177 0.001569 ** 
## Leather1                 2.977e+02  1.014e+02   2.935 0.003473 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 868.2 on 570 degrees of freedom
## Multiple R-squared:  0.9934, Adjusted R-squared:  0.9926 
## F-statistic:  1191 on 72 and 570 DF,  p-value: < 2.2e-16

Jak widać w modelu tym wszystkie zmienne niezależne spełniają warunek istotności. Dodatkowo współczynnik R-kwadrat jest na bardzo wysokim poziomie 0.9934, co świadczy o bardzo dobrym dopasowaniu modelu. Kolejnym krokiem jest przeds

plot(model_2)

Wykres residualsktóry jest różnicą między wartościami prognozowanymi przez model, a rzeczywistymi wartościami. Ten wykres pokazuje, jak bardzo wartości prognozowane są zbieżne z rzeczywistymi wartościami. Idealnie, punkty na wykresie powinny być wokół zera i powinny być rozproszone w sposób jednostajny. W naszym przypadku występują punkty, które mają duże odchylenia od zera, może to oznaczać, że model nie jest dobrze dopasowany do danych.

Wykres Q-Q (Quantile-Quantile) pokazuje, czy rozkład residuali jest normalny. Punkty powinny być wokół linii prostej, co oznacza, że rozkład jest bliski normalnemu. Również w tym przypadku można zauważyć, że prosta ta jest zdeformowana przez niektóre wartości, co może świadczyć, że nasze reszty nie posiadają rozkładu normlanego.

Wykres Scale-Location pokazuje, czy wariancje reszt są jednakowe w całym zakresie danych. Również ten wykres jest w pewnym stopniu zdeformowany.

Widać, że wszystkie zmienne niezależne w naszym modelu są istotne statystycznie i nasz model jest dobrze dopasowany do danych (wysoka wartość R^2). Wykresy diagnostyczne z kolei wskazywały niespełnienie założeń modelu o normalności rozkładu reszt i stałość wariancji reszt. Dlatego też w kolejnym kroku zostanie zbadany model logarytmiczny.

Model logarytmiczny

Aby uzyskać bardziej dokładne i precyzyjne prognozy, zostanie stworzony model logarytmiczny. Ten typ modelu pozwala na lepsze odzwierciedlenie zależności między zmiennymi i zapewnia bardziej zrównoważone prognozy. Poprzez zastosowanie modelu logarytmicznego, będziemy w stanie lepiej zrozumieć nasze dane i uzyskać bardziej wartościowe prognozy.

model_log1 <- lm(log(Price)~., train)
summary(model_log1)
## 
## Call:
## lm(formula = log(Price) ~ ., data = train)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.083634 -0.014629  0.000639  0.015543  0.100022 
## 
## Coefficients: (21 not defined because of singularities)
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              1.012e+01  1.640e-02 616.885  < 2e-16 ***
## Mileage                 -8.157e-06  1.306e-07 -62.446  < 2e-16 ***
## MakeCadillac             1.054e+00  1.821e-02  57.911  < 2e-16 ***
## MakeChevrolet           -3.324e-01  1.542e-02 -21.559  < 2e-16 ***
## MakePontiac             -3.354e-01  1.900e-02 -17.655  < 2e-16 ***
## MakeSAAB                 2.436e-01  2.981e-02   8.171 2.00e-15 ***
## MakeSaturn              -2.867e-01  1.840e-02 -15.584  < 2e-16 ***
## Model9_3                -5.144e-02  2.672e-02  -1.925 0.054769 .  
## Model9_3 HO              1.619e-01  2.405e-02   6.734 4.04e-11 ***
## Model9_5                 2.076e-01  2.061e-02  10.076  < 2e-16 ***
## Model9_5 HO              2.303e-01  2.704e-02   8.514  < 2e-16 ***
## ModelAVEO               -4.643e-01  1.345e-02 -34.513  < 2e-16 ***
## ModelBonneville          2.886e-01  1.483e-02  19.460  < 2e-16 ***
## ModelCavalier           -3.072e-01  1.139e-02 -26.961  < 2e-16 ***
## ModelCentury            -3.804e-01  1.357e-02 -28.042  < 2e-16 ***
## ModelClassic            -1.947e-01  1.565e-02 -12.442  < 2e-16 ***
## ModelCobalt             -2.288e-01  1.176e-02 -19.460  < 2e-16 ***
## ModelCorvette            7.859e-01  1.542e-02  50.961  < 2e-16 ***
## ModelCST-V              -3.959e-01  1.760e-02 -22.494  < 2e-16 ***
## ModelCTS                -8.118e-01  1.751e-02 -46.362  < 2e-16 ***
## ModelDeville            -7.126e-01  1.760e-02 -40.491  < 2e-16 ***
## ModelG6                  1.581e-01  1.832e-02   8.632  < 2e-16 ***
## ModelGrand Am           -3.848e-02  1.925e-02  -1.999 0.046112 *  
## ModelGrand Prix          1.173e-02  1.827e-02   0.642 0.520915    
## ModelGTO                 5.780e-01  1.936e-02  29.858  < 2e-16 ***
## ModelImpala              4.887e-02  1.326e-02   3.686 0.000250 ***
## ModelIon                -2.898e-01  1.662e-02 -17.441  < 2e-16 ***
## ModelL Series                   NA         NA      NA       NA    
## ModelLacrosse            5.325e-02  1.809e-02   2.944 0.003374 ** 
## ModelLesabre            -1.730e-02  1.886e-02  -0.917 0.359521    
## ModelMalibu             -4.449e-02  1.310e-02  -3.397 0.000728 ***
## ModelMonte Carlo                NA         NA      NA       NA    
## ModelPark Avenue                NA         NA      NA       NA    
## ModelSTS-V6             -5.882e-01  1.783e-02 -32.987  < 2e-16 ***
## ModelSTS-V8             -4.526e-01  1.738e-02 -26.041  < 2e-16 ***
## ModelSunfire            -2.570e-01  1.945e-02 -13.210  < 2e-16 ***
## ModelVibe                       NA         NA      NA       NA    
## ModelXLR-V8                     NA         NA      NA       NA    
## TrimAero Sedan 4D       -2.259e-01  1.204e-02 -18.752  < 2e-16 ***
## TrimAero Wagon 4D       -1.642e-01  1.678e-02  -9.785  < 2e-16 ***
## TrimArc Conv 2D          1.095e-01  1.166e-02   9.395  < 2e-16 ***
## TrimArc Sedan 4D        -1.254e-01  1.177e-02 -10.660  < 2e-16 ***
## TrimArc Wagon 4D        -9.465e-02  1.839e-02  -5.148 3.63e-07 ***
## TrimAWD Sportwagon 4D    6.336e-02  1.344e-02   4.714 3.06e-06 ***
## TrimConv 2D              1.829e-01  1.970e-02   9.289  < 2e-16 ***
## TrimCoupe 2D             5.902e-02  1.367e-02   4.318 1.86e-05 ***
## TrimCustom Sedan 4D     -1.257e-01  1.415e-02  -8.878  < 2e-16 ***
## TrimCX Sedan 4D         -1.289e-01  1.235e-02 -10.434  < 2e-16 ***
## TrimCXL Sedan 4D        -6.099e-02  1.237e-02  -4.929 1.08e-06 ***
## TrimCXS Sedan 4D                NA         NA      NA       NA    
## TrimDHS Sedan 4D         2.133e-01  1.703e-02  12.528  < 2e-16 ***
## TrimDTS Sedan 4D         2.312e-01  1.724e-02  13.408  < 2e-16 ***
## TrimGT Coupe 2D          3.813e-02  1.822e-02   2.093 0.036810 *  
## TrimGT Sedan 4D          1.039e-01  1.544e-02   6.730 4.16e-11 ***
## TrimGT Sportwagon        5.276e-02  1.418e-02   3.721 0.000218 ***
## TrimGTP Sedan 4D         2.696e-01  1.802e-02  14.962  < 2e-16 ***
## TrimGXP Sedan 4D         1.152e-01  1.468e-02   7.845 2.16e-14 ***
## TrimHardtop Conv 2D             NA         NA      NA       NA    
## TrimL300 Sedan 4D               NA         NA      NA       NA    
## TrimLimited Sedan 4D            NA         NA      NA       NA    
## TrimLinear Conv 2D       2.385e-01  1.198e-02  19.908  < 2e-16 ***
## TrimLinear Sedan 4D             NA         NA      NA       NA    
## TrimLinear Wagon 4D     -1.318e-01  1.795e-02  -7.342 7.30e-13 ***
## TrimLS Coupe 2D          1.144e-01  1.361e-02   8.405 3.43e-16 ***
## TrimLS Hatchback 4D      1.502e-01  1.236e-02  12.150  < 2e-16 ***
## TrimLS MAXX Hback 4D     1.543e-01  1.607e-02   9.601  < 2e-16 ***
## TrimLS Sedan 4D          1.443e-01  1.135e-02  12.707  < 2e-16 ***
## TrimLS Sport Coupe 2D    1.342e-01  1.493e-02   8.993  < 2e-16 ***
## TrimLS Sport Sedan 4D    1.746e-01  1.515e-02  11.524  < 2e-16 ***
## TrimLT Coupe 2D          2.890e-01  1.872e-02  15.439  < 2e-16 ***
## TrimLT Hatchback 4D      1.647e-01  1.229e-02  13.407  < 2e-16 ***
## TrimLT MAXX Hback 4D     1.740e-01  1.555e-02  11.194  < 2e-16 ***
## TrimLT Sedan 4D          1.486e-01  1.133e-02  13.120  < 2e-16 ***
## TrimMAXX Hback 4D        1.420e-01  1.610e-02   8.819  < 2e-16 ***
## TrimQuad Coupe 2D        1.845e-01  1.515e-02  12.173  < 2e-16 ***
## TrimSE Sedan 4D         -6.398e-02  1.340e-02  -4.774 2.30e-06 ***
## TrimSedan 4D             7.113e-02  1.244e-02   5.716 1.76e-08 ***
## TrimSLE Sedan 4D                NA         NA      NA       NA    
## TrimSpecial Ed Ultra 4D  1.434e-01  1.808e-02   7.933 1.14e-14 ***
## TrimSportwagon 4D               NA         NA      NA       NA    
## TrimSS Coupe 2D          3.503e-01  1.822e-02  19.224  < 2e-16 ***
## TrimSS Sedan 4D          3.872e-01  1.589e-02  24.359  < 2e-16 ***
## TrimSVM Hatchback 4D     1.260e-02  1.210e-02   1.041 0.298439    
## TrimSVM Sedan 4D                NA         NA      NA       NA    
## TypeCoupe                       NA         NA      NA       NA    
## TypeHatchback                   NA         NA      NA       NA    
## TypeSedan                       NA         NA      NA       NA    
## TypeWagon                       NA         NA      NA       NA    
## Cylinder6                       NA         NA      NA       NA    
## Cylinder8                       NA         NA      NA       NA    
## Liter                           NA         NA      NA       NA    
## Doors4                          NA         NA      NA       NA    
## Cruise1                  3.094e-03  3.211e-03   0.963 0.335716    
## Sound1                   8.680e-03  2.548e-03   3.406 0.000705 ***
## Leather1                 1.643e-02  2.964e-03   5.544 4.53e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02536 on 569 degrees of freedom
## Multiple R-squared:  0.9968, Adjusted R-squared:  0.9963 
## F-statistic:  2396 on 73 and 569 DF,  p-value: < 2.2e-16

Tak jak przy modelu liniowym podsumowanie to zawiera wiele nieistotnych zmiennych, w celu się ich pozbycia wykorzystam również funkcję stepAIC.

stepAIC(model_log1,direction = "both")
## Start:  AIC=-4655.96
## log(Price) ~ Mileage + Make + Model + Trim + Type + Cylinder + 
##     Liter + Doors + Cruise + Sound + Leather
## 
## 
## Step:  AIC=-4655.96
## log(Price) ~ Mileage + Make + Model + Trim + Type + Cylinder + 
##     Liter + Cruise + Sound + Leather
## 
## 
## Step:  AIC=-4655.96
## log(Price) ~ Mileage + Make + Model + Trim + Type + Cylinder + 
##     Cruise + Sound + Leather
## 
## 
## Step:  AIC=-4655.96
## log(Price) ~ Mileage + Make + Model + Trim + Type + Cruise + 
##     Sound + Leather
## 
## 
## Step:  AIC=-4655.96
## log(Price) ~ Mileage + Make + Model + Trim + Cruise + Sound + 
##     Leather
## 
## 
## Step:  AIC=-4655.96
## log(Price) ~ Mileage + Model + Trim + Cruise + Sound + Leather
## 
##           Df Sum of Sq    RSS     AIC
## - Cruise   1     0.001  0.367 -4656.9
## <none>                  0.366 -4656.0
## - Sound    1     0.007  0.374 -4645.0
## - Leather  1     0.020  0.386 -4624.1
## - Trim    38     2.720  3.086 -3361.1
## - Mileage  1     2.509  2.875 -3332.8
## - Model   23    33.065 33.431 -1799.1
## 
## Step:  AIC=-4656.91
## log(Price) ~ Mileage + Model + Trim + Sound + Leather
## 
##           Df Sum of Sq    RSS     AIC
## <none>                  0.367 -4656.9
## + Cruise   1     0.001  0.366 -4656.0
## - Sound    1     0.008  0.374 -4645.6
## - Leather  1     0.020  0.386 -4625.3
## - Trim    38     2.720  3.087 -3363.0
## - Mileage  1     2.509  2.876 -3334.5
## - Model   23    38.926 39.293 -1697.2
## 
## Call:
## lm(formula = log(Price) ~ Mileage + Model + Trim + Sound + Leather, 
##     data = train)
## 
## Coefficients:
##             (Intercept)                  Mileage                 Model9_3  
##               1.037e+01               -8.158e-06               -5.138e-02  
##             Model9_3 HO                 Model9_5              Model9_5 HO  
##               1.620e-01                2.077e-01                2.303e-01  
##               ModelAVEO          ModelBonneville            ModelCavalier  
##              -1.042e+00               -2.904e-01               -8.842e-01  
##            ModelCentury             ModelClassic              ModelCobalt  
##              -6.235e-01               -7.715e-01               -8.059e-01  
##           ModelCorvette               ModelCST-V                 ModelCTS  
##               2.104e-01                4.156e-01               -3.969e-04  
##            ModelDeville                  ModelG6            ModelGrand Am  
##               9.883e-02               -4.204e-01               -6.194e-01  
##         ModelGrand Prix                 ModelGTO              ModelImpala  
##              -5.668e-01               -4.883e-04               -5.265e-01  
##                ModelIon            ModelL Series            ModelLacrosse  
##              -8.216e-01               -5.302e-01               -1.903e-01  
##            ModelLesabre              ModelMalibu         ModelMonte Carlo  
##              -2.609e-01               -6.216e-01               -5.758e-01  
##        ModelPark Avenue              ModelSTS-V6              ModelSTS-V8  
##              -2.431e-01                2.232e-01                3.588e-01  
##            ModelSunfire                ModelVibe              ModelXLR-V8  
##              -8.371e-01               -5.810e-01                8.109e-01  
##       TrimAero Sedan 4D        TrimAero Wagon 4D          TrimArc Conv 2D  
##              -2.259e-01               -1.642e-01                1.095e-01  
##        TrimArc Sedan 4D         TrimArc Wagon 4D    TrimAWD Sportwagon 4D  
##              -1.255e-01               -9.471e-02                6.369e-02  
##             TrimConv 2D             TrimCoupe 2D      TrimCustom Sedan 4D  
##               1.825e-01                5.856e-02               -1.256e-01  
##         TrimCX Sedan 4D         TrimCXL Sedan 4D         TrimCXS Sedan 4D  
##              -1.289e-01               -6.098e-02                       NA  
##        TrimDHS Sedan 4D         TrimDTS Sedan 4D          TrimGT Coupe 2D  
##               2.129e-01                2.307e-01                3.796e-02  
##         TrimGT Sedan 4D        TrimGT Sportwagon         TrimGTP Sedan 4D  
##               1.034e-01                5.260e-02                2.691e-01  
##        TrimGXP Sedan 4D      TrimHardtop Conv 2D        TrimL300 Sedan 4D  
##               1.152e-01                       NA                       NA  
##    TrimLimited Sedan 4D       TrimLinear Conv 2D      TrimLinear Sedan 4D  
##                      NA                2.384e-01                       NA  
##     TrimLinear Wagon 4D          TrimLS Coupe 2D      TrimLS Hatchback 4D  
##              -1.318e-01                1.143e-01                1.498e-01  
##    TrimLS MAXX Hback 4D          TrimLS Sedan 4D    TrimLS Sport Coupe 2D  
##               1.528e-01                1.436e-01                1.343e-01  
##   TrimLS Sport Sedan 4D          TrimLT Coupe 2D      TrimLT Hatchback 4D  
##               1.742e-01                2.889e-01                1.648e-01  
##    TrimLT MAXX Hback 4D          TrimLT Sedan 4D        TrimMAXX Hback 4D  
##               1.730e-01                1.483e-01                1.405e-01  
##       TrimQuad Coupe 2D          TrimSE Sedan 4D             TrimSedan 4D  
##               1.842e-01               -6.402e-02                7.066e-02  
##        TrimSLE Sedan 4D  TrimSpecial Ed Ultra 4D        TrimSportwagon 4D  
##                      NA                1.429e-01                       NA  
##         TrimSS Coupe 2D          TrimSS Sedan 4D     TrimSVM Hatchback 4D  
##               3.501e-01                3.866e-01                1.328e-02  
##        TrimSVM Sedan 4D                   Sound1                 Leather1  
##                      NA                8.787e-03                1.638e-02

Poniżej przedstawiam model końcowy, po wyłączeniu zmiennych niezależnych

model_log2 <- lm(log(Price) ~ Mileage + Model + Trim + Sound + Leather, train)
summary(model_log2)
## 
## Call:
## lm(formula = log(Price) ~ Mileage + Model + Trim + Sound + Leather, 
##     data = train)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.084595 -0.014629  0.000718  0.015453  0.099095 
## 
## Coefficients: (8 not defined because of singularities)
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              1.037e+01  2.558e-02 405.215  < 2e-16 ***
## Mileage                 -8.158e-06  1.306e-07 -62.459  < 2e-16 ***
## Model9_3                -5.138e-02  2.672e-02  -1.923 0.055001 .  
## Model9_3 HO              1.620e-01  2.405e-02   6.737 3.97e-11 ***
## Model9_5                 2.077e-01  2.060e-02  10.082  < 2e-16 ***
## Model9_5 HO              2.303e-01  2.704e-02   8.516  < 2e-16 ***
## ModelAVEO               -1.042e+00  2.689e-02 -38.748  < 2e-16 ***
## ModelBonneville         -2.904e-01  2.740e-02 -10.600  < 2e-16 ***
## ModelCavalier           -8.842e-01  2.830e-02 -31.244  < 2e-16 ***
## ModelCentury            -6.235e-01  2.982e-02 -20.912  < 2e-16 ***
## ModelClassic            -7.715e-01  2.981e-02 -25.877  < 2e-16 ***
## ModelCobalt             -8.059e-01  2.805e-02 -28.731  < 2e-16 ***
## ModelCorvette            2.104e-01  3.007e-02   6.997 7.35e-12 ***
## ModelCST-V               4.156e-01  2.952e-02  14.077  < 2e-16 ***
## ModelCTS                -3.969e-04  2.947e-02  -0.013 0.989260    
## ModelDeville             9.883e-02  2.952e-02   3.348 0.000869 ***
## ModelG6                 -4.204e-01  2.942e-02 -14.287  < 2e-16 ***
## ModelGrand Am           -6.194e-01  3.009e-02 -20.581  < 2e-16 ***
## ModelGrand Prix         -5.668e-01  2.938e-02 -19.293  < 2e-16 ***
## ModelGTO                -4.883e-04  3.005e-02  -0.016 0.987039    
## ModelImpala             -5.265e-01  2.853e-02 -18.453  < 2e-16 ***
## ModelIon                -8.216e-01  2.871e-02 -28.615  < 2e-16 ***
## ModelL Series           -5.302e-01  2.714e-02 -19.541  < 2e-16 ***
## ModelLacrosse           -1.903e-01  2.688e-02  -7.081 4.24e-12 ***
## ModelLesabre            -2.609e-01  2.737e-02  -9.531  < 2e-16 ***
## ModelMalibu             -6.216e-01  2.813e-02 -22.095  < 2e-16 ***
## ModelMonte Carlo        -5.758e-01  3.003e-02 -19.176  < 2e-16 ***
## ModelPark Avenue        -2.431e-01  2.980e-02  -8.156 2.22e-15 ***
## ModelSTS-V6              2.232e-01  2.966e-02   7.525 2.06e-13 ***
## ModelSTS-V8              3.588e-01  2.939e-02  12.208  < 2e-16 ***
## ModelSunfire            -8.371e-01  3.017e-02 -27.747  < 2e-16 ***
## ModelVibe               -5.810e-01  2.740e-02 -21.203  < 2e-16 ***
## ModelXLR-V8              8.109e-01  2.691e-02  30.137  < 2e-16 ***
## TrimAero Sedan 4D       -2.259e-01  1.204e-02 -18.753  < 2e-16 ***
## TrimAero Wagon 4D       -1.642e-01  1.678e-02  -9.783  < 2e-16 ***
## TrimArc Conv 2D          1.095e-01  1.165e-02   9.396  < 2e-16 ***
## TrimArc Sedan 4D        -1.255e-01  1.177e-02 -10.666  < 2e-16 ***
## TrimArc Wagon 4D        -9.471e-02  1.838e-02  -5.152 3.57e-07 ***
## TrimAWD Sportwagon 4D    6.369e-02  1.344e-02   4.741 2.69e-06 ***
## TrimConv 2D              1.825e-01  1.969e-02   9.268  < 2e-16 ***
## TrimCoupe 2D             5.856e-02  1.366e-02   4.287 2.12e-05 ***
## TrimCustom Sedan 4D     -1.256e-01  1.415e-02  -8.877  < 2e-16 ***
## TrimCX Sedan 4D         -1.289e-01  1.235e-02 -10.437  < 2e-16 ***
## TrimCXL Sedan 4D        -6.098e-02  1.237e-02  -4.928 1.09e-06 ***
## TrimCXS Sedan 4D                NA         NA      NA       NA    
## TrimDHS Sedan 4D         2.129e-01  1.702e-02  12.507  < 2e-16 ***
## TrimDTS Sedan 4D         2.307e-01  1.723e-02  13.388  < 2e-16 ***
## TrimGT Coupe 2D          3.796e-02  1.822e-02   2.084 0.037613 *  
## TrimGT Sedan 4D          1.034e-01  1.543e-02   6.702 4.94e-11 ***
## TrimGT Sportwagon        5.260e-02  1.418e-02   3.711 0.000227 ***
## TrimGTP Sedan 4D         2.691e-01  1.801e-02  14.942  < 2e-16 ***
## TrimGXP Sedan 4D         1.152e-01  1.468e-02   7.848 2.11e-14 ***
## TrimHardtop Conv 2D             NA         NA      NA       NA    
## TrimL300 Sedan 4D               NA         NA      NA       NA    
## TrimLimited Sedan 4D            NA         NA      NA       NA    
## TrimLinear Conv 2D       2.384e-01  1.198e-02  19.908  < 2e-16 ***
## TrimLinear Sedan 4D             NA         NA      NA       NA    
## TrimLinear Wagon 4D     -1.318e-01  1.795e-02  -7.345 7.14e-13 ***
## TrimLS Coupe 2D          1.143e-01  1.361e-02   8.394 3.72e-16 ***
## TrimLS Hatchback 4D      1.498e-01  1.235e-02  12.123  < 2e-16 ***
## TrimLS MAXX Hback 4D     1.528e-01  1.599e-02   9.553  < 2e-16 ***
## TrimLS Sedan 4D          1.436e-01  1.133e-02  12.673  < 2e-16 ***
## TrimLS Sport Coupe 2D    1.343e-01  1.492e-02   9.000  < 2e-16 ***
## TrimLS Sport Sedan 4D    1.742e-01  1.514e-02  11.505  < 2e-16 ***
## TrimLT Coupe 2D          2.889e-01  1.872e-02  15.432  < 2e-16 ***
## TrimLT Hatchback 4D      1.648e-01  1.229e-02  13.411  < 2e-16 ***
## TrimLT MAXX Hback 4D     1.730e-01  1.551e-02  11.154  < 2e-16 ***
## TrimLT Sedan 4D          1.483e-01  1.132e-02  13.095  < 2e-16 ***
## TrimMAXX Hback 4D        1.405e-01  1.603e-02   8.768  < 2e-16 ***
## TrimQuad Coupe 2D        1.842e-01  1.515e-02  12.158  < 2e-16 ***
## TrimSE Sedan 4D         -6.402e-02  1.340e-02  -4.778 2.26e-06 ***
## TrimSedan 4D             7.066e-02  1.243e-02   5.683 2.11e-08 ***
## TrimSLE Sedan 4D                NA         NA      NA       NA    
## TrimSpecial Ed Ultra 4D  1.429e-01  1.807e-02   7.911 1.34e-14 ***
## TrimSportwagon 4D               NA         NA      NA       NA    
## TrimSS Coupe 2D          3.501e-01  1.822e-02  19.216  < 2e-16 ***
## TrimSS Sedan 4D          3.866e-01  1.588e-02  24.342  < 2e-16 ***
## TrimSVM Hatchback 4D     1.328e-02  1.208e-02   1.099 0.272347    
## TrimSVM Sedan 4D                NA         NA      NA       NA    
## Sound1                   8.787e-03  2.545e-03   3.452 0.000597 ***
## Leather1                 1.638e-02  2.963e-03   5.528 4.94e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02536 on 570 degrees of freedom
## Multiple R-squared:  0.9968, Adjusted R-squared:  0.9963 
## F-statistic:  2429 on 72 and 570 DF,  p-value: < 2.2e-16

Jak widać w modelu tym wszystkie zmienne niezależne spełniają warunek istotności. Dodatkowo współczynnik R-kwadrat jest na bardzo wysokim poziomie 0.9934 i jest wyższy niż w przypadku modelu liniowego.

plot(model_log2)

Jak widać również na podsstawie wykresów diagnostycznych, nasze dane dla modelu logarytmicznego są lepiej dopasowane niż w przypadku liniowego. Nie występuje aż tyle wartości odstających, co może świadczyć o spełnieniu przez nasz model przyjętych założeń. Ostatecznie do predykcji zostanie wykorzystane model logarytmiczny, który był najlepiej dopasowany do naszych danych:

model <- model_log1

Wynik predykcji

Funkcja testująca

Jeden z plików, które należy oddać powinien zawierać końcowy model wraz z funkcją testującą o nazwie test.function. Funkcja ta powinna przyjmować jako argument model testowany model, a jako argument df ramkę danych o takiej samej strukturze jak dane treningowe i zwracać kolumnę predykcji.

UWAGA jeżeli model przyjmuje dane w postaci przekształconej (np. zostają przekształcone pewne zmienne: np. logartym, to należy uwzględnić to w funkcji testującej).

Proszę rozważyć poniższy przykład

test.function <- function(df, model) {
  
  # Here we can put necessary transformations of the data
  
  exp(predict(model, newdata = df))
}

save(model, test.function, file = 'Hinc.Rdata')
Test modelu na podstawie danych treningowych
calculate.error <- function(name, data) {
  error <- FALSE
  content <- load(name)
  
  if(length(content) >= 2) {
    model.to.test <- eval(as.name(content[1]))
    function.to.test <- eval(as.name(content[2]))
  } else {
    return("MISSING")
  }
  
  tryCatch(suppressWarnings(predictions <- function.to.test(model = model.to.test,
                                                            df = data)),
           error = function(cond) {
             print(cond)
             error <- TRUE},
           warning = function(cond) print(cond))
  
  if(error){
    return("ERROR")
  }
  
  rmse(data$Price, predictions)
}
calculate.error('Hinc.Rdata', train)
## [1] 457.0186

Podsumowanie

Podsumowując, celem projektu było skonstruowanie modelu predykcyjnego przewidującego ceny samochodów z wykorzystaniem dostępnych zmiennych. Model został zbudowany w oparciu o funkcję regresji liniowej. Wynikiem był model predykcyjny, który umożliwiał przewidywanie ceny samochodu na podstawie innych cech samochodu.Ostatecznie do predykcji został wykorzystany model logarytmiczny, dla którego wartość RMSE wyniosła: 457.0186