- model: `meanquality_time1 ~ condition[-0.5/0.5] * meanquality_time0 * count_time1`
- same as [[220303_135802 fact-checker analyses|fact-checker analyses]] but add another predictor to the model
- to control for no. of domains in the analysis
- count of fact-checker domains shared **during the campaign** (`log(count_time1 + 1)` then mean-centered; variable: `count_t1LC`)
- see also [[220306_130626 iffy misinfome retweet analyses|iffy misinfome retweet analyses]]
```r
# ols
OLS estimation, Dep. Var.: mean_t1
Observations: 32,888
Standard-errors: IID
Estimate Std. Error t value Pr(>|t|)
(Intercept) 59.442337 0.084922 699.966177 < 2.2e-16 ***
conditionC 0.020752 0.169843 0.122181 0.9027567
mean_t0C 0.435210 0.004268 101.979286 < 2.2e-16 ***
count_t1LC -0.146674 0.063470 -2.310924 0.0208432 *
conditionC:mean_t0C -0.024616 0.008535 -2.884055 0.0039285 ** # interaction
conditionC:count_t1LC -0.036251 0.126940 -0.285576 0.7752049
mean_t0C:count_t1LC 0.236230 0.003373 70.043087 < 2.2e-16 ***
conditionC:mean_t0C:count_t1LC 0.005237 0.006745 0.776438 0.4374962
---
# robust SEs
z test of coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 59.4423368 0.0849270 699.9228 < 2.2e-16 ***
conditionC 0.0207516 0.1698540 0.1222 0.9027620
mean_t0C 0.4352105 0.0045535 95.5767 < 2.2e-16 ***
count_t1LC -0.1466743 0.0430758 -3.4050 0.0006616 ***
conditionC:mean_t0C -0.0246162 0.0091070 -2.7030 0.0068720 ** # interaction
conditionC:count_t1LC -0.0362510 0.0861516 -0.4208 0.6739146
mean_t0C:count_t1LC 0.2362298 0.0023168 101.9656 < 2.2e-16 ***
conditionC:mean_t0C:count_t1LC 0.0052373 0.0046335 1.1303 0.2583486
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# blocking with robust SEs
> m1 <- feols(mean_t1 ~ conditionC * mean_t0C * count_t1LC | block, dt1[domain_type == "overall"])
> summary(m1, vcov = "HC1")
OLS estimation, Dep. Var.: mean_t1
Observations: 32,888
Fixed-effects: block: 5,424
Standard-errors: Heteroskedasticity-robust
Estimate Std. Error t value Pr(>|t|)
conditionC -0.014765 0.166907 -0.088459 0.9295121
mean_t0C 0.366886 0.005551 66.088976 < 2.2e-16 ***
count_t1LC -0.672790 0.076052 -8.846427 < 2.2e-16 ***
conditionC:mean_t0C -0.029604 0.009426 -3.140842 0.0016864 ** # interaction
conditionC:count_t1LC 0.042752 0.096453 0.443240 0.6575957
mean_t0C:count_t1LC 0.211313 0.003204 65.953393 < 2.2e-16 ***
conditionC:mean_t0C:count_t1LC 0.005567 0.005303 1.049852 0.2937954
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 13.8 Adj. R2: 0.346248
Within R2: 0.205012
```
# fact-checker quasipoisson count models
- quasipoisson models: `count_time1 ~ condition[-0.5/0.5] * count_time0`
Outcome is raw count
```r
# outcome: raw count
> m3 <- feglm(count_t1 ~ conditionC * count_t0LC | block, dt1[domain_type == "overall"], family = "quasipoisson")
NOTE: 278 fixed-effects (1,534 observations) removed because of only 0 outcomes.
> summary(m3, vcov = "HC1")
GLM estimation, family = quasipoisson, Dep. Var.: count_t1
Observations: 31,354
Fixed-effects: block: 5,146
Standard-errors: Heteroskedasticity-robust
Estimate Std. Error t value Pr(>|t|)
conditionC -0.008915 0.041273 -0.216007 0.82898
count_t0LC 0.226918 0.017490 12.974037 < 2.2e-16 ***
conditionC:count_t0LC -0.001598 0.022940 -0.069676 0.94445
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Squared Cor.: 0.421051
```
Outcome is `log(x+1)`. Very different p-values.
```r
# outcome: log(x + 1) (yes, log outcome and then fit quasipoisson to the log outcome!)
> summary(m3, vcov = "HC1")
GLM estimation, family = quasipoisson, Dep. Var.: count_t1L
Observations: 31,354
Fixed-effects: block: 5,146
Standard-errors: Heteroskedasticity-robust
Estimate Std. Error t value Pr(>|t|)
conditionC -0.023065 0.011797 -1.95518 0.050573 .
count_t0LC 0.341780 0.006855 49.86019 < 2.2e-16 ***
conditionC:count_t0LC 0.008480 0.006973 1.21626 0.223896
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Squared Cor.: 0.578242
```