2 votos

La prueba GRS no rechaza un factor sin sentido en lugar del factor de mercado

He estado jugando con la prueba GRS (véase mi script R más abajo) en relación con ¿Por qué no utilizar una regresión de series temporales cuando el factor no es un rendimiento? . I $630\times 26$ matriz de rendimientos de 25 "carteras" y la cartera de mercado según el CAPM. He utilizado la función GRS.test::GRS.test en R para probar el CAPM, y no pude rechazar el $H_0$ . Luego añadí la idiosincrasia $\alpha$ s a cada "cartera", volví a probar el CAPM y ahora podía rechazar fácilmente la $H_0$ . Hasta aquí todo bien.

A continuación, volví a generar datos según el CAPM y realicé la prueba GRS con el exceso de rentabilidad del mercado sustituido por una variable aleatoria no relacionada (un factor aleatorio). Para mi sorpresa, la prueba no pudo rechazar la $H_0$ ¡! He probado algunas variables aleatorias diferentes en lugar del exceso de rentabilidad del mercado, y aunque el $p$ -valores variaban de un caso a otro, obtuve el mismo no rechazo para varios más de ellos.
En aras de la exhaustividad, he añadido la idiosincrasia $\alpha$ s a cada "cartera" y volví a probar el CAPM con el factor aleatorio. Como en el caso del factor real, pude rechazar fácilmente la hipótesis $H_0$ .

Pregunta: ¿Qué ocurre? ¿No debería la prueba GRS rechazar un modelo con un factor aleatorio no relacionado en lugar del exceso de rentabilidad del mercado?

(Puede ejecutar el script en línea y compruebe usted mismo los resultados en https://rdrr.io/snippets/ . Simplemente pegue el script allí, borre/comente las líneas irrelevantes siguientes !!! y haga clic en "Ejecutar").

library(MASS)
library(GRS.test)
data("data")  # Fama-French data: market's excess return and 25 portfolios (5x5, sorted on SMB and HML) 
data=data/100 # because original data was in percent

N=25
T=nrow(data)  # 630

Sigma=cov(data[,c(8:32,2)])    # empirical covariance matrix; the last column is the market, the other 25 columns are the portfolios

# !!! Choose one of the two following lines for H0 vs. H1:
alpha =rep(0,N+1)                                   # Jensen's alpha, in this case zero    for all assets
set.seed(-1); alpha=runif(n=N+1,min=-0.01,max=0.01) # Jensen's alpha, in this case nonzero for all assets

beta_m=rep(NA,N+1); for(i in 1:(N+1)) beta_m[i]=Sigma[i,N+1]/Sigma[N+1,N+1] # actual betas from Fama-French data
mu_mte=rep(mean(data[,2]),T)   # expected value of market excess return, in this case time-constant and in line with Fama-French data
# Generate a matrix of returns according to the CAPM (normality is mainly for convenience):
set.seed(1); r_matrix=mvrnorm(n=T, mu=alpha+beta_m*mean(mu_mte), Sigma=Sigma)

# !!! Factor return matrix for the function GRS.test():
# choose one of the two following lines for the true underlying factor vs. a random, unrelated factor:
f_matrix=cbind(r_matrix[,N+1])                 # true underlying   factor returns
set.seed(999); f_matrix=cbind(rnorm(T,mean=5)) # random, unrelated factor returns

# GRS test
result=GRS.test(r_matrix[,1:N],f_matrix); print(round(c(result$GRS.stat,result$GRS.pval),3)) 

# Individual t-tests and individual estimates of alphas and betas 
# (full dots ~ true, hollow circles ~ estimated):
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))
 true=c(alpha[i],beta_m[i]); estimated=as.numeric(m1$coef); ylim1=c(-0.05,2)
 plot(estimated,ylim=ylim1,xlab="",ylab=""); points(true,pch=19)
}; par(mfrow=c(1,1),mar=c(5.1,4.1,4.1,2.1)) 

P.D. Una pregunta relacionada es "La prueba GRS no rechaza un múltiplo escalar del factor de mercado" . Aumentar el tamaño de la muestra, que fue útil en este caso, no parece solucionar ese problema.

3voto

rayradjr Puntos 464

Como se ha dicho en los comentarios, es probable que el problema sea que la prueba tiene poca potencia en este caso concreto. Explicar los rendimientos de las carteras con un factor generado aleatoriamente produce betas cercanas a cero. La prueba consiste entonces en comprobar si la rentabilidad media de las 25 carteras es cero. A pesar de que los datos comienzan en la década de 1970, los rendimientos medios parecen demasiado pequeños, en relación con la volatilidad de los rendimientos, para rechazar la nulidad de que estos rendimientos medios son cero.

Sin embargo, el hecho de que las betas sean cercanas a cero sugiere que este factor no es útil para explicar los rendimientos.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X