Cominciamo col creare un rapporto ad hoc in Google Analytics. Dopo aver eseguito il login, selezioniamo l'intervallo di date che vogliamo analizzare. Quindi clickiamo su Visitatori.
Nel sottomenù che si apre clickiamo su Visite. A questo punto possiamo salvare il report, clickando su Esporta e quindi clickando su CSV per Excel (è importante salvare in questo formato, e non semplicemente in CSV, altrimenti importare i dati da Excel ad R risulterà difficoltoso).
Salviamo il file CSV, e apriamolo con Excel. Ecco come ci appare (ho preso solo alcune celle):
A questo punto importiamo i dati in R. Con mia grande gioia, ho scoperto che importare i dati da Excel in R è estremamente semplice. E' sufficiente selezionare la colonna (o le colonne) di nostro interesse (nel nostro caso la colonna
Visite
) e copiare negli appunti (ricordiamoci di selezionare la cella Visite
, perchè ci tornerà utile):Fatto ciò, apriamo R e incolliamo i nostri valori in maniera estremamente semplice con un solo comando:
> myvisit <- read.delim("clipboard")
In che formato R interpreta i dati che gli sono stati forniti? Osserviamo il contenuto di
myvisit
(qui ci sono solo i primi 10 valori, per comodità):> myvisit
Visite
1 6
2 10
3 7
4 8
5 7
6 6
7 4
8 9
9 8
10 11
E' un dataframe a una sola colonna, il cui nome è
Visite
(per questo ho specificato di copiare anche la cella Visite da Excel).A questo punto abbiamo in R e possiamo procedere con l'analisi del trend, nei due modi proposti: tramite un test di Cox-Stuart e tramite l'analisi della retta di regressione.
La funzione per effettuare il test di Cox-Stuart è disponibile in questo post. Qui mi limiterò esclusivamente ad utilizzarla. Innanzitutto dobbiamo convertire il dataframe in un formato che può essere letto dalla funzione cox.stuart.test, in questo modo:
> visite <- c(myvisit$Visite)
Ho creato in questo modo un vettore (visite) che contiene tutti i dati ordinati che si trovavano nella colonna Visite del dataframe myvisit. Adesso effettuiamo un test di Cox-Stuart:
> cox.stuart.test(visite)
Cox-Stuart test for trend analysis
data:
Trend in aumento - p-value = 0
L'output è molto esplicativo: è stato rilevato un trend in aumento delle visite, altamente significativo (essendo p-value < 0.5). Osserviamo qui che p-value = 0. In realtà questa è una approssimazione, perchè eseguendo i calcoli singolarmente (come descritto nel post a riguardo), otterremo p-value = 2.375132e-08, cioè un valore estremamente piccolo.
Riassumendo quindi, secondo il test di Cox-Stuart esiste un significativo trend in aumento delle visite.
Se non siamo soddisfatti o sicuri di questo risultato, possiamo prendere in considerazione il coefficiente angolare della retta di regressione.
Innanzitutto può essere comodo visualizzare i risultati. Il vettore visite contiene le visite giornaliere al sito. Ora creiamo un vettore ordinato dei giorni considerati, della stessa lunghezza del vettore visite:
> giorni <- c(1 : length(visite))
Creiamo un plot con i dati:
> plot(giorni, visite, type="b")
Scegliendo
type="b"
visualizzo punti e linee, come appare in figura:Da questo plot non è facile osservare un eventuale trend sull'andamento delle visite. Possiamo però fare un'analisi di regressione. Valutando il segno del coefficiente angolare della retta, possiamo stimare se il trend è in aumento o in calo:
> fit <- lm(visite ~ giorni)
> summary(fit)
Call:
lm(formula = visite ~ giorni)
Residuals:
Min 1Q Median 3Q Max
-33.254 -7.628 -1.253 7.497 106.559
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 25.93965 1.62693 15.944 < 2e-16 ***
giorni 0.06251 0.01015 6.161 2.56e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 13.5 on 275 degrees of freedom
Multiple R-squared: 0.1213, Adjusted R-squared: 0.1181
F-statistic: 37.96 on 1 and 275 DF, p-value: 2.559e-09
Il coefficiente angolare ha valore
b = 0.06251
. Esso ha quindi segno positivo (pur essendo piccolo in valore assoluto), quindi è lecito pensare ad un trend in aumento. Il valore della statistica t-test sul coefficiente angolare, e il suo relativo p-value indicano entrambi che esso è significativo. Possiamo quindi affermare che c'è un trend in aumento.Possiamo infine visualizzare la retta di regressione direttamente sul grafico plot ottenuto in precedenza in questo modo:
> plot(giorni, visite, type="b")
> abline(fit, col="red", lwd=3)
Oppure analogamente in questa maniera:
> plot(giorni, visite, type="b")
> abline(lm(visite ~ giorni), col="red", lwd=3)
Il comando abline permette di aggiungere una retta definita dall'equazione contenuta, direttamente sul grafico che stavamo visualizzando; il parametro col specifica il colore, e il parametro lwd specifica lo spessore della linea. Osserviamo ora il grafico:
E' evidente come ci sia un trend in aumento, sia pur relativamente basso.
Nessun commento:
Posta un commento