Integrieren von R, Tabelle und Excel

Inhalt

Dieser Artikel wurde im Rahmen der Data Science Blogathon.

Einführung

In diesem Artikel, Ich werde zeigen, wie wir eine Regressionsanalyse durchführen und den Mietpreis in R . optimieren können, dann füge den Wert in Excel ein, die später wieder eine Verbindung zu Tableau herstellt, um weitere Berechnungen mit anderen Feldern im ursprünglichen Datensatz durchzuführen.

Diese Art der nahtlosen Integration zwischen 3 Verschiedene Analysetools können Datenanalysten dabei helfen, statistische Untersuchungen in R . durchzuführen, Migrieren Sie dann die Ergebnisse in Tableau und visualisieren Sie sie für Geschäftsleser leicht verdaulich.

Einführung in den verwendeten Datensatz und die Geschäftsanforderungen

Der Datensatz für dieses Beispiel stammt aus dem Capstone-Projekt innerhalb von „Excel ein MySQL: Analysetechniken für Unternehmen“. Dies ist eine Tabelle, die Informationen zu den Mietobjekten eines Unternehmens enthält, mit Informationen zur Kurzzeitmietauslastung und zum durchschnittlichen Mietpreis pro Nacht. Wir haben auch Daten zum Preis im Perzentil 10 und Perzentil 90 von ähnlichen Immobilien in der gleichen Region.

Unsere Geschäftsanforderung ist es, für jede Immobilie einen optimierten Preis zu finden, damit der Umsatz maximiert werden kann. Da das Einkommen eine Funktion der Auslastung ist * Mietpreis pro Nacht * 365 (Vorausgesetzt, die Immobilie kann ganzjährig gemietet werden), wir müssen die Auslastung als Funktion des Mietpreises pro Nacht ausdrücken, was durch einfache lineare Regression möglich ist

Die nächste Aufgabe besteht darin, die R optim-Funktion auszuführen, genau wie wir Solver in Excel verwenden, für jede Eigenschaft oder jede Zeile im Datensatz.

Mit dem optimierten Preis und der erwarteten Auslastung, Wir können den Gesamtrohertrag des Unternehmens berechnen und viele andere Analysen durchführen.

R mit Tableau verbinden

26593erfassen-5554563

Zuerst müssen wir Tableau mit R . verbinden.

Bevor Sie R mit Tableau verbinden, Stellen Sie sicher, dass Ihre R-Konsole bereits Rserve installiert hat.

library("Rserve")

Rserve()

Jetzt, R sollte drucken ‚Starte Rserve …‘. Wenn Sie dieses Ergebnis sehen, dann kommuniziert R mit Tableau, um eine Verbindung herzustellen.

2) Öffnen Sie Tableau und klicken Sie auf Hilfe> Konfiguration und Leistung> Externe Serviceverbindungen verwalten.
3) Im sich öffnenden Dialog, wählen ‚localhost‘ zum Server und schreibe ‚6311‘ für Puerto.
4) Später, Klicken Sie auf Verbindung testen

Jetzt, Es sollte ein Dialogfeld mit der Aufschrift . erscheinen: ‚Erfolgreich mit dem Rserve-Dienst verbunden‘. Das bedeutet, dass Sie R mit Tableau verwenden können

Erstellen Sie ein berechnetes Feld, das R-Code in Tableau ausführt

Erstellen Sie ein berechnetes Feld und fügen Sie den folgenden Code ein:

SCRIPT_REAL(
"df <- data.frame(.arg1,.arg2,.arg3,.arg4,.arg5)

Modell <-lm(Daten=df,.arg1 ~ .arg2)

Umsatzfunktion anlegen. 
Einnahmen <- Funktion(Daten,durch) {
par_vs_10th <- par-data$.arg3
normalisierter_Preis <-0.1+0.8*par_vs_10th/data$.arg5
fcst_occupancy <-coef(Modell)['(Abfangen)']+coef(Modell)['.arg2']*normalisierter_Preis
fcst_st_revenue <-fcst_occupancy*365*par
fcst_st_revenue
}

Führen Sie Optim für jede Zeile in df . aus. Finden Sie den Wert von "durch"-Mietpreis – das kann die Ertragsfunktion optimieren
zum (ich bin dabei 1:jetzt(df)) 
{df[ich,'optimierter_Preis'] <-Optimum(122,Einnahmen,Daten=df[ich,],Methode='L-BFGS-B', control=liste(fnscale = -1),niedriger=df[ich,'.arg3']) }

#Rückgabe des optimierten Preises als Ausgabe für das berechnete Feld
df$optimized_price",

Summe([Belegungsrate]),
durchschnittlich([sample_price_percentile]),
durchschnittlich([Perzentil10. Preis]),
durchschnittlich([Perzentil 90. Preis]),
durchschnittlich([perzentile_90th_vs_10th]),
attr([Ws-Eigenschafts-ID]))

Der R-Code muss in einer Funktion wie SCRIPT_REAL . geschrieben werden, was numerische Werte zurückgibt. Es gibt andere ähnliche R-Funktionen in Tableau, como SCRIPT_BOOL und SCRIPT_INT, basierend auf den Werten, die Sie abrufen möchten.

Vor dem Laufen, Wir müssen eine Tabelle erstellen: df <-data.frame (.arg1, .arg2,…)

.arg1, .arg2… sind die Datenquellenfelder in Tableau. Es sind die fetten Worte des Codes. .arg1 ist die Auslastung, .arg2 es el sample_price_percentile.

Der R_code wird in Klammern eingeschlossen (”“). Die letzte Codezeile: df $ optim_price bestimmt den Rückgabewert für diese Berechnung.

Für eine detaillierte Erklärung zum Ausführen der linearen und optimalen Regression in R, siehe Link unten:

https://nguyenkhoi6394.github.io/Excel-to-MySQL-Capstone-Project/Using_Optim_for_a_dataframe_in_R.html

Diese Berechnung ist eine Tabellenberechnung. Stellen Sie sicher, dass es zusammen mit der Property-ID berechnet wird.

89327pic1-3291782

Lassen Sie uns eine Ansicht erstellen, um diese Messung zu sehen.

46025pic2-7680083

Jetzt haben wir den Preis jeder Immobilie optimiert.

Aber trotzdem, jetzt tritt ein problem auf. Diese Kennzahl ist eine Tabellenberechnung und wir können nur einen einzigen Wert pro Eigenschaft haben, wenn wir sie in einer Tabelle betrachten. Wir können es nicht in eine andere Berechnung einbetten.

Zum Beispiel, Ich möchte den optimierten Preis mit der folgenden Formel auf einen Perzentilwert normalisieren:

0,1 + 0,8 * (Optimierter Preis-10. Perzentilpreis) / (90. Perzentil vs. 10.)

Tableau generiert einen Fehler, sagen, wir können eine aggregierte Kennzahl nicht mit einem nicht aggregierten Wert mischen. Das ist wirklich unpraktisch und unflexibel, da wir vielleicht eine R-kodierte Berechnung für viele weitere Messungen nutzen möchten.

81229pic3-1992674

Um dieses Problem zu mildern, Ich habe einen Workaround gefunden: R-optimierte Werte in CSV- oder Excel-Datei schreiben, danach diesen neuen Datensatz mit dem Datenquelle Original in Tableau zur Erstellung anderer Visualisierungen oder Messgrößen kombinieren.

Endgültige Integration

Erstellen wir ein weiteres Berechnungsfeld in Tableau, namens Skript. Diesmal werden wir keinen numerischen Wert zurückgeben, aber wir werden die Ausgaben in eine externe CSV-Datei schreiben. In meinem Beispiel, Ich schreibe der Einfachheit halber in CSV, Sie können aber auch in eine xlsx-Datei schreiben, wenn Sie es vorziehen.

SCRIPT_REAL(
"df <- data.frame(.arg1,.arg2,.arg3,.arg4,.arg5)
 Modell <-lm(Daten=df,.arg1 ~ .arg2)

Einnahmen <- Funktion(Daten,durch){
 par_vs_10th <- par-data$.arg3
 normalisierter_Preis <-0.1+0.8*par_vs_10th/data$.arg5
 fcst_occupancy <-coef(Modell)['(Abfangen)']+coef(Modell)['.arg2']*normalisierter_Preis
 fcst_st_revenue <-fcst_occupancy*365*par
 fcst_st_revenue
 }

 zum (ich bin dabei 1:jetzt(df)) {df[ich,'optimierter_Preis'] <-Optimum(122,Einnahmen,Daten=df[ich,],Methode='L-BFGS-B', control=liste(fnscale = -1),niedriger=df[ich,'.arg3']) }
df$normalized_optimized_price<-0.1+0.8*(df$optimized_price-df$.arg3)/(df$.arg5)

#Erstellen Sie einen neuen Datenrahmen, Ersetzen von .arg2(sample_percentile_price) mit dem normalisierten optimierten Preis
Neu <-data.frame(.arg2=df$normalized_optimized_price)

#Sagen Sie die Auslastung basierend auf dem optimierten Preis voraus und fügen Sie df . als neue Spalte hinzu
df['Prognose Belegung']=vorhersagen.lm(Modell, newdata=neu)

#Property-ID zu df . hinzufügen
df['Ws Immobilien-ID']= .arg6

#df in eine CSV-Datei schreiben
 schreibe.tabelle(df,'D:/Dokumente/Geschäftsanalyse/4. Visualisierung/Business Capstone/Blogathon/new.csv',sep=',',row.names=FALSCH,quote=FALSCH,Spaltennamen = WAHR)
 ",
Summe([Belegungsrate]),
durchschnittlich([sample_price_percentile]),
durchschnittlich([Perzentil 10. Preis]),
durchschnittlich([Perzentil 90. Preis]),
durchschnittlich([perzentile_90th_vs_10th]),
attr([Ws-Eigenschafts-ID]))

Der nächste Schritt besteht darin, ein neues Blatt zu erstellen, genannt Blatt 2, zum Beispiel. Dann, Ziehen Sie die Property-ID und die Skriptkennzahl in das Detail auf der Markenkarte.

Sie sollten eine Nachricht wie die folgende sehen:

59814pic4-2654978

Ignoriere diese Fehlermeldung einfach. Öffnen Sie den Ordner, den Sie in der Skriptberechnung angegeben haben, und Sie werden sehen, dass gerade eine neue CSV-Datei erstellt wurde.

20200Bild5-2674267
87604Bild6-7481776

Unsere nächste Aufgabe ist einfacher, Verbinden Sie einfach die Tableau-Arbeitsmappe mit dieser CSV-Datei und führen Sie sie mit der ursprünglichen Datenquelle zusammen, nach Fremdschlüssel: WS-Eigenschafts-ID.

71228Bild7-8411117

Jetzt, in dem Gremium von Dateien, ein neuer Datensatz steht zur Nutzung bereit.

80811Bild8-6387792

Da haben wir den optimierten Preis und die zu erwartende Auslastung als normale Felder, wir können sie für zusätzliche Berechnungen ohne zusätzliche stufenbezogene Probleme wie oben verwenden.

Angenommen, ich möchte eine Kennzahl namens Bruttoumsatz = Optimierter Preis erstellen * Belegungsrate * 365. Die Berechnung ist nun gültig.

74361Bild9-9876650

In der Zukunft, falls es Änderungen in den Daten gibt Ausbildung (Preisschild pro Nacht), oder wenn Sie dem linearen Modell weitere Funktionen hinzufügen. Öffnen Sie einfach das Blatt 2 erneut, um den Prozess zu reaktivieren und neue Ergebnisse abzurufen.

Abschließende Anmerkungen

Die Möglichkeit, R-Code in eine Berechnung zu schreiben, macht Tableau flexibler als seine Konkurrenten, Power BI, in Verbindung mit externen Datenanalyseplattformen. Beim Kombinieren von Tableau, Excel und R, wir können die Leistungsfähigkeit vieler Tools gleichzeitig für unsere analytischen Praktiken nutzen.

Haben Sie andere Ideen und Anwendungsfälle im Zusammenhang mit der Verwendung von Python und R in Tableau? Fühlen Sie sich frei, diesen Artikel zu kommentieren..

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher