Python中的OLS:估计系数矩阵的维数不正确

2024-04-26 18:51:57 发布

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

我已经编写了一个Python代码来估计(单变量)线性回归模型的参数,但是估计的系数矩阵的维数是不正确的。向量“beta_estimated”(报告如下)的维数应为(1×1),但为(n×n)。有什么想法吗?你知道吗

# Linear regression in Python (univariate)
import numpy as np     
import scipy as sci     

x_original  =  np.random.normal(1,1, 100)    
x = np.array([x_original])    
#x_transpose  = x.T                 
beta = [5]  

y_original = (beta * x) + np.random.normal(0, 10, 100)    
y = np.array(y_original)    
#y_transpos = y.T     
product1 = np.dot(x.T, x)    
product2 = np.dot(x.T, y )    
Minv = np.linalg.inv(product1)    
beta_estimated =  np.dot(Minv, product2)

Tags: 代码importasnprandomarraydotbeta
1条回答
网友
1楼 · 发布于 2024-04-26 18:51:57

我不知道你想做什么,但如果我不得不猜测产品是为什么你没有你要找的尺寸的原因。就你而言:

x   # has a shape of (1, 100)
x.T # has a shape of (100, 1)

np.dot(x.T, x) # produces an array with shape (100, 100)
np.dot(x, x.T) # would produce an array with a shape of (1, 1) 

所以如果我认为你应该反转两个点积中的参数np.dot()。您的代码应为:

product1 = np.dot(x, x.T)    
product2 = np.dot(y, x.T)  

相关问题 更多 >