Deskriptive Analyse

Einleitung

Die US - amerikanische Immobilienbörse Zillow bietet ein Verfahren, dass den Wert einer Immobilie anhand dessen Eigenschaften schätzen kann. Um dieses Verfahren zu verbessern wurde ein Preis auf Kaggle ausgeschrieben. Im Rahmen des Wettbewerbs wurden mehrere Datensätze veröffentlicht. Diese beinhalten Daten zum LogError zwischen geschätzen und tatsächlichen Verkaufspreis sowie dem Verkaufsdatum. Weiter werden die unterschiedlichen Features der Immobilien aufgeführt.

Im folgenden wird der Datensatz “properties_2017” näher analysiert. Ziel ist es, Eine PCA mit anschließender multiplen linearen Regression durchzuführen. Hierzu muss im Verlauf die Beschaffenheit der Features betrachtet werden.

Verortung der Gebäude

Zunächst wird aufgezeigt, wo sich die Immobilien befinden, welche im Datensatz enthalten sind:

Es handelt sich also um Immobilen aus Kalifornien im Raum von Los Angeles.

Der Datensatz

Im nächsten Schritt werden die spezifischen Features im Datensatz betrachtet. Der Datensatz weisst eine sehr hohe Anzahl von NAs auf:

## [1] "Insgesamt verfügt der Datensatz über  58  Features und  2985217 Zeilen."

Hier wird deutlich das knapp 50 Prozent der Daten innerhalb des Datensatzes fehlen.

Die Features

##  [1] "parcelid"                     "airconditioningtypeid"       
##  [3] "architecturalstyletypeid"     "basementsqft"                
##  [5] "bathroomcnt"                  "bedroomcnt"                  
##  [7] "buildingclasstypeid"          "buildingqualitytypeid"       
##  [9] "calculatedbathnbr"            "decktypeid"                  
## [11] "finishedfloor1squarefeet"     "calculatedfinishedsquarefeet"
## [13] "finishedsquarefeet12"         "finishedsquarefeet13"        
## [15] "finishedsquarefeet15"         "finishedsquarefeet50"        
## [17] "finishedsquarefeet6"          "fips"                        
## [19] "fireplacecnt"                 "fullbathcnt"                 
## [21] "garagecarcnt"                 "garagetotalsqft"             
## [23] "hashottuborspa"               "heatingorsystemtypeid"       
## [25] "latitude"                     "longitude"                   
## [27] "lotsizesquarefeet"            "poolcnt"                     
## [29] "poolsizesum"                  "pooltypeid10"                
## [31] "pooltypeid2"                  "pooltypeid7"                 
## [33] "propertycountylandusecode"    "propertylandusetypeid"       
## [35] "propertyzoningdesc"           "rawcensustractandblock"      
## [37] "regionidcity"                 "regionidcounty"              
## [39] "regionidneighborhood"         "regionidzip"                 
## [41] "roomcnt"                      "storytypeid"                 
## [43] "threequarterbathnbr"          "typeconstructiontypeid"      
## [45] "unitcnt"                      "yardbuildingsqft17"          
## [47] "yardbuildingsqft26"           "yearbuilt"                   
## [49] "numberofstories"              "fireplaceflag"               
## [51] "structuretaxvaluedollarcnt"   "taxvaluedollarcnt"           
## [53] "assessmentyear"               "landtaxvaluedollarcnt"       
## [55] "taxamount"                    "taxdelinquencyflag"          
## [57] "taxdelinquencyyear"           "censustractandblock"

Bei der Betrachtung der Featurenamen wird klar, das diese teilweise sehr kryptisch sind. Aus diesem Grund werden die wichtigsten Features für die weitere Arbeit umbenannt:

##  [1] "id_parcel"                          "lüftung_id"                        
##  [3] "architektur_styleid"                "keller_größe"                      
##  [5] "anzahl_badezimmer"                  "anzahl_schlafzimmer"               
##  [7] "baumaterial_klasse_id"              "qualität_id"                       
##  [9] "anzahl_badezimmer_calc"             "terrassen_id"                      
## [11] "erdgeschoss_größe_finished"         "wohnfläche_gesamt_finished_calc"   
## [13] "größe_finished_Wohnfläche"          "größe_perimeterlivingarea_finished"
## [15] "größe_gesamt_finished"              "finishedsquarefeet50"              
## [17] "Fläche_gesamt_unfished_finished"    "fips"                              
## [19] "anzahl_kamine"                      "anzahl_vollstä_badezimmer"         
## [21] "anzahl_garagen"                     "garage_größe_gesamt"               
## [23] "flag_tuborspa"                      "heizung_id"                        
## [25] "latitude"                           "longitude"                         
## [27] "grundstück_größe"                   "anzahl_pools"                      
## [29] "pool_größe_gesamt"                  "pooltypeid10"                      
## [31] "pooltypeid2"                        "pooltypeid7"                       
## [33] "zoneneinteilung_landuse_county"     "zoneneinteilung_landuse"           
## [35] "zoneneinteilung_property"           "rawcensustractandblock"            
## [37] "stadt"                              "bundesstaat"                       
## [39] "region_neighbor"                    "region_zipcode"                    
## [41] "anzahl_räume"                       "stockwerk_id"                      
## [43] "anzahl_dreiviertel_badezimmer"      "material_id"                       
## [45] "anzahl_wohnungen"                   "terrassen_größe"                   
## [47] "schuppen_größe"                     "baujahr"                           
## [49] "anzahl_stockwerke"                  "flag_kamin"                        
## [51] "steuern_gebäude"                    "steuern_total"                     
## [53] "steuer_year"                        "steuern_grundstück"                
## [55] "steuern_property"                   "steuer_delinquency"                
## [57] "steuer_delinquency_year"            "censustractandblock"

Metrische Features und IDs

Für die weitere Arbeit ist es notwendig zwischen metrischen und nicht metrischen Features zu unterscheiden.

Nicht metrische Daten sind hierbei Features wie Qualität_ID oder Heizung_ID

Weiter Analyse der relevanten Features

Nun werden nur die metrischen Variablen, welche später als Grundlage für die PCA dienen betrachtet. Zunächst werden alle Features mit dem Datentyp Character und Ordinale bzw. Nominale Feautres aus dem Datensatz entfernt.

Verbleibende Features:

##  [1] "keller_größe"                       "anzahl_badezimmer"                 
##  [3] "anzahl_schlafzimmer"                "anzahl_badezimmer_calc"            
##  [5] "erdgeschoss_größe_finished"         "wohnfläche_gesamt_finished_calc"   
##  [7] "größe_finished_Wohnfläche"          "größe_perimeterlivingarea_finished"
##  [9] "größe_gesamt_finished"              "finishedsquarefeet50"              
## [11] "Fläche_gesamt_unfished_finished"    "anzahl_kamine"                     
## [13] "anzahl_vollstä_badezimmer"          "anzahl_garagen"                    
## [15] "garage_größe_gesamt"                "grundstück_größe"                  
## [17] "anzahl_pools"                       "pool_größe_gesamt"                 
## [19] "anzahl_räume"                       "anzahl_dreiviertel_badezimmer"     
## [21] "anzahl_wohnungen"                   "terrassen_größe"                   
## [23] "schuppen_größe"                     "anzahl_stockwerke"                 
## [25] "steuern_gebäude"                    "steuern_total"                     
## [27] "steuern_grundstück"

Als nächstes muss überprüft werden, wie hoch der Anteil der NAs in den verbleibenden Features ist. Features mit den einem Anteil von weniger als 50 % NAs werden beibehalten.

Es bleiben übrig:

##  [1] "anzahl_wohnungen"                "grundstück_größe"               
##  [3] "größe_finished_Wohnfläche"       "anzahl_badezimmer_calc"         
##  [5] "anzahl_vollstä_badezimmer"       "steuern_grundstück"             
##  [7] "steuern_gebäude"                 "wohnfläche_gesamt_finished_calc"
##  [9] "steuern_total"                   "anzahl_räume"                   
## [11] "anzahl_badezimmer"               "anzahl_schlafzimmer"

Bei den verbleibenden Features wird ersichtlich, dass “größe_finished_Wohnfläche”, “anzahl_vollstä_badezimmer”, “anzahl_badezimmer” redunant sind und somit ebenfalls entfernt werden müssen.

## [1] "Anzhal der unterschiedlichen Rows zwischen anzahl_badezimmer und anzahl_badezimmer_calc: "
## [1] anzahl_badezimmer      anzahl_badezimmer_calc
## <0 Zeilen> (oder row.names mit Länge 0)
## [1] "Wert 0 innerhalb der Spalte anzahl_badezimmer: 113470 ."

Beide Features enthalten die selben informationen.Anzahl Badezimmer weisst auffällig viele “0” auf. Da es eher für unrealistisch erachtet wird, das ein/e Haus/Wohnung kein Bad hat, wird anzahl_badezimmer_calc beibehalten, da davon auszugehen ist, das die 0 vermutlich NA sein sollten. Anzahl_vollstän_Badezimmer wird ebefalls aus dem Datensatz entfernt, da dieser “halbe” Bäder nicht berücksichtigt. In den USA gilt ein Bad nicht als vollständig wenn z.B nicht alle Geräte sink + toilet + bathtub + shower vorhanden sind. So zählt ein Bad ohne Badewanne nicht als vollständiges Bad.

größe_finished_wohnfläche und wohnfläche_gesamt_finished_calc:

## [1] "Ähnlich verhält es sich mit größe_finished_Wohnfläche und wohnfläche_gesamt_finished_calc. Hier beträgt die Anzahl an ungleichen Rows: "
## [1] größe_finished_Wohnfläche       wohnfläche_gesamt_finished_calc
## <0 Zeilen> (oder row.names mit Länge 0)
## [1] " Summe von NA in größe_finished_Wohnfläche: 264431 Summe von NA in wohnfläche_gesamt_finished_calc:  45097 Da wohnfläche_gesamt_finished_calc weniger NAs beinhaltet wird dieses Feature behalten."

Schluss