一、回归函数


通过不同的X(predictor,independent variable, covariate, input, etc.)去估计Y值(the dependent variable, output, response, etc.)

回归分析: 一种通过分析两个或多个变量间关系,以达到可以通过其他量的值来预测所需量的值的统计学方法。 也就是说,等同于预测一个函数关系:Y=f(x)

模型(model):变量间关系的估计 (函数关系,统计关系)
1. 函数关系: x和Y之间的关系可以通过函数来表达Yi=f(xi), 如果我们知道xi的值,就可以直接获得Yi的值。这种关系是具有确定性的(deterministic)。
2. 统计关系: 一般描述为 trend + error。 例如:信号和噪声。 这种关系是具有随机性的(stochastic)。它可以认为是一个函数关系加上噪声。

经验模型(empirical model): Y=f(x)+ϵ(x), 其中ϵ(x)是均值为0,彼此不相关corr(ϵi,ϵj)=0的噪声。

corr(x,y)=0

1. 若 X和Y不相关,corr(x,y) = 0。只能说明X和Y之间不存在线性关系,但不排除X和Y之间可能存在其他关系。
2. 若X和Y独立,则一定有corr(x,y) = 0,若X和Y不相关,则仅仅是不存在线性关系。

使用有限的数据去估计函数关系几乎是不可能的,为了使得问题可解,我们定义:
yi=β0+β1xi+ϵi,i=1,...,n

Note:
1. xi不仅仅局限于线性,我们可以定义x∗=x2i,x∗=logxi,等等。
2. E(ϵi)=0 and Var(ϵi)=δ2
3. 因为ϵ的存在,即使假设xi是常数,Y依然是一个随机量。

二、对回归参数的解释


example:

Y=9.5+2.1x+ϵ 。其中x的范围为20-80
β0 : intercept(截距): 当x = 0 时, Y的值。 但是当x = 0 在观测值范围以外时,β0即没有相关的意义
β1

最小均方误差

为了确定回归函数,我们必须在一定程度上尽可能的降低预测误差(Yi−β0−β1xi)
Q1(β0,β1)=∑ni=0|yi−(β0+β1xi)|
Q2(β0,β1)=∑ni=0{yi−(β0+β1xi)}2
Q3(β0,β1)=∑ni=0{yi−(β0+β1xi)}
至于为什么线性回归问题选择了最小均方误差,即Q2,请参考最小均方误差

对Q2求导等于0之后可以获得:
β^1=∑ni=1(xi−x¯)(yi−y¯)∑ni=1(xi−x¯)
β^0=y¯−β^1x¯

最小均方估计回归曲线: Y^=β^0+β^1x

为什么最小均方估计是好的?
1. 他们是无偏估计量:E(β^0)=β0 , E(β^1)=β1
2. 在所有的线性无偏估计量中,他们具有最小的方差,他们是最佳线性无偏估计量(best linear unbiased estimators (BLUEs) )

偏差和估计值

residual(偏差): ei=yi−y^i=yi−(β^0+β1xi)
fitted value(估计值): y^i=β^0+β^1xi,i=1,2...,n
Note:
1. ei=yi−y^i≠ϵi 其中y^i是基于xi的,而ϵi的值是随机的

Properties of the Fitted Regression Line

  1. ∑ni=0ei=0
  2. ∑ni=0yi=∑ni=0y^i
  3. ∑ni=0xiei=0
  4. ∑ni=0y^iei=0
    Note:
    在证明这些公式的过程中,有个小技巧可以用
    ∑(yi−y¯)=0

Estimating the Error Variance

sum of square : ∑ni=1(yi−y¯)2

mean square : s2=1n−1∑ni=1(yi−y¯)2

SSE( sum of squared residuals) : SSE=∑ni=1(yi−y^i)2

MSE( mean squared residuals) : MSE=∑ni=1(yi−y^i)2n−2=SSEn−2=∑ni=1e2in−2

Note:
1. MSE 是 δ2的无偏估计量, E(MSE)=δ2
2. δ^=MSE−−−−−√ , 很多情况下我们可以知道MSE,即可用此公式求出δ^

The Normal Error Regression Model

ϵi∼iidN(0,δ2),i=1,2,...,n

E(ϵ)=0

Var(ϵ)=δ2

Corr(ϵi,ϵj)=0,i≠j

rm(list=ls())

#####################################################
# Toluca example
#载入x和y的数据,默认为多列一行
x<-c(80,30,50,90,70,60,120,80,100,50,40,70,90,20,110,100,30,50,90,110,30,90,40,80,70)
Y<-c(399,121,221,376,361,224,546,352,353,157,160,252,389,113,435,420,212,268,377,421,273,468,244,342,323)

# 绘制散点图,其中xlab和ylab分别定义了坐标名称 
plot(x,Y,xlab="Lot Size (Parts/lot)",ylab="Work Hours" ) 

# Fit 一个model,该方法会返回beta_0和beta_1的值
# b获得了fit的model的参数,即直接组成了beta的矩阵
# seq函数返回的是20-120范围内,以1为间隔的值,b[1]为beta_0的值,b[2]为beta_1的值,lines(x范围,线性方程)绘制直线。
lm(Y~x)
b<-lm(Y~x)$coefficients
lines(seq(20,120,1),b[1]+b[2]*seq(20,120,1))

# 不使用lm方法,而是通过矩阵的方法获得beta的值
# 其中只需要注意构造x的矩阵,第一列全为1
# rep(1,length(seq(20,120,1))) 构造了第一列值全为1,且行数等于seq(20,120,1)的长度,cbind()将两个矩阵左右相连 
cov.p<-cbind(rep(1,length(seq(20,120,1))),seq(20,120,1))
plot(x,Y,xlab="Lot Size (Parts/lot)",ylab="Work Hours")
# %*%表示矩阵的点乘,col控制颜色
lines(seq(20,120,1), cov.p%*%(lm(Y~x)$coefficients),col="red")

R语言line函数density参数 r语言 linear regression_R语言line函数density参数

R语言line函数density参数 r语言 linear regression_MSE_02


从图中可以很方便的获得β0=62.37,β1=3.57

# 在上面的散点图中绘制出误差值 
for(i in 1:length(x)){
lines(c(x[i],x[i]),c(b[1]+b[2]*x[i],Y[i]),col="green")
}

# 计算MSE,SSE
Y.hat<-b[1]+b[2]*x
n<-length(Y)
SSE<-sum( (Y-Y.hat)^2)
MSE<-SSE/(n-2)
sqrt(MSE)

# We can also get this from the summary of the regression output given by R
summary(lm(Y~x))

对此图的详解将放到后面的博客中。

R语言line函数density参数 r语言 linear regression_无偏估计_03