我正在尝试使用数据框和系列运行以下公式。
设X为3列数据帧。 (让它成为100x3矩阵)。 设y为向量(100x1矩阵) X:
X0 sqrfeet bedrooms
0 1 2104 3
1 1 1600 3
2 1 2400 3
3 1 1416 2
4 1 3000 4
Y:
0 20000
1 15000
2 24000
3 12000
4 14000
我想使用的公式是: - INV(X' * X)* X' * Y
这是正规方程的公式。 这里X'暗示X transpose和inv表示逆。 我使用的代码是: -
var= (np.linalg.inv((X.T).dot(X)))
var2= var.dot(X.T)
final=var2.dot(Y)
以上是否正确?
让X代表房屋大小和卧室数量的房地产数据 而Y对应价格。
答案 0 :(得分:1)
看起来您想要将自己的OLS估算器用于家庭作业或个人发展,在这种情况下,您正走在正确的轨道上,但这里有几点需要注意。
Pandas DataFrame对象有一个方法as_matrix()
,它返回DataFrame值的numpy矩阵。非数字值将产生NaN,但您的上述示例应该没有问题,因为所有值都是数字。您可以随心所欲地对这些矩阵执行linalg操作。
您需要记住的其他内容是回归设计矩阵的方向(本例中的变量X
)。设计矩阵是d * n矩阵,其中d是特征的数量,n是样本大小。 Y
矩阵是n * 1 $矩阵。为了使正规方程中的矩阵乘法起作用,您需要确保它们正确对齐。
如果您需要执行大量功能齐全的线性回归,您可能需要考虑已建立的库,例如StatsModels