Estoy tratando de entender la afirmación de que la regresión de series temporales no debe usarse para probar un modelo de factores cuando el factor no es un retorno. Esto se ha mencionado en múltiples publicaciones, y también hay publicaciones específicas al respecto, por ejemplo, esto y esto. Cochrane explica esto al final de la sección 12.2 de "Asset Pricing" (2005):
Lo más importante es que puedes correr la regresión transversal cuando el factor no es un retorno. La prueba de series temporales requiere factores que también sean retornos, para que puedas estimar las primas de riesgo de los factores por $\hat\lambda=E_T(f)$. El modelo de fijación de precios de activos predice una restricción sobre las intercepciones en la regresión de series temporales. ¿Por qué no simplemente probar estas? Si impones la restricción $E(R^{ei})=\beta_i^\top\lambda$ puedes escribir la regresión de series temporales $$ R_t^{ei}=a_i+\beta_i^\top f_t+\varepsilon_t^i, \quad\quad t=1,2,\dots,T \quad \text{para cada} \ i\tag{12.9} $$ como $$ R_t^{ei}=\beta_i^\top\lambda+\beta_i^\top(f_t-E(f))+\varepsilon_t^i, \quad\quad t=1,2,\dots,T \quad \text{para cada} \ i. $$ Así, la restricción de la intercepción es $$ a_i=\beta_i^\top(\lambda-E(f)). \tag{12.24} $$ Esta restricción tiene sentido. El modelo dice que los retornos medios deben ser proporcionales a los betas, y la intersección en la regresión de series temporales controla el retorno medio. También puedes ver cómo $\lambda=E(f)$ resulta en una intercepción cero. Sin embargo, finalmente, ves que sin una estimación de $\lambda$, no puedes verificar esta restricción de intercepción. Si el factor no es un retorno, te verás obligado a hacer algo como una regresión transversal. (La énfasis es mía)
Pero ¿por qué nos importa si $f$ es un retorno o no? Para mí, el problema crucial parece ser si la prima de riesgo es lineal en $f$. (No solo afín, sino también lineal, para que no haya desplazamiento de nivel). Si lo es, entonces por definición $\lambda=cE(f)$ para algún $c\neq 0$. Entonces $$ E(R^{ei})=\beta_i^\top\lambda \longleftrightarrow E(R^{ei})=\frac{\beta_i^\top}{c}cE(f)=:\gamma_i^\top E(f) $$ y volvemos a un uso legítimo de la regresión de series temporales para probar el modelo de factores examinando si $a_i=0$ para cada $i$ en $(12.9)$. Eso no tiene nada que ver con si $f$ es un retorno o no.
Pregunta
Si esto es correcto, entonces la pregunta práctica es, ¿cuándo es la prima de riesgo no lineal en $f$? ¿Podrías proporcionar un ejemplo de eso? ¿Y no tendría sentido simplemente redefinir $f$ para que la prima de riesgo se convierta en lineal en esto?
Actualización 1 (27 de junio de 2023)
Aquí tienes un script de R que muestra que la prueba GRS (que se basa en regresiones de series temporales) funciona perfectamente cuando la prima de riesgo del factor es lineal en $f$ - aunque la prima de riesgo del factor no sea igual al valor esperado del factor, $\lambda\neq E(f)$.
(Puedes ejecutar el script en línea y ver los resultados por ti mismo en https://rdrr.io/snippets/. Simplemente pega el script allí, elimina/comenta las líneas irrelevantes después de !!!
y haz clic en "Ejecutar".)
library(MASS)
library(GRS.test)
data("data") # Datos Fama-French: retorno excedente del mercado y 25 carteras (5x5, ordenadas por SMB y HML)
data=data/100 # porque los datos originales estaban en porcentaje
N=25
T=nrow(data) # 630
Sigma=cov(data[,c(8:32,2)]) # matriz de covarianza empírica; la última columna es el mercado, las otras 25 columnas son las carteras
# !!! Elige una de las dos líneas siguientes para H0 vs. H1:
alpha =rep(0,N+1) # Alfa de Jensen, en este caso cero para todos los activos
set.seed(-1); alpha=runif(n=N+1,min=-0.01,max=0.01) # Alfa de Jensen, en este caso distinto de cero para todos los activos
beta_m=rep(NA,N+1); for(i in 1:(N+1)) beta_m[i]=Sigma[i,N+1]/Sigma[N+1,N+1] # betas reales de los datos Fama-French
mu_mte=rep(mean(data[,2]),T) # valor esperado del retorno excedente del mercado, en este caso constante en el tiempo y en línea con los datos Fama-French
# !!! Elige una de las dos líneas siguientes:
c=1 # la prima de riesgo del factor es 1x su valor esperado; Cochrane dice podemos usar regresiones de series temporales
c=3 # la prima de riesgo del factor es 3x su valor esperado; Cochrane dice que no podemos usar regresiones de series temporales
# Generar una matriz de retornos según el CAPM en caso de c=1
# o un modelo sin nombre en caso de c=3 (la normalidad es principalmente por conveniencia):
set.seed(1); r_matrix=mvrnorm(n=T, mu=alpha+beta_m*mean(mu_mte)*c, Sigma=Sigma)
f_matrix=cbind(r_matrix[,N+1]) # matriz de retorno del factor para la función GRS.test()
# Prueba GRS
resultado=GRS.test(r_matrix[,1:N],f_matrix); print(round(c(resultado$GRS.stat,result$GRS.pval),3))
# Pruebas t individuales y estimaciones individuales de alfas y betas:
# puntos llenos ~ verdaderos, círculos huecos ~ estimados
par(mfrow=c(5,5),mar=c(2,2,0.5,0.5))
for(i in 1:N){
m1=lm(r_matrix[,i]~f_matrix); print(summary(m1))
verdadero=c(alpha[i],beta_m[i]); estimado=as.numeric(m1$coef); ylim1=c(-0.05,2)
plot(estimado,ylim=ylim1,xlab="",ylab=""); points(verdadero,pch=19)
}; par(mfrow=c(1,1),mar=c(5.1,4.1,4.1,2.1))
Pregunta relacionada: La prueba GRS no rechaza un factor absurdo en lugar del factor de mercado. Respuesta corta: la prueba carece de poder.
Actualización 2 (30 de junio de 2023)
Tal vez un ejemplo concreto me guiaría. Pregunta 2: ¿Cuál sería un proceso generador de datos (DGP) implicado por un modelo de factores donde
(i) el factor no es un retorno y
(ii) la prima de riesgo no es igual a la media del factor,
para que falle una prueba basada en series temporales del modelo de fijación de precios de activos?
Me gustaría simular datos de un DGP así y luego aplicar la prueba GRS para ver por mí mismo que la prueba falla. La construcción del DGP podría revelar el verdadero problema estadístico/econométrico con la ejecución de regresiones de series temporales con factores que no son retornos.
Actualización 3 (5 de julio de 2023)
Aunque ahora he convergido bastante en entender por qué una regresión de series temporales no se puede usar cuando el factor no es un retorno, todavía tengo un ejemplo desconcertante que están en línea con mi punto original. La prueba GRS no rechaza un múltiplo escalar del factor de mercado. ¿Por qué es eso? Sigue el enlace a la pregunta y encuentra una simulación que ilustra el punto.