一切为了数据挖掘的准备

1.线性回归
  • 用一个模型概括x,y的关系
  • 因变量:预测的变量
  • 自变量:用来预测因变量的一个或多个变量
  • 简单线性回归:只包括一个自变量和一个因变量,两者之间的关系可以用一条直线近似表示
2.回归模型
  • 回归分析:求一个说明因变量y如何依赖自变量x的方程。
  • 回归模型:描述y如何依赖于x和误差项的方程:
    y=β0+β1x+ϵy = \beta_0 + \beta_1x + \epsilon其中β0\beta_0,β1\beta_1为模型的参数。ϵ\epsilon是随机变量,被称为模型的误差项。误差项说明不能被xy之间线性关系解释的变异性
  • 回归方程:描述y的期望值E(y)如何依赖于x的方程。E(y)=β0+β1xE(y) = \beta_0 + \beta_1x
    在样本中,每个x对应一个y分布,y的每个分布都有自己的平均值或期望值。
  • 估计的回归方程:实际中总体参数β0\beta_0,β1\beta_1未知,必须使用样本统计量b0b_0,b1b_1作为总体参数β0\beta_0,β1\beta_1的点估计量。得到回归估计方程y^=b0+b1x\hat{y} = b_0 + b_1x
3.最小二乘法
  • 使样本点到直线的距离最小;使观测值yiy_i与预测值yi^\hat{y_i}之间差的平方和最小
  • 最小二乘法
    min(yiyi^)2min\sum{(y_i - \hat{y_i})^2}
    yiy_i:实际值
    yi^\hat{y_i}:预测值
  • 样本估计量(偏导可得):
    b1=(xix)((yiy)(xix)2b_1=\frac{\sum{(x_i-\overline{x}})((y_i-\overline{y})}{\sum(x_i-\overline{x})^2}
    b0=yb1xb_0=\overline{y}-b_1\overline{x}
  • 使用判定系数评估模型
    • 误差/残差平方和SSE=(yiyi^)2SSE=\sum{(y_i-\hat{y_i})^2}
    • 总的平方和SST=(yiy)2SST=\sum{(y_i-\overline{y})^2}
    • 回归平方和SSR=(yi^y)2SSR=\sum{(\hat{y_i}-\overline y)^2}
    • 三者之间关系SST=SSR+SSESST = SSR + SSE
    • 判定系数:r2=SSRSSTr^2=\frac{SSR}{SST}。值越接近1,拟合越好,越接近0,拟合越差。
      判定系数为总平方和中能被估计的回归方程解释的百分比。适用于非线性关系及有两个以上的自变量情况,适用范围更广。
  • 相关系数评估模型:
    rxy=r2r_{xy} = \sqrt{r^2}。相关系数只适用于两变量间存在线性关系的情况。
4.显著性检验

E(y)=β0+β1xE(y) = \beta_0 + \beta_1x,如果β1\beta_1为0,y的平均值或期望不依赖于x的值。需要用一个假设检验判定β1\beta_1是否等于0.

ϵ\epsilon(误差项)的方差σ2\sigma^2的估计
  • ϵ\epsilon(误差项)的方差σ2\sigma^2也是y关于回归直线的方差。可能是因为如下方程y=β0+β1x+ϵy = \beta_0 + \beta_1x + \epsilon
  • 残差平方和SSE是实际观测值关于估计的回归线变异性ϵ\epsilon的度量。SSE=(yiyi^)2SSE = \sum{(y_i- \hat{y_i})^2}。有点像ϵi2\sum{\epsilon_i^2}(我猜的)
  • 利用SSE除以自己的自由度,得到均方误差MSE。MSE是σ2\sigma^2的一个估计量.MSE=SSEn2=(yiy1^)n2MSE = \frac{SSE}{n-2}=\frac{\sum{(y_i - \hat{y_1})}}{n-2}
  • 为了计算SSE,必须估计两个参数,β0\beta_0,β1\beta_1,所以SSE的自由度是n-2
  • 均方误差:s2=MSE=SSEn2=(yiy1^)n2s^2=MSE=\frac{SSE}{n-2}=\frac{\sum{(y_i - \hat{y_1})}}{n-2}
  • 标准误差:s=MESs=\sqrt{MES}
t检验
  • 构建关于β1\beta_1的双侧检验
    假设:H0:β1=0,H1:β10H_0:\beta_1=0,H_1:\beta_1 \neq 0
  • 点估计的抽样分布:
    b1b_1,b0b_0β1\beta_1,β0\beta_0的点估计。如果使用不同的样本会得出不同的值,有自己的抽样分布。
    • E(b1)=β1E(b_1)=\beta_1
    • sb1=s(xix)2s_{b_1}=\frac{s}{\sqrt{\sum(x_i-\overline{x})^2}}. 可能和以下公式有关,我猜的 :b1=(x1x)(yiy)(xix)2b_1 = \frac{\sum(x_1-\overline{x})(y_i-\overline{y})}{\sum(x_i-\overline{x})^2}
    • 正态分布
  • t检验的检验统计量为:b1β1sb1\frac{b_1-\beta_1}{s_{b_1}},服从 自由度为n-2的t分布。
  • 假设原假设成立,β1=0,t=b1sb1\beta_1=0,t=\frac{b_1}{s_{b_1}}
  • 求出p-value,与显著水平对比,得出结论,是否拒绝原假设。
  • β1\beta1的置信区间为b1±tα/2sb1b1 \pm t_{\alpha/2}s_{b_1}
python解析
from statsmodels.formula.api import ols
import pandas as pd
df = pd.read_csv(filename)
df_model = ols("y列名 ~ x列名",data=df).fit()
print(df_model.summary())
5.区间估计
  • 置信区间:对于x的一个给定值,y的平均值的区间估计
  • 预测区间:对于x的一个给定值,对应y的一个新的观测值,即对y的一个个别值进行预测的区间估计。
  • 一个个别值的预测值和y的平均值的点估计是相同的,但区间估计不同
置信区间
  • 给定x的估计值
    yp^=β0+β1xp\hat{y_p}=\beta_0 + \beta_1x_p
  • 估计值的估计方差(其中n为样本的个数)
    s^yp^2=s2[1n+(xpx)2(xix)2]\hat{s}_{\hat{y_p}}^2 = s^2[\frac{1}{n}+\frac{(x_p - \overline{x})^2}{\sum(x_i-\overline{x})^2}],s2=MSE=SSEn2=(yiy1^)n2s^2=MSE=\frac{SSE}{n-2}=\frac{\sum{(y_i - \hat{y_1})}}{n-2}
  • 估计值的估计标准差
    s^yp^=s1n+(xpx)2(xix)2\hat{s}_{\hat{y_p}} = s\sqrt{\frac{1}{n}+\frac{(x_p - \overline{x})^2}{\sum(x_i-\overline{x})^2}}
  • 置信区间
    yp^±tα/2syp^\hat{y_p} \pm t_{\alpha/2}s_{\hat{y_p}}t分布的自由度是n-2
  • xp=xx_p=\overline{x}时,能够得到y的平均值的最佳估计量(此时估计两的估计标准差为0),xpx_px\overline{x}越小,平均值的置信区间越大
y的一个个别值的预测区间
  • 给定x的预测值
    yp^=β0+β1xp\hat{y_p}=\beta_0 + \beta_1x_p
  • 预测值的方差由两部分组成
    • y关于平均值E(yp)E(y_p)的方差,估计量为s2s^2
    • 利用yp^\hat{y_p}估计E(yp)E(y_p)的方差,估计量为s^yp^2\hat{s}_{\hat{y_p}}^2
      sind=s2+s^yp^2=s2+s2[1n+(xpx)2(xix)2]=s2[1+1n+(xpx)2(xix)2]s_{ind}=s^2+\hat{s}_{\hat{y_p}}^2=s^2 + s^2[\frac{1}{n}+\frac{(x_p - \overline{x})^2}{\sum(x_i-\overline{x})^2}]=s^2[1+\frac{1}{n}+\frac{(x_p - \overline{x})^2}{\sum(x_i-\overline{x})^2}]
      sind=s1+1n+(xpx)2(xix)2s_{ind}=s\sqrt{1+\frac{1}{n}+\frac{(x_p - \overline{x})^2}{\sum(x_i-\overline{x})^2}}
  • 预测区间
    yp^±tα/2sind\hat{y_p} \pm t_{\alpha/2}s_{ind}t分布的自由度是n-2
y个别值的预测区间比平均值的置信区间大

统计系列二:线性回归

相关文章: