1. 程式人生 > >R語言與點估計學習筆記(刀切法與最小二乘估計)

R語言與點估計學習筆記(刀切法與最小二乘估計)

一、       刀切法(jackknife)

        刀切法的提出,是基於點估計準則無偏性。刀切法的作用就是不斷地壓縮偏差。但需要指出的是縮小偏差並不是一個好的辦法,因為偏差趨於0時,均方誤差會變得十分大。而且無偏性只有在大量重複時才會表現出與真值的偏差不大。Jackknife的想法在於:既然樣本是抽出來的,那我在作估計、推斷的時候“扔掉”幾個樣本點看看效果如何。

        例如我們來看使用刀切法估計正態分佈N(2,25)的方差,我們認為樣本的修正方差是關於總體方差的一個估計量使用刀切法:

>x<-rnorm(100,2,5)

>jack<-function(x){

+jackknife<-0

+for(i   in  1:length(x))     jackknife[i]=length(x)*var(x)-(length(x)-1)/length(x)*sum(var(x[-i]))

+ jackknife

+ }

>mean(jack(x))/length(x)

[1]26.07598

> var(x)

[1]26.33671

可以看出刀切法得到的估計量更接近總體方差。

關於刀切法,也不僅僅只是用來做引數估計的,他的用法與之前提到的bootstrap類似。

二、最小二乘估計

雖然MLe是很好的引數估計辦法,它過分依賴總體分佈。在不知道總體分佈的情況下,又只知道一組資料,那麼LSE將會是一個不錯的選擇。關於LSE的相關理論你可以參考任意一本數理統計的教材,比如前面提到的王兆軍《數理統計講義》(這個百度文庫裡有)

下面介紹一下R中的做迴歸的函式lm,用法如下:

lm(formula, data, subset, weights, na.action,

  method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE,

  singular.ok = TRUE, contrasts = NULL, offset, ...)

僅以R中給出的example中的資料作為例子:

> ctl <-c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)

> trt <-c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)

> group <- gl(2,10,20,labels=c("Ctl","Trt"))

> weight <- c(ctl, trt)

> lm.D9 <- lm(weight ~ group)

> lm.D9

Call:

lm(formula = weight ~ group)

Coefficients:

(Intercept)    groupTrt 

     5.032       -0.371 

> summary(lm.D9)

Call:

lm(formula = weight ~ group)

Residuals:

   Min      1Q  Median     3Q     Max

-1.0710 -0.4938  0.0685 0.2462  1.3690

Coefficients:

           Estimate Std. Error t value Pr(>|t|)   

(Intercept)  5.0320     0.2202  22.850 9.55e-15 ***

groupTrt    -0.3710     0.3114  -1.191   0.249   

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.6964 on 18 degreesof freedom

Multiple R-squared: 0.07308,    Adjusted R-squared: 0.02158

F-statistic: 1.419 on 1 and 18 DF,  p-value: 0.249

可以得到常數項為5.0320,一次項係數為-0.3710

關於最小二乘估計,在時間序列模型的引數估計中也有用,在時間序列分析的學習筆記中會提到