我有假设函数 h(x)= theta0 + theta1 * x 。
如何为线性回归模型选择theta0和theta1值?
答案 0 :(得分:1)
问题尚不清楚您是想手动(使用基础数学),使用像Excel这样的程序,还是用MATLAB或Python等语言解决。
首先,这是一个网站,提供单变量计算所涉及的数学概要:http://www.statisticshowto.com/probability-and-statistics/regression-analysis/find-a-linear-regression-equation/
在这里,对多变量问题的矩阵公式进行了一些讨论(我知道你要求单变量,但有些人发现矩阵公式可以帮助他们概念化问题):https://onlinecourses.science.psu.edu/stat501/node/382
我们应该根据问题的层次从一点直觉开始。线性回归的目标是找到一组变量,在您的情况下,最小化所形成的线与观察到的数据点之间的距离(通常是该距离的平方)。您定义的等式中有两个“自由”变量。首先,theta0:这是拦截。截距是输入变量(x)为0时响应变量(h(x))的值。这视觉上是线与y轴交叉的点。您定义的第二个变量是斜率(theta1),此变量表示响应变量在输入更改时的变化量。如果theta1 = 0,则当x改变时h(x)不会改变。如果theta1 = 1,则h(x)以与x相同的速率增加和减少。如果theta1 = -1,则h(x)以相反的方向响应:如果x增加,则h(x)减少相同的量;如果x减小,则h(x)增加数量。
有关更多信息,Mathworks提供了相当全面的解释:https://www.mathworks.com/help/symbolic/mupad_ug/univariate-linear-regression.html
因此,在理解了我们正在做的事情之后,让我们尝试一下数学。我们需要计算两个变量x和h(x)的标准差。 WTo计算标准偏差,我们将计算每个变量的平均值(将所有x的总和相加,然后除以x的数量,对h(x)做同样的事情)。标准偏差捕获变量与其平均值的差异。对于每个x,减去x的平均值。将这些差异求和,然后除以x的减去1的数量。最后,取平方根。这是你的标准差。
使用它,我们可以规范化两个变量。对于x,减去x的平均值并除以x的标准偏差。也为h(x)执行此操作。您现在将有两个标准化数字列表。
对于每个标准化数字,将值乘以其对(对于所有值,将第一个标准化x值与其h(x)对相乘)。将这些产品加在一起并除以N.这为您提供了相关性。为了得到theta1的最小二乘估计,计算该相关值乘以h(x)的标准偏差除以x的标准偏差。
鉴于所有这些信息,计算截距(theta0)很容易,我们所要做的就是取h(x)的平均值并减去我们计算的theta1的乘积(乘以!)和x的平均值。
唷!一切都照顾好了!对于这两个变量,我们有最小二乘解。如果您有任何疑问,请告诉我!最后一个很好的资源:https://people.duke.edu/~rnau/mathreg.htm