Dopo aver scritto il post che presentava l’idea generale del modello predittivo dell’audience di un talk-show politico a partire dall’attività su Twitter (nel post anche il volume medio dei Tweet generati dagli hashtag ufficiali delle principali trasmissioni nella prima parte di stagione) mi è venuto in mente un modo semplice per migliorare significativamente le capacità predittive del modello.
Guardando l’audience delle 376 puntate prese in considerazione sembra piuttosto evidente che le variazioni nelle puntate di un singolo programma siano piuttosto contenute.
Questo significa che ogni talk-show ha un pubblico piuttosto affezionato ed abitudinario che produce un audience che non si differenzia molto di puntata in puntata. La trasmissione con la varianza maggiore è Omnibus (28% dell’audience media), quella con la minore varianza è ServizioPubblico (0.09%).
Questi dati ci danno un’idea di massima di quanto ogni trasmissione abbia un pubblico stabile di puntata in puntata (anche se va tenuto presente che la varianza, di solito, cresce al crescere dal numero di puntate trasmesse). Al di là del dettaglio sul singolo programma quello che conta è che l’audience non cambia molto di puntata in puntata. Questo significa che la media dell’audience delle puntate precedenti dovrebbe essere un buon predittore dell’audience della puntata futura. Infatti le performance di un modello di regressione lineare semplice basato sull’audience media come variabile indipendente vanta performance decisamente migliori di quelli testati in precedenza.
Residuals:
Min 1Q Median 3Q Max
-966867 -96515 -8538 84705 936133
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.305e-09 1.770e+04 0.00 1
showdata$avg_audience 1.000e+00 1.331e-02 75.16 —
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 221300 on 374 degrees of freedom
Multiple R-squared: 0.9379, Adjusted R-squared: 0.9377
F-statistic: 5648 on 1 and 374 DF, p-value: < 2.2e-16
A questo punto possiamo chiederci se l’aggiunta della variabile volume dei Tweet al minuto migliori le performance del modello ed infatti…
Residuals:
Min 1Q Median 3Q Max
-919587 -90990 -8523 82001 928457
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.557e+04 1.700e+04 0.916 0.36
showdata$avg_audience 9.141e-01 1.846e-02 49.512 < 2e-16 ***
showdata$tm 7.485e+03 1.172e+03 6.389 4.97e-10 ***
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 210400 on 373 degrees of freedom
Multiple R-squared: 0.944, Adjusted R-squared: 0.9437
F-statistic: 3145 on 2 and 373 DF, p-value: < 2.2e-16
L’errore standard diminuisce da 221300 a 210400 e la percentuale di varianza spiegata dal modello sale dallo 0.93 allo 0.94%. La differenza fra i due modelli, ancorché contenuta è tuttavia significativa.
Analysis of Variance Table
Model 1: showdata$audience ~ showdata$avg_audience
Model 2: showdata$audience ~ showdata$avg_audience + showdata$tm
Res.Df RSS Df Sum of Sq F Pr(>F)
1 374 1.8314e+13
2 373 1.6508e+13 1 1.8067e+12 40.823 4.972e-10 ***
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
A questo punto rimane solo da fare un’ultima prova. Cosa accade inserendo nel modello anche la variabile networked_publics (ovvero il valore medio del rapporto fra volume di Tweet ed audience – cioè la percentuale di attività dell’audience) propria di ciascuna trasmissione?
Residuals:
Min 1Q Median 3Q Max
-884852 -85906 -29916 89933 893697
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.913e+04 1.938e+04 4.599 5.83e-06 ***
showdata$avg_audience 8.613e-01 1.910e-02 45.098 < 2e-16 ***
showdata$tm 1.501e+04 1.567e+03 9.579 < 2e-16 ***
showdata$networked_publics -9.494e+07 1.400e+07 -6.783 4.66e-11 ***
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 198700 on 372 degrees of freedom
Multiple R-squared: 0.9502, Adjusted R-squared: 0.9498
F-statistic: 2365 on 3 and 372 DF, p-value: < 2.2e-16
Si ottiene un modello ancora più preciso caratterizzato da un errore standard di 198700 ed un Adjusted R-squared di 0.95. In pratica questo modello è in grado di prevedere l’audience di un talk show politico sulla base del volume dei Tweet prodotto dall’hashtag ufficiale della trasmissione con un margine di errore che inizia a diventare interessante e forse utile nella pratica.
L’analisi della varianza degli ultimi due modelli testati conferma che la differenza fra i modelli è statisticamente significativa
Analysis of Variance Table
Model 1: showdata$audience ~ showdata$avg_audience + showdata$tm
Model 2: showdata$audience ~ showdata$avg_audience + showdata$tm + showdata$networked_publics
Res.Df RSS Df Sum of Sq F Pr(>F)
1 373 1.6508e+13
2 372 1.4691e+13 1 1.8168e+12 46.005 4.655e-11 ***
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1