1. 程式人生 > >鄧飛----康普森農業

鄧飛----康普森農業

我們之所以建模, 主要的價值在於預測. 學習統計時, 看到各種模型, 線性迴歸,多元線性迴歸, 曲線迴歸等等, 都是為了建模.

但是模型是否好呢? 我們可以檢視R方, 調和R方.

機器學習的到來, 為統計打開了另一扇大門. 交叉驗證, 檢視預測準確度.

如果說現代統計學是一門循序漸進, 系統完善的科學, 機器學習則是各種流派, 黑貓白貓抓到老鼠就是好貓. 英雄不問出處.

機器學習的到來, 讓結果說話, 而不是所謂的邏輯或者假定. 存在的就是合理的, 路徑可能沒有發現, 終究會發現. 有可能是另一個語言系統中了.

模擬一套資料

In [4]:

f = function(x) 3 + 2*x
x = rnorm(100)
y = f(x) + 0.5*rnorm(100)
dat =data.frame(x=x,y=y)
head(dat)

x y

0.7656238 4.5241703 -1.2045951 0.1475003 1.8686146 6.6297829 0.7531363 4.9709326 -0.6847217 1.7381070 -0.7545989 1.4639742

使用資料還原x和y的關係

In [5]:

mod = lm(y~x)
summary(mod)

Call:
lm(formula = y ~ x)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.89810 -0.33549  0.01217  0.30443  1.03068 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.99220    0.04318   69.29   <2e-16 ***
x            1.90101    0.04506   42.19   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4266 on 98 degrees of freedom
Multiple R-squared:  0.9478,    Adjusted R-squared:  0.9473 
F-statistic:  1780 on 1 and 98 DF,  p-value: < 2.2e-16

模型引數

In [6]:

coef(mod)
(Intercept)
2.99220004612752 x
1.9010058887296

公式: $$ y = 2.99 + 1.90*x $$

可以看出來, 通過資料還原x和y的關係, 和真是的x和y的關係比較接近.

作圖: 資料和模型的關係 {#作圖:-資料和模型的關係}

In [7]:

plot(x,y,main="this is a plot")
abline(coef(mod),col="blue")

使用構建好的模型預測

預測x=-1和0.5時y的值

In [8]:

predict(mod,list(x=c(-1,0.5)),se.fit = TRUE)
$fit
1
1.09119415739792 2
3.94270299049232
$se.fit
1
0.0670845693041622 2
0.0454934964906985
$df
98 $residual.scale
0.426558713436954

In [ ]: