setwd("C:/Users/ASUS/Desktop/_pk_baoji/1.DataAnalysis")
rm(list=ls())
set.seed(1234)
getwd()
## [1] "C:/Users/ASUS/Desktop/_pk_baoji/1.DataAnalysis/0.Code"
library(lubridate)
library(dplyr)
# 加载 plm 包
library(dplyr)  
library(plm)
library(fixest)
library(did)
library(ggplot2)
library(modelsummary)
library(tidyverse)
library(arrow)
library(data.table)
library(modelsummary)
library(tinytable)

1.读取处理数据

df = read.csv("../1.Input/pk_4_stage_level_data_clean_full.csv")
colnames(df)
##  [1] "pk_id"                 "exp_name"              "is_baoji"             
##  [4] "p_date"                "p_hour"                "p_minute"             
##  [7] "pk_anthor_cnt"         "pk_formation"          "before_bj_gifts"      
## [10] "during_bj_gifts"       "after_bj_gifts"        "during_tower_gifts"   
## [13] "total_gifts"           "before_bj_gift_cnt"    "before_bj_gifters"    
## [16] "during_bj_gift_cnt"    "during_bj_gifters"     "after_bj_gift_cnt"    
## [19] "after_bj_gifters"      "during_tower_gift_cnt" "during_tower_gifters" 
## [22] "after_exp_gift_cnt"    "after_exp_gifters"     "total_gift_cnt"       
## [25] "total_gifters"         "after_exp_gifts"       "total_gifts_sd"       
## [28] "before_bj_gifts_sd"    "during_bj_gifts_sd"    "after_bj_gifts_sd"    
## [31] "during_tower_gifts_sd" "after_exp_gifts_sd"
library(dplyr)

df <- df %>%
  mutate(
    # gifts
    log_total_gifts = log(total_gifts + 1),
    log_before_bj_gifts = log(before_bj_gifts + 1),
    log_during_bj_gifts = log(during_bj_gifts + 1),
    log_after_bj_gifts = log(after_bj_gifts + 1),
    log_during_tower_gifts = log(during_tower_gifts + 1),
    after_exp_gifts = during_bj_gifts + after_bj_gifts + during_tower_gifts,
    log_after_exp_gifts = log(after_exp_gifts + 1),
    
    # gifters
    log_before_bj_gift_cnt=log(before_bj_gift_cnt+1),
    log_before_bj_gifters= log(before_bj_gifters+1),
    log_total_gift_cnt = log(total_gift_cnt + 1),
    log_total_gifters = log(total_gifters + 1),
    log_after_exp_gift_cnt = log(after_exp_gift_cnt + 1),
    log_after_exp_gifters = log(after_exp_gifters + 1),
    
   # 人均打赏次数
    before_bj_gift_times = before_bj_gift_cnt / (before_bj_gifters + 1),
    log_before_bj_gift_times = log(before_bj_gift_times + 1),
    total_gift_times = total_gift_cnt / (total_gifters + 1),
    log_total_gift_times = log(total_gift_times + 1), 
    after_exp_total_gift_times = after_exp_gift_cnt / (after_exp_gifters + 1),
    log_after_exp_total_gift_times = log(after_exp_total_gift_times + 1), 
    
    # 人均打赏金额
    avg_before_bj_gifts = before_bj_gifts / (before_bj_gifters + 1),
    log_avg_before_bj_gifts = log(avg_before_bj_gifts + 1),
    avg_total_gifts = total_gifts / (total_gifters + 1),
    log_avg_total_gifts = log(avg_total_gifts + 1),
    avg_after_exp_gifts = after_exp_gifts / (after_exp_gifters + 1),
    log_avg_after_exp_gifts = log(avg_after_exp_gifts + 1)
  )

2.查看数据分布/summary

table(df$p_date)
## 
## 20220620 20220621 20220622 20220623 20220624 20220625 20220626 20220627 
##    14406    14761    15332    14919    15391    14664    15149    15971 
## 20220628 
##    16368
table(df$p_hour)
## 
##     0     1     2     3     4     5     6     7     8     9    10    11    12 
## 11052  5764  2849  1545   858   593   724  1114  1732  3240  4041  3730  3464 
##    13    14    15    16    17    18    19    20    21    22    23 
##  3806  4164  4859  4795  3703  2836  3463  8632 18646 23765 17586
table(df$p_minute)
## 
##  1)0-14 2)15-29 3)30-44 4)45-59 
##   34524   34695   34963   32779
table(df$exp_name)
## 
## 无暴击 有暴击 
##  69088  67873
summary(df$gifter_num)
## Length  Class   Mode 
##      0   NULL   NULL
summary(df$unique_gifter_num)
## Length  Class   Mode 
##      0   NULL   NULL

3.ATE

(1) Gifts

library(fixest)

# 定义非 log 变量和 log 变量
variables_gifts <- c(
  "total_gifts",
  "before_bj_gifts",
  "during_bj_gifts",
  "after_bj_gifts",
  "during_tower_gifts",
  "after_exp_gifts"
)

variables_gifts_log <- c(
  "log_total_gifts",
  "log_before_bj_gifts",
  "log_during_bj_gifts",
  "log_after_bj_gifts",
  "log_during_tower_gifts",
  "log_after_exp_gifts"
)

# 初始化列表存储模型
models_gifts <- list()
models_gifts_log <- list()

# 对非 log 变量进行回归
for (var in variables_gifts) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_gifts[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 对 log 变量进行回归
for (var in variables_gifts_log) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_gifts_log[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出非 log 变量回归结果
cat("\n--- Results for Non-log Variables ---\n")
## 
## --- Results for Non-log Variables ---
etable(models_gifts)
##                    total_gifts before_bj_gifts  during_bj_gifts
## Dependent Var.:    total_gifts before_bj_gifts  during_bj_gifts
##                                                                
## exp_name有暴击 16.45. (9.430) 0.2498 (0.6873) 83.87*** (3.237)
## Fixed-Effects:  -------------- --------------- ----------------
## p_date                     Yes             Yes              Yes
## p_hour                     Yes             Yes              Yes
## p_minute                   Yes             Yes              Yes
## _______________ ______________ _______________ ________________
## S.E.: Clustered      by: pk_id       by: pk_id        by: pk_id
## Observations           136,961         136,961          136,961
## R2                     0.00124         0.00123          0.00654
## Within R2              2.31e-5         8.69e-7          0.00490
## 
##                    after_bj_gifts during_tower_gifts after_exp_gifts
## Dependent Var.:    after_bj_gifts during_tower_gifts after_exp_gifts
##                                                                     
## exp_name有暴击 -39.12*** (4.292)  -28.55*** (4.364)  16.20. (9.243)
## Fixed-Effects:  ----------------- ------------------ ---------------
## p_date                        Yes                Yes             Yes
## p_hour                        Yes                Yes             Yes
## p_minute                      Yes                Yes             Yes
## _______________ _________________ __________________ _______________
## S.E.: Clustered         by: pk_id          by: pk_id       by: pk_id
## Observations              136,961            136,961         136,961
## R2                        0.00192            0.00112         0.00123
## Within R2                 0.00064            0.00033         2.34e-5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 输出 log 变量回归结果
cat("\n--- Results for Log Variables ---\n")
## 
## --- Results for Log Variables ---
etable(models_gifts_log)
##                    log_total_gifts log_before_bj_gifts log_during_bj_gifts
## Dependent Var.:    log_total_gifts log_before_bj_gifts log_during_bj_gifts
##                                                                           
## exp_name有暴击 0.0646*** (0.0110)    -0.0085 (0.0070)   1.137*** (0.0106)
## Fixed-Effects:  ------------------ ------------------- -------------------
## p_date                         Yes                 Yes                 Yes
## p_hour                         Yes                 Yes                 Yes
## p_minute                       Yes                 Yes                 Yes
## _______________ __________________ ___________________ ___________________
## S.E.: Clustered          by: pk_id           by: pk_id           by: pk_id
## Observations               136,961             136,961             136,961
## R2                         0.00593             0.00904             0.09964
## Within R2                  0.00025             1.06e-5             0.07850
## 
##                  log_after_bj_gifts log_during_tower_gifts log_after_exp_gifts
## Dependent Var.:  log_after_bj_gifts log_during_tower_gifts log_after_exp_gifts
##                                                                               
## exp_name有暴击 -0.3717*** (0.0109)    -0.3161*** (0.0125)  0.0721*** (0.0112)
## Fixed-Effects:  ------------------- ---------------------- -------------------
## p_date                          Yes                    Yes                 Yes
## p_hour                          Yes                    Yes                 Yes
## p_minute                        Yes                    Yes                 Yes
## _______________ ___________________ ______________________ ___________________
## S.E.: Clustered           by: pk_id              by: pk_id           by: pk_id
## Observations                136,961                136,961             136,961
## R2                          0.01689                0.00967             0.00596
## Within R2                   0.00839                0.00463             0.00030
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(2) Gifters

library(fixest)

# 定义非 log 变量和 log 变量
variables_gifters <- c(
  "before_bj_gift_cnt",
  "before_bj_gifters",
  "total_gift_cnt",
  "total_gifters",
  "after_exp_gift_cnt",
  "after_exp_gifters"
)

variables_gifters_log <- c(
  "log_before_bj_gift_cnt",
  "log_before_bj_gifters",
  "log_total_gift_cnt",
  "log_total_gifters",
  "log_after_exp_gift_cnt",
  "log_after_exp_gifters"
)

# 初始化列表存储模型
models_gifters <- list()
models_gifters_log <- list()

# 对非 log 变量进行回归
for (var in variables_gifters) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_gifters[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 对 log 变量进行回归
for (var in variables_gifters_log) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_gifters_log[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出非 log 变量回归结果
cat("\n--- Results for Non-log Gifters Variables ---\n")
## 
## --- Results for Non-log Gifters Variables ---
etable(models_gifters)
##                 before_bj_gift_cnt before_bj_gifters   total_gift_cnt
## Dependent Var.: before_bj_gift_cnt before_bj_gifters   total_gift_cnt
##                                                                      
## exp_name有暴击    0.0585 (0.1244)   0.0202 (0.0482) -0.9640 (0.8735)
## Fixed-Effects:  ------------------ ----------------- ----------------
## p_date                         Yes               Yes              Yes
## p_hour                         Yes               Yes              Yes
## p_minute                       Yes               Yes              Yes
## _______________ __________________ _________________ ________________
## S.E.: Clustered          by: pk_id         by: pk_id        by: pk_id
## Observations               136,961           136,961          136,961
## R2                         0.00225           0.00221          0.00238
## Within R2                  1.63e-6           1.28e-6          8.98e-6
## 
##                   total_gifters after_exp_gift_cnt after_exp_gifters
## Dependent Var.:   total_gifters after_exp_gift_cnt after_exp_gifters
##                                                                     
## exp_name有暴击 0.1606 (0.2502)    -1.023 (0.7654)   0.1851 (0.2235)
## Fixed-Effects:  --------------- ------------------ -----------------
## p_date                      Yes                Yes               Yes
## p_hour                      Yes                Yes               Yes
## p_minute                    Yes                Yes               Yes
## _______________ _______________ __________________ _________________
## S.E.: Clustered       by: pk_id          by: pk_id         by: pk_id
## Observations            136,961            136,961           136,961
## R2                      0.00226            0.00237           0.00231
## Within R2               2.99e-6            1.32e-5           4.98e-6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 输出 log 变量回归结果
cat("\n--- Results for Log Gifters Variables ---\n")
## 
## --- Results for Log Gifters Variables ---
etable(models_gifters_log)
##                 log_before_bj_gift_cnt log_before_bj_gifters log_total_gift_cnt
## Dependent Var.: log_before_bj_gift_cnt log_before_bj_gifters log_total_gift_cnt
##                                                                                
## exp_name有暴击       -0.0028 (0.0054)      -0.0032 (0.0038)   -0.0045 (0.0069)
## Fixed-Effects:  ---------------------- --------------------- ------------------
## p_date                             Yes                   Yes                Yes
## p_hour                             Yes                   Yes                Yes
## p_minute                           Yes                   Yes                Yes
## _______________ ______________________ _____________________ __________________
## S.E.: Clustered              by: pk_id             by: pk_id          by: pk_id
## Observations                   136,961               136,961            136,961
## R2                             0.00801               0.00766            0.01012
## Within R2                      2.01e-6               5.31e-6            3.18e-6
## 
##                 log_total_gifters log_after_exp_gift_cnt log_after_exp_gifters
## Dependent Var.: log_total_gifters log_after_exp_gift_cnt log_after_exp_gifters
##                                                                               
## exp_name有暴击  0.0088. (0.0049)       -0.0022 (0.0069)     0.0143** (0.0048)
## Fixed-Effects:  ----------------- ---------------------- ---------------------
## p_date                        Yes                    Yes                   Yes
## p_hour                        Yes                    Yes                   Yes
## p_minute                      Yes                    Yes                   Yes
## _______________ _________________ ______________________ _____________________
## S.E.: Clustered         by: pk_id              by: pk_id             by: pk_id
## Observations              136,961                136,961               136,961
## R2                        0.00949                0.00981               0.00947
## Within R2                  2.4e-5                7.09e-7               6.37e-5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(3) 人均打赏次数

library(fixest)

# 定义非 log 变量和 log 变量
variables_gift_times <- c(
  "before_bj_gift_times",
  "total_gift_times",
  "after_exp_total_gift_times"
)

variables_gift_times_log <- c(
  "log_before_bj_gift_times",
  "log_total_gift_times",
  "log_after_exp_total_gift_times"
)

# 初始化列表存储模型
models_gift_times <- list()
models_gift_times_log <- list()

# 对非 log 变量进行回归
for (var in variables_gift_times) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_gift_times[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 对 log 变量进行回归
for (var in variables_gift_times_log) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_gift_times_log[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出非 log 变量回归结果
cat("\n--- Results for Non-log Gift Times Variables ---\n")
## 
## --- Results for Non-log Gift Times Variables ---
etable(models_gift_times)
##                 before_bj_gift_times    total_gift_times
## Dependent Var.: before_bj_gift_times    total_gift_times
##                                                         
## exp_name有暴击     -0.0026 (0.0073) -0.0790*** (0.0157)
## Fixed-Effects:  -------------------- -------------------
## p_date                           Yes                 Yes
## p_hour                           Yes                 Yes
## p_minute                         Yes                 Yes
## _______________ ____________________ ___________________
## S.E.: Clustered            by: pk_id           by: pk_id
## Observations                 136,961             136,961
## R2                           0.00424             0.00416
## Within R2                    9.66e-7             0.00018
## 
##                 after_exp_total_gift_times
## Dependent Var.: after_exp_total_gift_times
##                                           
## exp_name有暴击        -0.0902*** (0.0152)
## Fixed-Effects:  --------------------------
## p_date                                 Yes
## p_hour                                 Yes
## p_minute                               Yes
## _______________ __________________________
## S.E.: Clustered                  by: pk_id
## Observations                       136,961
## R2                                 0.00400
## Within R2                          0.00026
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 输出 log 变量回归结果
cat("\n--- Results for Log Gift Times Variables ---\n")
## 
## --- Results for Log Gift Times Variables ---
etable(models_gift_times_log)
##                 log_before_bj_gift_times log_total_gift_times
## Dependent Var.: log_before_bj_gift_times log_total_gift_times
##                                                              
## exp_name有暴击         -0.0011 (0.0027)   -0.0082** (0.0030)
## Fixed-Effects:  ------------------------ --------------------
## p_date                               Yes                  Yes
## p_hour                               Yes                  Yes
## p_minute                             Yes                  Yes
## _______________ ________________________ ____________________
## S.E.: Clustered                by: pk_id            by: pk_id
## Observations                     136,961              136,961
## R2                               0.00683              0.00696
## Within R2                        1.13e-6              5.33e-5
## 
##                 log_after_exp_total_gift_times
## Dependent Var.: log_after_exp_total_gift_times
##                                               
## exp_name有暴击             -0.0095** (0.0030)
## Fixed-Effects:  ------------------------------
## p_date                                     Yes
## p_hour                                     Yes
## p_minute                                   Yes
## _______________ ______________________________
## S.E.: Clustered                      by: pk_id
## Observations                           136,961
## R2                                     0.00670
## Within R2                              7.13e-5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(4) 人均打赏金额

library(fixest)

# 定义非 log 变量和 log 变量
variables_avg_gifts <- c(
  "avg_before_bj_gifts",
  "avg_total_gifts",
  "avg_after_exp_gifts"
)

variables_avg_gifts_log <- c(
  "log_avg_before_bj_gifts",
  "log_avg_total_gifts",
  "log_avg_after_exp_gifts"
)

# 初始化列表存储模型
models_avg_gifts <- list()
models_avg_gifts_log <- list()

# 对非 log 变量进行回归
for (var in variables_avg_gifts) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_avg_gifts[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 对 log 变量进行回归
for (var in variables_avg_gifts_log) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_avg_gifts_log[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出非 log 变量回归结果
cat("\n--- Results for Non-log Average Gifts Variables ---\n")
## 
## --- Results for Non-log Average Gifts Variables ---
etable(models_avg_gifts)
##                 avg_before_bj_gifts   avg_total_gifts avg_after_exp_gifts
## Dependent Var.: avg_before_bj_gifts   avg_total_gifts avg_after_exp_gifts
##                                                                          
## exp_name有暴击   -0.3218* (0.1316) 1.154*** (0.3251)   1.324*** (0.3243)
## Fixed-Effects:  ------------------- ----------------- -------------------
## p_date                          Yes               Yes                 Yes
## p_hour                          Yes               Yes                 Yes
## p_minute                        Yes               Yes                 Yes
## _______________ ___________________ _________________ ___________________
## S.E.: Clustered           by: pk_id         by: pk_id           by: pk_id
## Observations                136,961           136,961             136,961
## R2                          0.00140           0.00506             0.00521
## Within R2                   3.68e-5           8.87e-5             0.00012
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 输出 log 变量回归结果
cat("\n--- Results for Log Average Gifts Variables ---\n")
## 
## --- Results for Log Average Gifts Variables ---
etable(models_avg_gifts_log)
##                 log_avg_before_bj_gifts log_avg_total_gifts
## Dependent Var.: log_avg_before_bj_gifts log_avg_total_gifts
##                                                            
## exp_name有暴击        -0.0062 (0.0048)  0.0521*** (0.0074)
## Fixed-Effects:  ----------------------- -------------------
## p_date                              Yes                 Yes
## p_hour                              Yes                 Yes
## p_minute                            Yes                 Yes
## _______________ _______________________ ___________________
## S.E.: Clustered               by: pk_id           by: pk_id
## Observations                    136,961             136,961
## R2                              0.00823             0.01064
## Within R2                       1.21e-5             0.00036
## 
##                 log_avg_after_exp_gifts
## Dependent Var.: log_avg_after_exp_gifts
##                                        
## exp_name有暴击      0.0545*** (0.0075)
## Fixed-Effects:  -----------------------
## p_date                              Yes
## p_hour                              Yes
## p_minute                            Yes
## _______________ _______________________
## S.E.: Clustered               by: pk_id
## Observations                    136,961
## R2                              0.01008
## Within R2                       0.00038
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(5) 打赏标准差:inequalty

library(fixest)

# 定义标准差变量
variables_gifts_sd <- c(
  "total_gifts_sd",
  "before_bj_gifts_sd",
  "during_bj_gifts_sd",
  "after_bj_gifts_sd",
  "during_tower_gifts_sd",
  "after_exp_gifts_sd"
)

# 初始化列表存储模型
models_gifts_sd <- list()

# 对标准差变量进行回归
for (var in variables_gifts_sd) {
  formula <- as.formula(paste(var, "~ exp_name | p_date + p_hour + p_minute"))
  models_gifts_sd[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出回归结果
cat("\n--- Results for Standard Deviation of Gifts Variables ---\n")
## 
## --- Results for Standard Deviation of Gifts Variables ---
etable(models_gifts_sd)
##                 total_gifts_sd before_bj_gifts_sd during_bj_gifts_sd
## Dependent Var.: total_gifts_sd before_bj_gifts_sd during_bj_gifts_sd
##                                                                     
## exp_name有暴击 5.556* (2.711)   -0.0073 (0.3179)   27.62*** (1.145)
## Fixed-Effects:  -------------- ------------------ ------------------
## p_date                     Yes                Yes                Yes
## p_hour                     Yes                Yes                Yes
## p_minute                   Yes                Yes                Yes
## _______________ ______________ __________________ __________________
## S.E.: Clustered      by: pk_id          by: pk_id          by: pk_id
## Observations           136,961            136,961            136,961
## R2                     0.00123            0.00106            0.00579
## Within R2              3.19e-5            3.43e-9            0.00426
## 
##                 after_bj_gifts_sd during_tower_gifts_sd after_exp_gifts_sd
## Dependent Var.: after_bj_gifts_sd during_tower_gifts_sd after_exp_gifts_sd
##                                                                           
## exp_name有暴击 -8.511*** (1.462)     -8.105*** (1.617)     5.438* (2.659)
## Fixed-Effects:  ----------------- --------------------- ------------------
## p_date                        Yes                   Yes                Yes
## p_hour                        Yes                   Yes                Yes
## p_minute                      Yes                   Yes                Yes
## _______________ _________________ _____________________ __________________
## S.E.: Clustered         by: pk_id             by: pk_id          by: pk_id
## Observations              136,961               136,961            136,961
## R2                        0.00143               0.00100            0.00124
## Within R2                 0.00026               0.00019            3.18e-5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

4.HTE

(1) PK author数

library(fixest)

# 定义非 log 变量和 log 变量
variables_gifts <- c(
  "total_gifts",
  "before_bj_gifts",
  "during_bj_gifts",
  "after_bj_gifts",
  "during_tower_gifts",
  "after_exp_gifts"
)

variables_gifts_log <- c(
  "log_total_gifts",
  "log_before_bj_gifts",
  "log_during_bj_gifts",
  "log_after_bj_gifts",
  "log_during_tower_gifts",
  "log_after_exp_gifts"
)

# 初始化列表存储模型
models_gifts <- list()
models_gifts_log <- list()

# 对非 log 变量进行回归
for (var in variables_gifts) {
  formula <- as.formula(paste(var, "~ exp_name*pk_anthor_cnt | p_date + p_hour + p_minute"))
  models_gifts[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 对 log 变量进行回归
for (var in variables_gifts_log) {
  formula <- as.formula(paste(var, "~ exp_name*pk_anthor_cnt | p_date + p_hour + p_minute"))
  models_gifts_log[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出非 log 变量回归结果
cat("\n--- Results for Non-log Variables ---\n")
## 
## --- Results for Non-log Variables ---
etable(models_gifts)
##                                  total_gifts   before_bj_gifts
## Dependent Var.:                  total_gifts   before_bj_gifts
##                                                               
## exp_name有暴击             -14.98 (50.58)   -0.8067 (3.701)
## pk_anthor_cnt               273.0*** (9.272) 8.389*** (0.7132)
## exp_name有暴击 x pk_anthor_cnt    8.526 (14.53)    0.2856 (1.077)
## Fixed-Effects:              ---------------- -----------------
## p_date                                   Yes               Yes
## p_hour                                   Yes               Yes
## p_minute                                 Yes               Yes
## ___________________________ ________________ _________________
## S.E.: Clustered                    by: pk_id         by: pk_id
## Observations                         136,961           136,961
## R2                                   0.00488           0.00179
## Within R2                            0.00367           0.00056
## 
##                               during_bj_gifts    after_bj_gifts
## Dependent Var.:               during_bj_gifts    after_bj_gifts
##                                                                
## exp_name有暴击           -175.3*** (19.51)   65.82** (23.32)
## pk_anthor_cnt                26.33*** (1.788)  120.7*** (5.247)
## exp_name有暴击 x pk_anthor_cnt  67.64*** (5.487) -27.22*** (6.660)
## Fixed-Effects:              ----------------- -----------------
## p_date                                    Yes               Yes
## p_hour                                    Yes               Yes
## p_minute                                  Yes               Yes
## ___________________________ _________________ _________________
## S.E.: Clustered                     by: pk_id         by: pk_id
## Observations                          136,961           136,961
## R2                                    0.00838           0.00463
## Within R2                             0.00675           0.00336
## 
##                             during_tower_gifts  after_exp_gifts
## Dependent Var.:             during_tower_gifts  after_exp_gifts
##                                                                
## exp_name有暴击             95.35*** (22.62)   -14.18 (49.47)
## pk_anthor_cnt                 117.5*** (4.381) 264.6*** (9.054)
## exp_name有暴击 x pk_anthor_cnt  -32.17*** (6.553)    8.241 (14.22)
## Fixed-Effects:              ------------------ ----------------
## p_date                                     Yes              Yes
## p_hour                                     Yes              Yes
## p_minute                                   Yes              Yes
## ___________________________ __________________ ________________
## S.E.: Clustered                      by: pk_id        by: pk_id
## Observations                           136,961          136,961
## R2                                     0.00345          0.00480
## Within R2                              0.00266          0.00360
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 输出 log 变量回归结果
cat("\n--- Results for Log Variables ---\n")
## 
## --- Results for Log Variables ---
etable(models_gifts_log)
##                               log_total_gifts log_before_bj_gifts
## Dependent Var.:               log_total_gifts log_before_bj_gifts
##                                                                  
## exp_name有暴击             0.0842 (0.1135)     0.0128 (0.0599)
## pk_anthor_cnt               1.595*** (0.0209)  0.3296*** (0.0113)
## exp_name有暴击 x pk_anthor_cnt  -0.0032 (0.0294)    -0.0052 (0.0158)
## Fixed-Effects:              ----------------- -------------------
## p_date                                    Yes                 Yes
## p_hour                                    Yes                 Yes
## p_minute                                  Yes                 Yes
## ___________________________ _________________ ___________________
## S.E.: Clustered                     by: pk_id           by: pk_id
## Observations                          136,961             136,961
## R2                                    0.09026             0.01766
## Within R2                             0.08506             0.00871
## 
##                             log_during_bj_gifts  log_after_bj_gifts
## Dependent Var.:             log_during_bj_gifts  log_after_bj_gifts
##                                                                    
## exp_name有暴击            -1.104*** (0.0894)   0.2756** (0.1061)
## pk_anthor_cnt                0.6868*** (0.0146)   1.333*** (0.0199)
## exp_name有暴击 x pk_anthor_cnt  0.5854*** (0.0236) -0.1672*** (0.0276)
## Fixed-Effects:              ------------------- -------------------
## p_date                                      Yes                 Yes
## p_hour                                      Yes                 Yes
## p_minute                                    Yes                 Yes
## ___________________________ ___________________ ___________________
## S.E.: Clustered                       by: pk_id           by: pk_id
## Observations                            136,961             136,961
## R2                                      0.13406             0.06925
## Within R2                               0.11373             0.06121
## 
##                             log_during_tower_gifts log_after_exp_gifts
## Dependent Var.:             log_during_tower_gifts log_after_exp_gifts
##                                                                       
## exp_name有暴击               0.4257*** (0.1016)     0.0976 (0.1147)
## pk_anthor_cnt                    1.430*** (0.0196)   1.625*** (0.0211)
## exp_name有暴击 x pk_anthor_cnt    -0.1918*** (0.0270)    -0.0047 (0.0297)
## Fixed-Effects:              ---------------------- -------------------
## p_date                                         Yes                 Yes
## p_hour                                         Yes                 Yes
## p_minute                                       Yes                 Yes
## ___________________________ ______________________ ___________________
## S.E.: Clustered                          by: pk_id           by: pk_id
## Observations                               136,961             136,961
## R2                                         0.05538             0.09075
## Within R2                                  0.05058             0.08558
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(2) gifters(before Baoji)

打赏金额

summary(df$before_bj_gifters)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   0.000   1.667   1.000 590.000
df <- df %>%
  mutate(
    before_bj_gifters_binary = as.numeric(case_when(
      before_bj_gifters > 1.667 ~ 1,
      TRUE ~ 0
    ))
  )
library(fixest)

# 定义非 log 变量和 log 变量
variables_gifts <- c(
  "total_gifts",
  "before_bj_gifts",
  "during_bj_gifts",
  "after_bj_gifts",
  "during_tower_gifts",
  "after_exp_gifts"
)

variables_gifts_log <- c(
  "log_total_gifts",
  "log_before_bj_gifts",
  "log_during_bj_gifts",
  "log_after_bj_gifts",
  "log_during_tower_gifts",
  "log_after_exp_gifts"
)

# 初始化列表存储模型
models_gifts <- list()
models_gifts_log <- list()

# 对非 log 变量进行回归
for (var in variables_gifts) {
  formula <- as.formula(paste(var, "~ exp_name*before_bj_gifters_binary | p_date + p_hour + p_minute"))
  models_gifts[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 对 log 变量进行回归
for (var in variables_gifts_log) {
  formula <- as.formula(paste(var, "~ exp_name*before_bj_gifters_binary | p_date + p_hour + p_minute"))
  models_gifts_log[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出非 log 变量回归结果
cat("\n--- Results for Non-log Variables ---\n")
## 
## --- Results for Non-log Variables ---
etable(models_gifts)
##                                             total_gifts  before_bj_gifts
## Dependent Var.:                             total_gifts  before_bj_gifts
##                                                                         
## exp_name有暴击                        5.812* (2.842) -0.3882 (0.2995)
## before_bj_gifters_binary               773.0*** (26.58) 35.61*** (1.764)
## exp_name有暴击 x before_bj_gifters_binary    55.82 (37.92)    3.214 (2.930)
## Fixed-Effects:                         ---------------- ----------------
## p_date                                              Yes              Yes
## p_hour                                              Yes              Yes
## p_minute                                            Yes              Yes
## ______________________________________ ________________ ________________
## S.E.: Clustered                               by: pk_id        by: pk_id
## Observations                                    136,961          136,961
## R2                                              0.04069          0.01511
## Within R2                                       0.03952          0.01390
## 
##                                          during_bj_gifts    after_bj_gifts
## Dependent Var.:                          during_bj_gifts    after_bj_gifts
##                                                                           
## exp_name有暴击                      37.09*** (0.8821) -20.39*** (1.536)
## before_bj_gifters_binary                84.35*** (4.771)  349.8*** (12.93)
## exp_name有暴击 x before_bj_gifters_binary  204.3*** (13.60) -77.02*** (16.94)
## Fixed-Effects:                         ----------------- -----------------
## p_date                                               Yes               Yes
## p_hour                                               Yes               Yes
## p_minute                                             Yes               Yes
## ______________________________________ _________________ _________________
## S.E.: Clustered                                by: pk_id         by: pk_id
## Observations                                     136,961           136,961
## R2                                               0.02898           0.03173
## Within R2                                        0.02738           0.03049
## 
##                                        during_tower_gifts  after_exp_gifts
## Dependent Var.:                        during_tower_gifts  after_exp_gifts
##                                                                           
## exp_name有暴击                       -10.50*** (1.380)   6.200* (2.801)
## before_bj_gifters_binary                 303.3*** (14.32) 737.4*** (26.11)
## exp_name有暴击 x before_bj_gifters_binary  -74.65*** (17.59)    52.60 (37.12)
## Fixed-Effects:                         ------------------ ----------------
## p_date                                                Yes              Yes
## p_hour                                                Yes              Yes
## p_minute                                              Yes              Yes
## ______________________________________ __________________ ________________
## S.E.: Clustered                                 by: pk_id        by: pk_id
## Observations                                      136,961          136,961
## R2                                                0.02191          0.03870
## Within R2                                         0.02113          0.03754
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 输出 log 变量回归结果
cat("\n--- Results for Log Variables ---\n")
## 
## --- Results for Log Variables ---
etable(models_gifts_log)
##                                           log_total_gifts log_before_bj_gifts
## Dependent Var.:                           log_total_gifts log_before_bj_gifts
##                                                                              
## exp_name有暴击                      0.0760*** (0.0121)    -0.0048 (0.0056)
## before_bj_gifters_binary                1.740*** (0.0155)   1.696*** (0.0127)
## exp_name有暴击 x before_bj_gifters_binary   -0.0276 (0.0219)     0.0049 (0.0182)
## Fixed-Effects:                         ------------------ -------------------
## p_date                                                Yes                 Yes
## p_hour                                                Yes                 Yes
## p_minute                                              Yes                 Yes
## ______________________________________ __________________ ___________________
## S.E.: Clustered                                 by: pk_id           by: pk_id
## Observations                                      136,961             136,961
## R2                                                0.13449             0.31099
## Within R2                                         0.12955             0.30471
## 
##                                        log_during_bj_gifts  log_after_bj_gifts
## Dependent Var.:                        log_during_bj_gifts  log_after_bj_gifts
##                                                                               
## exp_name有暴击                        1.091*** (0.0109) -0.3584*** (0.0118)
## before_bj_gifters_binary                 1.399*** (0.0171)   1.518*** (0.0169)
## exp_name有暴击 x before_bj_gifters_binary  0.2197*** (0.0255)    -0.0387 (0.0244)
## Fixed-Effects:                         ------------------- -------------------
## p_date                                                 Yes                 Yes
## p_hour                                                 Yes                 Yes
## p_minute                                               Yes                 Yes
## ______________________________________ ___________________ ___________________
## S.E.: Clustered                                  by: pk_id           by: pk_id
## Observations                                       136,961             136,961
## R2                                                 0.19718             0.11442
## Within R2                                          0.17834             0.10677
## 
##                                        log_during_tower_gifts
## Dependent Var.:                        log_during_tower_gifts
##                                                              
## exp_name有暴击                         -0.2724*** (0.0132)
## before_bj_gifters_binary                    1.457*** (0.0220)
## exp_name有暴击 x before_bj_gifters_binary    -0.1720*** (0.0312)
## Fixed-Effects:                         ----------------------
## p_date                                                    Yes
## p_hour                                                    Yes
## p_minute                                                  Yes
## ______________________________________ ______________________
## S.E.: Clustered                                     by: pk_id
## Observations                                          136,961
## R2                                                    0.07245
## Within R2                                             0.06773
## 
##                                        log_after_exp_gifts
## Dependent Var.:                        log_after_exp_gifts
##                                                           
## exp_name有暴击                       0.0803*** (0.0123)
## before_bj_gifters_binary                 1.639*** (0.0165)
## exp_name有暴击 x before_bj_gifters_binary    -0.0152 (0.0233)
## Fixed-Effects:                         -------------------
## p_date                                                 Yes
## p_hour                                                 Yes
## p_minute                                               Yes
## ______________________________________ ___________________
## S.E.: Clustered                                  by: pk_id
## Observations                                       136,961
## R2                                                 0.11732
## Within R2                                          0.11229
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

打赏人数

library(fixest)

# 定义非 log 变量和 log 变量
variables_gifters <- c(
  "before_bj_gift_cnt",
  "before_bj_gifters",
  "total_gift_cnt",
  "total_gifters",
  "after_exp_gift_cnt",
  "after_exp_gifters"
)

variables_gifters_log <- c(
  "log_before_bj_gift_cnt",
  "log_before_bj_gifters",
  "log_total_gift_cnt",
  "log_total_gifters",
  "log_after_exp_gift_cnt",
  "log_after_exp_gifters"
)

# 初始化列表存储模型
models_gifters <- list()
models_gifters_log <- list()

# 对非 log 变量进行回归
for (var in variables_gifters) {
  formula <- as.formula(paste(var, "~ exp_name*before_bj_gifters | p_date + p_hour + p_minute"))
  models_gifters[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 对 log 变量进行回归
for (var in variables_gifters_log) {
  formula <- as.formula(paste(var, "~ exp_name*before_bj_gifters | p_date + p_hour + p_minute"))
  models_gifters_log[[var]] <- feols(formula, data = df, vcov = ~pk_id)
}

# 输出非 log 变量回归结果
cat("\n--- Results for Non-log Gifters Variables ---\n")
## 
## --- Results for Non-log Gifters Variables ---
etable(models_gifters)
##                                 before_bj_gift_cnt       before_bj_gifters
## Dependent Var.:                 before_bj_gift_cnt       before_bj_gifters
##                                                                           
## exp_name有暴击                  0.1186 (0.1837)  4.44e-16*** (8.18e-17)
## before_bj_gifters                2.489*** (0.1056)         1*** (4.93e-20)
## exp_name有暴击 x before_bj_gifters   -0.0659 (0.1266) -4.44e-16*** (5.59e-17)
## Fixed-Effects:                  ------------------ -----------------------
## p_date                                         Yes                     Yes
## p_hour                                         Yes                     Yes
## p_minute                                       Yes                     Yes
## _______________________________ __________________ _______________________
## S.E.: Clustered                          by: pk_id               by: pk_id
## Observations                               136,961                 136,961
## R2                                         0.91593                       1
## Within R2                                  0.91574                       1
## 
##                                    total_gift_cnt     total_gifters
## Dependent Var.:                    total_gift_cnt     total_gifters
##                                                                    
## exp_name有暴击                 -0.2564 (1.216)  -0.0302 (0.3599)
## before_bj_gifters               16.62*** (0.7054) 4.746*** (0.1938)
## exp_name有暴击 x before_bj_gifters  -0.6228 (0.8517)   0.0565 (0.2497)
## Fixed-Effects:                  ----------------- -----------------
## p_date                                        Yes               Yes
## p_hour                                        Yes               Yes
## p_minute                                      Yes               Yes
## _______________________________ _________________ _________________
## S.E.: Clustered                         by: pk_id         by: pk_id
## Observations                              136,961           136,961
## R2                                        0.81968           0.84420
## Within R2                                 0.81925           0.84385
## 
##                                 after_exp_gift_cnt after_exp_gifters
## Dependent Var.:                 after_exp_gift_cnt after_exp_gifters
##                                                                     
## exp_name有暴击                  -0.3750 (1.200)   0.0076 (0.3613)
## before_bj_gifters                14.13*** (0.6958) 4.130*** (0.1943)
## exp_name有暴击 x before_bj_gifters   -0.5568 (0.8382)   0.0561 (0.2509)
## Fixed-Effects:                  ------------------ -----------------
## p_date                                         Yes               Yes
## p_hour                                         Yes               Yes
## p_minute                                       Yes               Yes
## _______________________________ __________________ _________________
## S.E.: Clustered                          by: pk_id         by: pk_id
## Observations                               136,961           136,961
## R2                                         0.77008           0.80238
## Within R2                                  0.76954           0.80193
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 输出 log 变量回归结果
cat("\n--- Results for Log Gifters Variables ---\n")
## 
## --- Results for Log Gifters Variables ---
etable(models_gifters_log)
##                                 log_before_bj_gift_cnt log_before_bj_gifters
## Dependent Var.:                 log_before_bj_gift_cnt log_before_bj_gifters
##                                                                             
## exp_name有暴击                     -0.0039 (0.0116)      -0.0043 (0.0090)
## before_bj_gifters                   0.0515*** (0.0053)    0.0424*** (0.0042)
## exp_name有暴击 x before_bj_gifters       2.42e-5 (0.0072)       0.0001 (0.0057)
## Fixed-Effects:                  ---------------------- ---------------------
## p_date                                             Yes                   Yes
## p_hour                                             Yes                   Yes
## p_minute                                           Yes                   Yes
## _______________________________ ______________________ _____________________
## S.E.: Clustered                              by: pk_id             by: pk_id
## Observations                                   136,961               136,961
## R2                                             0.21747               0.30389
## Within R2                                      0.21115               0.29851
## 
##                                 log_total_gift_cnt  log_total_gifters
## Dependent Var.:                 log_total_gift_cnt  log_total_gifters
##                                                                      
## exp_name有暴击                 -0.0048 (0.0120)    0.0079 (0.0099)
## before_bj_gifters               0.0498*** (0.0051) 0.0447*** (0.0045)
## exp_name有暴击 x before_bj_gifters   -0.0004 (0.0069)    3.5e-6 (0.0061)
## Fixed-Effects:                  ------------------ ------------------
## p_date                                         Yes                Yes
## p_hour                                         Yes                Yes
## p_minute                                       Yes                Yes
## _______________________________ __________________ __________________
## S.E.: Clustered                          by: pk_id          by: pk_id
## Observations                               136,961            136,961
## R2                                         0.13046            0.20587
## Within R2                                  0.12158            0.19828
## 
##                                 log_after_exp_gift_cnt log_after_exp_gifters
## Dependent Var.:                 log_after_exp_gift_cnt log_after_exp_gifters
##                                                                             
## exp_name有暴击                     -0.0024 (0.0117)       0.0132 (0.0096)
## before_bj_gifters                   0.0479*** (0.0049)    0.0430*** (0.0043)
## exp_name有暴击 x before_bj_gifters       -0.0004 (0.0066)      9.63e-5 (0.0058)
## Fixed-Effects:                  ---------------------- ---------------------
## p_date                                             Yes                   Yes
## p_hour                                             Yes                   Yes
## p_minute                                           Yes                   Yes
## _______________________________ ______________________ _____________________
## S.E.: Clustered                              by: pk_id             by: pk_id
## Observations                                   136,961               136,961
## R2                                             0.11989               0.19285
## Within R2                                      0.11117               0.18519
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1