LilMichelangelo2 / Amanta

0 stars 0 forks source link

Model #11

Open LilMichelangelo2 opened 1 month ago

LilMichelangelo2 commented 1 month ago

@autopilot adj_value_added is the product of gross alpha and fund size. I dont seem to manage to specify the model well. Suggest and implement changes:


> h1_realised_regression <- feols(adj_value_added ~ L1_team + Marketing_Perc
+                                 + Flow_Perc + L1_Expense_Ratio + log(Fee)
+                                 + L1_Fund_Age + log(Family_Size) + Turnover
+                                 + Volatility + Tenure + Female
+                                 | Fund_Family + TIMExOBJECTIVE,
+                                 data = realised_regression_data, cluster = c("FundId"))
NOTE: 165,125 observations removed because of NA values (RHS: 165,125).
> summary(h1_realised_regression)
OLS estimation, Dep. Var.: adj_value_added
Observations: 312,780
Fixed-effects: Fund_Family: 759,  TIMExOBJECTIVE: 1,149
Standard-errors: Clustered (FundId) 
                  Estimate Std. Error   t value   Pr(>|t|)    
L1_team           0.199345   0.267610  0.744909 4.5640e-01    
Marketing_Perc   -1.698444   0.851219 -1.995307 4.6131e-02 *  
Flow_Perc         0.000492   0.000263  1.873674 6.1106e-02 .  
L1_Expense_Ratio -0.993402   0.385327 -2.578072 9.9988e-03 ** 
log(Fee)          0.447699   0.155581  2.877597 4.0452e-03 ** 
L1_Fund_Age      -0.001340   0.000978 -1.370241 1.7075e-01    
log(Family_Size) -0.620524   0.233096 -2.662092 7.8213e-03 ** 
Turnover         -0.007118   0.001539 -4.624103 3.9770e-06 ***
Volatility        0.195044   0.157995  1.234493 2.1715e-01    
Tenure            0.035318   0.038515  0.916971 3.5926e-01    
Female           -0.009376   0.004658 -2.012981 4.4236e-02 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 97.6     Adj. R2: 0.062518
             Within R2: 9.604e-5
> # T E S T I N G
> # Fit
> print(fitstat(h1_realised_regression, type = "f"))
F-test: stat = 0.085381, p = 1, on 1,917 and 2,234 DoF.
> resettest(h1_realised_regression$residuals ~ h1_realised_regression$fitted.values)

    RESET test

data:  h1_realised_regression$residuals ~ h1_realised_regression$fitted.values
RESET = 100.98, df1 = 2, df2 = 312776, p-value < 2.2e-16

This is the distribution of value added:

Min. 1st Qu. Median Mean 3rd Qu. Max. -6750.867 -2.197 0.043 0.852 2.716 8072.558

codeautopilot[bot] commented 1 month ago

🤖 I'm working on a solution for this issue. Please don't create new issues or edit this one until I reply back.

LilMichelangelo2 commented 1 month ago

@autopilot build a latex table for this data: Per manager group, i want the mean and sd of each variable:

data <- read.csv("MS/md_final_combined.csv")

data <- data[!is.na(data$team_size), ]

data$manager_group <- ifelse(data$team_size == 1, "1 Manager",
                             ifelse(data$team_size == 2, "2 Managers",
                                    ifelse(data$team_size == 3, "3 Managers",
                                           ifelse(data$team_size == 4, "4 Managers",
                                                  "5+ Managers"))))

dataset <- data %>%
  dplyr::select(manager_group, "Gross_Return", "Fund_Size", "Fund_Age", "Family_Size", "Expense_Ratio", "Turnover_Ratio", "Raw_Return_Volatility", "Net_Fund_Flow", "Tenure", "Female")

summary_data <- dataset %>%
  pivot_longer(cols = -manager_group, names_to = "Variable", values_to = "Value") %>%
  group_by(manager_group, Variable) %>%
  summarise(
    Mean = mean(Value, na.rm = TRUE),
    Std = sd(Value, na.rm = TRUE)
  ) %>%
  pivot_wider(names_from = manager_group, values_from = c(Mean, Std)) %>%
  ungroup()
codeautopilot[bot] commented 1 month ago

@autopilot build a latex table for this data: Per manager group, i want the mean and sd of each variable:

data <- read.csv("MS/md_final_combined.csv")

data <- data[!is.na(data$team_size), ]

data$manager_group <- ifelse(data$team_size == 1, "1 Manager",
                             ifelse(data$team_size == 2, "2 Managers",
                                    ifelse(data$team_size == 3, "3 Managers",
                                           ifelse(data$team_size == 4, "4 Managers",
                                                  "5+ Managers"))))

dataset <- data %>%
  dplyr::select(manager_group, "Gross_Return", "Fund_Size", "Fund_Age", "Family_Size", "Expense_Ratio", "Turnover_Ratio", "Raw_Return_Volatility", "Net_Fund_Flow", "Tenure", "Female")

summary_data <- dataset %>%
  pivot_longer(cols = -manager_group, names_to = "Variable", values_to = "Value") %>%
  group_by(manager_group, Variable) %>%
  summarise(
    Mean = mean(Value, na.rm = TRUE),
    Std = sd(Value, na.rm = TRUE)
  ) %>%
  pivot_wider(names_from = manager_group, values_from = c(Mean, Std)) %>%
  ungroup()

undefined