残差协方差矩阵

2024-03-29 06:39:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算出残差的协方差矩阵

我想知道我是否可以得到以下代码的帮助

下面的代码工作,因为它输出一个值。 我只是不确定这个值是否正确

这就是我们计算线性回归模型残差协方差的方法吗-

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

Tags: importnumpyclosedataindexmodelasstock