残差的协方差矩阵

时间:2020-04-14 02:49:21

标签: python numpy covariance

我正在尝试计算残差的协方差矩阵。

我想知道我是否可以在下面的代码中获得一些帮助。

下面的代码有效,因为它输出一个值。 我只是不确定该值是否正确。

这是我们如何计算线性回归模型的残差的协方差-

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

0 个答案:

没有答案