- 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 ```