最小二乘法与线性回归

( a 1 , b 1 ) , ( a 2 , b 2 ) , ⋯   , ( a n , b n ) (a_1,b_1),(a_2,b_2),cdots,(a_n,b_n) (a1,b1),(a2,b2),⋯,(an,bn) 例子 a i a_i ai表示某地区警察的密度, b i b_i bi 表示该地区犯罪率。 现在分析二者的相对关系

大致均匀的分散在直线的两边,如何找出能代表它们趋势的直线呢? 最小二乘法的思想,最能代表趋势的直线,是 总体上来讲,这些点到这条直线最近 y = k x + c y=kx+c y=kx+c 由于实际数据是 ( a i , b i ) (a_i,b_i) (ai,bi),而拟合数据是 ( a i , k a i + c ) (a_i,ka_i+c) (ai,kai+c),最小二乘法则令差的和的平方 S S S为: S = ∑ i = 1 n ( k a i + c − b i ) 2 S=sum_{i=1}^{n}(ka_i+c-b_i)^2 S=i=1∑n(kai+c−bi)2 如何对k和c取值,从而让 S 的值最小。

    关于 k 展开,形成一个一元二次函数 S = ∑ i = 1 n ( k a i + c − b i ) 2 S=sum_{i=1}^{n}(ka_i+c-b_i)^2 S=∑i=1n(kai+c−bi)2 = ( ∑ a i 2 ) k 2 + 2 ( ∑ ( a i ( c − b i ) ) ) k + ∑ ( c − b i ) 2 =(sum a_i^2)k^2+2(sum(a_i(c-b_i)))k+sum(c-b_i)^2 =(∑ai2)k2+2(∑(ai(c−bi)))k+∑(c−bi)2 关于 c 展开 = n c 2 + ( 2 ∑ ( k a i − b i ) ) c + ∑ ( k a i − b i ) 2 =nc^2+(2sum(ka_i-b_i))c+sum(ka_i-b_i)^2 =nc2+(2∑(kai−bi))c+∑(kai−bi)2

为了让 S 达到最小值,则要对上面两个一元二次方程取最小值。 c = − b 2 a = − 2 ∑ ( k a i − b i ) 2 n = 1 n ( ∑ ( b i − k a i ) ) c=-frac{b}{2a}=-frac{2sum(ka_i-b_i)}{2n}=frac{1}{n}(sum(b_i-ka_i)) c=−2ab=−2n2∑(kai−bi)=n1(∑(bi−kai)) 即为 c 和 k 之间满足的第一个方程: c = 1 n ( ∑ ( b i − k a i ) ) ( 1 ) c=frac{1}{n}(sum(b_i-ka_i))(1) c=n1(∑(bi−kai))(1) 把 k 的一元二次方程展开得 k = − b 2 a = − 2 ( ∑ ( a i ( c − b i ) ) ) 2 ∑ a i 2 = ∑ ( a i b i ) − c ∑ b i ∑ a i 2 k=-frac{b}{2a}=-frac{2(sum(a_i(c-b_i)))}{2sum a_i^2}=frac{sum(a_ib_i)-csum b_i}{sum a_i^2} k=−2ab=−2∑ai22(∑(ai(c−bi)))=∑ai2∑(aibi)−c∑bi k = ∑ ( a i b i ) − c ∑ b i ∑ a i 2 ( 2 ) k=frac{sum(a_ib_i)-csum b_i}{sum a_i^2}(2) k=∑ai2∑(aibi)−c∑bi(2) 由(1)(2)得 k = n ∑ a i b i − ( ∑ a i ) ( ∑ b i ) n ∑ a i 2 − ( ∑ a i ) 2 k=frac{nsum a_ib_i-(sum a_i)(sum b_i)}{nsum a_i^2-(sum a_i)^2} k=n∑ai2−(∑ai)2n∑aibi−(∑ai)(∑bi) c = ( ∑ a i 2 ) ( ∑ b i ) − ( ∑ a i ) ( ∑ a i b i ) ) n ∑ a i 2 − ( ∑ a i ) 2 c=frac{(sum a_i^2)(sum b_i)-(sum a_i)(sum a_ib_i))}{nsum a_i^2-(sum a_i)^2} c=n∑ai2−(∑ai)2(∑ai2)(∑bi)−(∑ai)(∑aibi))

经验分享 程序员 微信小程序 职场和发展