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
關於最小二乘估計,在時間序列模型的參數估計中也有用,在時間序列分析的學習筆記中會提到
推薦閱讀:
※積夢智能-為中國製造業揭開數據之霧
※「異類」年度大數據引領消費生態大進化
※Kaggle自行車預測練習-基礎篇
※地震運用大數據預測可能性