在k重交叉驗證中,樣本被分為k個子樣本,輪流將k–1個子樣本組合作為訓練集,另外1個子樣本作為保留集。這樣會獲得k個**方程,記錄k個保留樣本的**表現結果,然後求其平均值。(當n是觀測總數目,且k為n時,該方法又稱作刀切法,jackknifing。)
目前實現了交叉檢驗的兩種實現方法:
1.boot包裡的cv.glm()函式
主要用來做廣義線性模型的交叉驗證,一般與glm()函式一起使用。
glm()函式中的引數family = 「binomial」用來執行邏輯斯蒂回歸,但如果用glm()函式擬合模型時沒有設定family引數,那麼它就跟lm()函式一樣執行的是線性回歸。
library(boot)
cv.err
<- cv.glm(total_train, total.glm, k = 5)
cv.err$delta
# 返回的向量是交叉驗證的結果,包含兩個值,分別為原始的交叉驗證和調整的交叉驗證值。(《統計學習導論》講過)
bootstrap包裡的crossval()函式
通用的交叉驗證法。
library(bootstrap)
x <- total_train2[,-2]
y <- total_train2[,2]
theta.fit
<- function(x,y)
theta.predict
<- function(fit, x)
results <- crossval(x,y,theta.fit,theta.predict,ngroup=5)
result返回的是每個觀測值的交叉驗證的**值results$cv.fit,再帶入均方誤差公式,求出交叉驗證的**誤差。
詳見: 《r實戰2》
交叉表卡方檢驗與因果性檢驗
最小預計計數 20 此時用皮爾遜卡方就行,對應p值小於顯著水平0.05拒絕原假設,住房條件與婆媳關係有相關性 p 值 0.05 由於這是定類與定類變數之間 如果是定類與定序,把定序轉為定類都放到名義中分析 的分析,關於因果性關係強度的lambda l 就派上用場了 lambda是基於pre上的相關測...
交叉表的實現,
表如下 a b 10 5 5 4 8 怎麼用sql語句變成 15 5 12 declare sql varchar 8000 set sql select sql sql rtrim a sum case a when rtrim a then b else 0 end from table1 gr...
Python實現 MK檢驗
mk檢驗 時間序列進行檢測,並找出突變點,本文參考網上的matlab程式改寫為python 如下 import numpy as np import pandas as pd import matplotlib.pyplot as plt 讀取時間序列資料 data pd.read csv 定義時間...