我正在尝试计算残差的协方差矩阵。
我想知道我是否可以在下面的代码中获得一些帮助。
下面的代码有效,因为它输出一个值。 我只是不确定该值是否正确。
这是我们如何计算线性回归模型的残差的协方差-
import nonlinshrink as nls
import statsmodels.api as sm
import scipy
import yfinance as yf
import numpy as np
index = yf.download("SPY", start="2010-02-05", end="2019-05-31")
stock_data=yf.download("AMZN", start="2010-02-05", end="2019-05-31")
close_price_index=index['Close']
close_price_stock=stock_data['Close']
rets_index = close_price_index.pct_change().dropna()
rets_stock=close_price_stock.pct_change().dropna()
X=rets_index
y=rets_index
X = sm.add_constant(X)
model = sm.OLS(y, X).fit()
predictions = model.predict(X) # make the predictions by the model
alpha=model.params[0]
residuals=model.resid.to_numpy()
B = np.reshape(residuals, (-1, 2))
covry=nls.shrink_cov(B, k=2)
以下是示例,我不确定我的数学是否正确
import numpy as np
import nonlinshrink as nls
p = 2
n = 14
sigma = np.eye(p, p)
data = np.random.multivariate_normal(np.zeros(p), sigma, n) + np.arange(n)[:, np.newaxis] + 1
x = np.vstack((np.ones(n).T, np.arange(n).T)).T
betahat = np.linalg.solve(np.dot(x.T, x), np.dot(x.T, data))
datahat = np.dot(x, betahat)
res = data - datahat
sigma_tilde = nls.shrink_cov(res, k=2) # corresponding to 2 degrees of freedom