曹 蕾,張志強(qiáng)
(長春工業(yè)大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,吉林 長春 130012)
在籃球運(yùn)動(dòng)項(xiàng)目中,投球命中率是衡量籃球運(yùn)動(dòng)員表現(xiàn)的重要指標(biāo),為籃球經(jīng)理人考慮球員轉(zhuǎn)會(huì)提供了參考[1]。用上賽季投球命中率預(yù)測下賽季投球命中率是直觀的想法,然而James W等[2]指出,p維正態(tài)總體(協(xié)方差矩陣是單位陣)的樣本均值是非容許估計(jì)[3],即收縮估計(jì)的風(fēng)險(xiǎn)函數(shù)小于極大似然估計(jì)的風(fēng)險(xiǎn)函數(shù)。同時(shí)考慮身高、體重等因素對投球命中率的影響,文中采用雙水平收縮估計(jì)方法[4]對籃球運(yùn)動(dòng)員投球命中率進(jìn)行預(yù)測,并用Matlab軟件實(shí)現(xiàn)。
文中選取2017-2018賽季和2018-2019賽季籃球運(yùn)動(dòng)員的數(shù)據(jù),該數(shù)據(jù)是從新浪體育中國籃球CBA專欄整理的。首先進(jìn)行數(shù)據(jù)清洗:
1)2017-2018賽季和2018-2019賽季都參加的球員;
2)運(yùn)動(dòng)員在兩個(gè)賽季投球數(shù)都大于15次,最終選取255個(gè)數(shù)據(jù)。
球員數(shù)據(jù)包括身高(x1j,cm)、體重(x2j,kg)、總籃板數(shù)(x3j)、出場數(shù)(x4j)、助攻(x5j)、搶斷(x6j)、蓋帽(x7j)、罰中球數(shù)(x8j)、兩分球命中數(shù)(Yi1)、兩分球總數(shù)(Ni1)。j=1,2分別代表2017-2018賽季和2018-2019賽季。2017-2018賽季部分球員篩選數(shù)據(jù)見表1。
表1 2017-2018賽季運(yùn)動(dòng)員數(shù)據(jù)
2017-2018賽季共有255個(gè)籃球運(yùn)動(dòng)員,同時(shí)考慮一些協(xié)變量對籃球運(yùn)動(dòng)員投籃命中率的影響,如身高、體重、出場數(shù)、總籃板數(shù)、助攻、搶斷、蓋帽、罰中球數(shù)等一些協(xié)變量因素。在層次模型第二層中加入新的協(xié)變量,采用雙水平收縮估計(jì)方法,但文獻(xiàn)[4]處理的是連續(xù)型隨機(jī)變量,文中數(shù)據(jù)處理的是離散型數(shù)據(jù),要對數(shù)據(jù)進(jìn)行變換。
假設(shè)
Yij~Binomial(Nij,pi),
i=1,2,…,n0,j=1,2,
式中:i——代表每一個(gè)運(yùn)動(dòng)員;
j——賽季,j=1代表2017-2018賽季,j=2代表2018-2019賽季;
Nij——第i個(gè)運(yùn)動(dòng)員第j個(gè)賽季的兩分球投球總數(shù);
Yij——第i個(gè)運(yùn)動(dòng)員第j個(gè)賽季的兩分球投中球數(shù);
pi——第i個(gè)運(yùn)動(dòng)員的命中率。
假設(shè)2017-2018賽季和2018-2019賽季的投球命中率不變,可以得到
則Xij近似分布
(1)
先驗(yàn)分布中考慮了8個(gè)協(xié)變量的因素,
θi=β0+β1x11+β2x21+…+β8x81,
β0~N(0,λ),
β1~N(0,λ),
β2~N(0,λ),
?
β8~N(0,λ),
假設(shè)β0,β1,…,β8都獨(dú)立。j=1代表2017-2018賽季數(shù)據(jù),文中用2017-2018賽季數(shù)據(jù)來預(yù)測2018-2019賽季的投球命中率。其中x11,x21,…,x81分別代表第1個(gè)賽季的身高、體重、總籃板數(shù)、出場數(shù)、助攻、搶斷、蓋帽、罰中球數(shù),則
收縮估計(jì)是
(2)
(3)
風(fēng)險(xiǎn)函數(shù)式(3)的無偏估計(jì)為
(4)
(5)
對風(fēng)險(xiǎn)函數(shù)無偏估計(jì)式(4)通過Matlab實(shí)現(xiàn)[5-7],考慮后衛(wèi)、前鋒、中鋒和全體籃球運(yùn)動(dòng)員,以全體籃球運(yùn)動(dòng)員數(shù)據(jù)為例進(jìn)行編程。具體流程如圖1所示。
具體編程如下:
CBA1=xlsread('18zongti.xlsx');%導(dǎo)入數(shù)據(jù)集
p=CBA1(:,1)./CBA1(:,2);%極大似然估計(jì)
H=1./(CBA1(:,2).*p.*(1-p));
X=log(CBA1(:,1)./(CBA1(:,2)-CBA1(:,1)));
G=1+((CBA1(:,3)-mean(CBA1(:,3)))./std(CBA1(:,3))).^2+((CBA1(:,4)-mean(CBA1(:,4)))./std(CBA1(:,4))).^2+((CBA1(:,5)-mean(CBA1(:,5)))./std(CBA1(:,5))).^2+((CBA1(:,6)-mean(CBA1(:,6)))./std(CBA1(:,6))).^2+((CBA1(:,7)-mean(CBA1(:,7)))./std(CBA1(:,7))).^2+((CBA1(:,8)-mean(CBA1(:,8)))./std(CBA1(:,8))).^2+((CBA1(:,9)-mean(CBA1(:,9)))./std(CBA1(:,9))).^2+((CBA1(:,10)-mean(CBA1(:,10)))./std(CBA1(:,10))).^2;
h=H./G;
q=1./H;
程序中p表示球員賽季命中率,H表示Xi1的近似方差,X表示變換后的連續(xù)性數(shù)據(jù)。x11,x21,…,x81的單位是不同的,所以對x11,x21,…,x81進(jìn)行了單位化。CBA1(:,3)代表身高,CBA1(:,4)代表體重,CBA1(:,5)代表出場數(shù),CBA1(:,6)代表總籃板數(shù),CBA1(:,7)代表助攻,CBA1(:,8)代表搶斷,CBA1(:9)代表蓋帽,CBA1(:,10)代表罰中球數(shù),所以G也需要相應(yīng)的單位化,即
式中:std——標(biāo)準(zhǔn)差。
lamda0=var(X);
x0=[20 100];
L=length(G);
global G H lamda0 L;
camel= @(x,y) 1./(sum(q)).*(sum((q.*(h.^2.*(X-x).^2))./((y+h).^2)+(y-h)./(y+h)));
loss=@(xo_sa) camel(xo_sa(1),xo_sa(2));
options1 = struct(...
'CoolSched',@(T) (.95*T),...
'InitTemp',10^7,...
'MaxConsRej',10^5,...
'MaxSuccess',10^4,...
'MaxTries',10^5,...
'StopVal',10^(-5),...
'Verbosity',1);
[xo_sa,fo_sa]=anneal1(loss,x0,options1);
這部分程序的任務(wù)是最小化風(fēng)險(xiǎn)函數(shù)的無偏估計(jì),從而得到超參數(shù)的估計(jì)。風(fēng)險(xiǎn)函數(shù)的無偏估計(jì)是一個(gè)非常復(fù)雜的函數(shù),采用梯度的最優(yōu)算法和Nelder算法[8]無法實(shí)現(xiàn)式(4)的最小化,所以采用模擬退火[9-10]方法進(jìn)行最小化。
anneal1是模擬退火程序。鑒于篇幅原因,文中不展示模擬退火程序。
得到超參數(shù)的估計(jì)后,根據(jù)式(5)得到收縮估計(jì)。為了評(píng)價(jià)收縮估計(jì)方法的好壞,采用預(yù)測誤差(WPE),
SURE收縮估計(jì)方法[11]文中也是采取加權(quán)平方損失函數(shù)。因此可以根據(jù)WPE的大小來判斷雙水平收縮估計(jì)和SURE收縮估計(jì)的好壞,WPE越小,收縮估計(jì)越精準(zhǔn)。
數(shù)據(jù)經(jīng)過預(yù)處理后,文中認(rèn)為身高、體重、出場數(shù)、總籃板數(shù)、助攻、搶斷、蓋帽、罰中球數(shù)這些協(xié)變量與命中率密切相關(guān)。按照位置不同,考慮后衛(wèi)、前鋒、中鋒和所有球員的兩分球命中率。WPE結(jié)果見表3。
表3 WPE結(jié)果對比
從表3可以得出結(jié)論,即考慮協(xié)變量對預(yù)測誤差改善是有幫助的。雙水平收縮估計(jì)方法考慮了協(xié)變量,SURE收縮估計(jì)方法沒有考慮協(xié)變量,對于后衛(wèi)、前鋒、中鋒、所有球員,雙水平收縮估計(jì)方法的WPE都小于SURE方法的WPE。
根據(jù)2017-2018賽季數(shù)據(jù)預(yù)測2018-2019賽季投球命中率,采用雙水平收縮估計(jì)方法和SURE收縮估計(jì)方法[11]進(jìn)行預(yù)測。雙水平收縮估計(jì)方法是處理連續(xù)隨機(jī)變量,而投球數(shù)是離散型數(shù)據(jù),進(jìn)行變換后得到連續(xù)型變量。最小風(fēng)險(xiǎn)函數(shù)的無偏估計(jì)是比較有挑戰(zhàn)的工作,因?yàn)槌S锰荻鹊淖顑?yōu)算法和Nelder算法無法實(shí)現(xiàn)式(4)的最小化,所以采用模擬退火方法實(shí)現(xiàn)風(fēng)險(xiǎn)函數(shù)無偏估計(jì)的最小化。因?yàn)殡p水平收縮估計(jì)方法的WPE小于SURE收縮估計(jì)方法的WPE,所以雙水平收縮估計(jì)方法比SURE收縮估計(jì)方法好。SURE收縮估計(jì)方法沒有雙水平收縮估計(jì)方法好的原因是SURE收縮估計(jì)方法沒有考慮協(xié)變量因素(身高、體重等)。
綜上所述,文中對2018-2019賽季籃球運(yùn)動(dòng)員數(shù)據(jù)進(jìn)行分析,對投球命中率進(jìn)行預(yù)測,雙水平收縮估計(jì)方法的預(yù)測誤差非常小,希望對籃球運(yùn)動(dòng)員轉(zhuǎn)會(huì)提供一定的參考作用。