Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati.
introduzione
In questo articolo, Mostrerò come eseguire un'analisi di regressione e ottimizzare il prezzo del noleggio in R, quindi incolla il valore in excel, che in seguito si collegherà nuovamente a Tableau per eseguire ulteriori calcoli con altri campi nel set di dati originale.
Questo tipo di perfetta integrazione tra 3 Diversi strumenti di analisi possono aiutare gli analisti di dati a eseguire indagini statistiche in R, quindi migra i risultati in Tableau e visualizzali in modo digeribile per i lettori aziendali.
Introduzione al set di dati utilizzato e requisiti aziendali
Il set di dati per questo esempio è tratto dal progetto Capstone all'interno “Excel un MySQL: Tecniche analitiche per le aziende”. Questa è una tabella che contiene informazioni sugli immobili in affitto di un'azienda, con informazioni sul tasso di occupazione degli affitti a breve termine e il prezzo medio dell'affitto per notte. Abbiamo anche dati sul prezzo in percentile 10 e percentile 90 di proprietà simili nella stessa regione.
Il nostro requisito aziendale è trovare un prezzo ottimizzato per ogni proprietà, in modo che le entrate possano essere massimizzate. Poiché il reddito è una funzione del tasso di occupazione * prezzo di affitto per notte * 365 (supponendo che la proprietà possa essere affittata tutto l'anno), dobbiamo esprimere il tasso di occupazione in funzione del prezzo di affitto per notte, che può essere fatto con una semplice regressione lineare
Il prossimo compito è eseguire la funzione di ottimizzazione R, proprio come usiamo Risolutore in Excel, per ogni proprietà o ogni riga nel set di dati.
Con il prezzo ottimizzato e il tasso di occupazione previsto, possiamo calcolare l'utile lordo totale dell'azienda e fare molte altre analisi.
Collega R con Tableau
Per prima cosa dobbiamo connettere Tableau con R.
Prima di collegare R con Tableau, assicurati che la tua console R abbia già installato Rserve.
library("Rserve")
Rserve()
Ora, R dovrebbe stampare ‘Iniciando Rserve …’. Si observa este resultado, entonces R se está comunicando con Tableau para establecer una conexión.
2) Abra Tableau y haga clic en Ayuda> Configuración y rendimiento> Administrar conexiones de servicios externos.
3) En el cuadro de diálogo que se abre, elija ‘localhost’ para Servidor y escriba ‘6311’ para Puerto.
4) Dopo, haga clic en Probar conexión
Ora, debería aparecer un cuadro de diálogo que diga: ‘Conectado con éxito al servicio R serve’. Significa que está listo para usar R con Tableau
Cree un campo calculado que ejecute código R en Tableau
Cree un campo calculado y pegue el siguiente código:
SCRIPT_REAL( "df <- data.frame(.arg1,.arg2,.arg3,.arg4,.arg5) modello <-lm(dati=df,.arg1 ~ .arg2) Create revenue function. revenue <- funzione(dati,attraverso) { par_vs_10th <- par-data$.arg3 normalized_price <-0.1+0.8*par_vs_10th/data$.arg5 fcst_occupancy <-coef(modello)['(Intercettare)']+coef(modello)['.arg2']*normalized_price fcst_st_revenue <-fcst_occupancy*365*par fcst_st_revenue } Run optim for each row in df. Find the value of "attraverso"-rent price-that can optimize revenue function per (io in 1:ora(df)) {df[io,'optimized_price'] <-ottimale(122,revenue,dati=df[io,],method='L-BFGS-B', control=list(fnscale=-1),inferiore=df[io,'.arg3']) } #restituisce il prezzo ottimizzato come output per il campo calcolato df$ottimizzato_prezzo", somma([Tasso di occupazione]), media([sample_price_percentile]), media([Percentile10esimo prezzo]), media([Percentile 90esimo prezzo]), media([percentile_90th_vs_10th]), attr([ID proprietà Ws]))
Il codice R deve essere scritto in una funzione come SCRIPT_REAL, che restituisce valori numerici. Esistono altre funzioni R simili in Tableau, come SCRIPT_BOOL e SCRIPT_INT, in base ai valori che vuoi recuperare.
Prima di correre, dobbiamo creare una tabella: df <-data.frame (.arg1, .argomento2,…)
.arg1, .arg2... sono i campi dell'origine dati in Tableau. Sono le parole in grassetto del codice. .arg1 è il tasso di occupazione, .arg2 es el sample_price_percentile.
Il R_code sarà racchiuso tra parentesi (”“). L'ultima riga di codice: df $ optim_price determinerà il valore di ritorno per questo calcolo.
Per una spiegazione dettagliata sull'esecuzione della regressione lineare e ottimale in R, vedi link sotto:
Questo calcolo è un calcolo tabellare. Assicurati che sia calcolato insieme all'ID proprietà.
Creemos una vista para ver esta misuraIl "misura" È un concetto fondamentale in diverse discipline, che si riferisce al processo di quantificazione delle caratteristiche o delle grandezze degli oggetti, fenomeni o situazioni. In matematica, Utilizzato per determinare le lunghezze, Aree e volumi, mentre nelle scienze sociali può riferirsi alla valutazione di variabili qualitative e quantitative. L'accuratezza della misurazione è fondamentale per ottenere risultati affidabili e validi in qualsiasi ricerca o applicazione pratica.....
Ora abbiamo ottimizzato il prezzo di ogni immobile.
tuttavia, ora si verifica un problema. Questa misura è un calcolo tabellare e possiamo avere un solo valore per proprietà quando lo guardiamo in una tabella. Non possiamo incorporarlo in un altro calcolo.
Ad esempio, Voglio normalizzare il prezzo ottimizzato a un valore percentile utilizzando la seguente formula:
0,1 + 0,8 * (prezzo ottimizzato 10° percentile prezzo) / (90° percentile contro 10°)
Tableau genererà un errore, dicendo che non possiamo mescolare una misura aggregata con un valore non aggregato. Questo è davvero scomodo e inflessibile, poiché potremmo voler sfruttare un calcolo codificato R per molte più misurazioni.
Per mitigare questo problema, Ho trovato una soluzione: scrivi i valori ottimizzati per R su file csv o excel, luego una este nuevo conjunto de datos con la Origine datiUN "Origine dati" si riferisce a qualsiasi luogo o supporto in cui è possibile ottenere informazioni. Queste fonti possono essere sia primarie che, come sondaggi ed esperimenti, come secondario, come banche dati, articoli accademici o rapporti statistici. La scelta corretta di una fonte di dati è fondamentale per garantire la validità e l'affidabilità delle informazioni nella ricerca e nell'analisi.... original en Tableau para la creación de otras visualizaciones o medidas.
Integrazione finale
Creiamo un altro campo di calcolo in Tableau, chiamato Script. Questa volta non restituiremo un valore numerico, ma scriveremo gli output in un file CSV esterno. Nel mio esempio, Scrivo in CSV per semplicità, ma puoi anche scrivere nel file xlsx se preferisci.
SCRIPT_REAL( "df <- data.frame(.arg1,.arg2,.arg3,.arg4,.arg5) modello <-lm(dati=df,.arg1 ~ .arg2) revenue <- funzione(dati,attraverso){ par_vs_10th <- par-data$.arg3 prezzo_normalizzato <-0.1+0.8*par_vs_10th/data$.arg5 fcst_occupancy <-coef(modello)['(Intercettare)']+coef(modello)['.arg2']*prezzo_normalizzato fcst_st_revenue <-fcst_occupancy*365*par fcst_st_revenue } per (io in 1:ora(df)) {df[io,'optimized_price'] <-ottimale(122,revenue,dati=df[io,],method='L-BFGS-B', control=list(fnscale=-1),inferiore=df[io,'.arg3']) } df$prezzo_normalizzato_ottimizzato<-0.1+0.8*(df$ottimized_price-df$.arg3)/(df$.arg5) #Crea un nuovo dataframe, sostituendo .arg2(sample_percentile_price) con il prezzo ottimizzato normalizzato nuovo <-data.frame(.arg2=df$prezzo_ottimizzato_normalizzato) #Prevedi il tasso di occupazione in base al prezzo ottimizzato e aggiungi come nuova colonna a df df["Previsione di occupazione"]=prevedere.lm(modello, nuovi dati=nuovi) #Aggiungi ID proprietà a df df["ID proprietà Ws"]= .arg6 #Scrivi df in un file CSV scrivere.tabella(df,'D:/Documenti/Analisi aziendale/4. Visualizzazione/Capstone aziendale/Blogathon/new.csv',settembre=',',row.names=FALSO,citazione=FALSO,col.names = TRUE) ", somma([Tasso di occupazione]), media([sample_price_percentile]), media([Percentile 10° Prezzo]), media([Percentile 90esimo prezzo]), media([percentile_90th_vs_10th]), attr([ID proprietà Ws]))
Il prossimo passo è creare un nuovo foglio, chiamato Foglio 2, ad esempio. Prossimo, trascina l'ID proprietà e la misura dello script su Dettagli sulla scheda del marchio.
Dovresti vedere un messaggio come il seguente:
Basta ignorare quel messaggio di errore. Apri la cartella che hai specificato nel calcolo dello script e vedrai che è stato appena creato un nuovo file CSV.
Il nostro prossimo compito è più semplice, collega semplicemente la cartella di lavoro di Tableau a questo file CSV e uniscilo all'origine dati originale, secondo chiave esterna: ID proprietà WS.
Ora, a PannelloUn panel è un gruppo di esperti che si riunisce per discutere e analizzare un argomento specifico. Questi forum sono comuni alle conferenze, seminari e dibattiti pubblici, dove i partecipanti condividono le loro conoscenze e prospettive. I pannelli possono riguardare una varietà di aree, Dalla scienza alla politica, e il suo obiettivo è quello di favorire lo scambio di idee e la riflessione critica tra i partecipanti.... di dati, un nuovo set di dati è disponibile per l'uso.
Poiché abbiamo il prezzo ottimizzato e il tasso di occupazione previsto come campi normali, possiamo usarli per calcoli aggiuntivi senza problemi relativi al livello aggiuntivo come sopra.
Supponiamo di voler creare una misura chiamata Gross Revenue = Optimized Price * Tasso di occupazione * 365. Il calcolo è ora valido.
Nel futuro, en caso de que haya cambios en los datos de addestramentoLa formazione è un processo sistematico volto a migliorare le competenze, conoscenze o abilità fisiche. Viene applicato in vari ambiti, come lo sport, Formazione e sviluppo professionale. Un programma di allenamento efficace include la pianificazione degli obiettivi, Pratica regolare e valutazione dei progressi. L'adattamento alle esigenze individuali e la motivazione sono fattori chiave per ottenere risultati di successo e sostenibili in qualsiasi disciplina.... (segno del prezzo a notte), o se aggiungi più funzioni al modello lineare. Basta aprire il foglio 2 di nuovo per riattivare il processo e recuperare nuovi risultati.
Note finali
La capacità di scrivere codice R in un calcolo rende Tableau più flessibile del suo rivale, Potenza BI, in termini di connessione con piattaforme di analisi dati esterne. Quando si combina Tableau, Excel e R, possiamo utilizzare la potenza di molti strumenti contemporaneamente per le nostre pratiche analitiche.
Avere altre idee e casi d'uso relativi all'uso di Python e R in Tableau? Non esitate a commentare questo articolo..