下面是計(jì)算各個(gè)相關(guān)系數(shù)了,計(jì)算相關(guān)系數(shù)是一項(xiàng)機(jī)械且乏味的活動(dòng),一般都會(huì)交由相應(yīng)的工具去完成。不過您要是感興趣,也可以自己代入上述公式手算。下圖是我用Excel計(jì)算的結(jié)果:
圖1
一般來說,|r|大于0.7有很好的相關(guān)性了,而從計(jì)算結(jié)果可以看出,用例數(shù)量x1和工期y的相關(guān)系數(shù)達(dá)到0.93,為,而數(shù)據(jù)表數(shù)量x3也達(dá)到0.83,唯有實(shí)體數(shù)量x2的相關(guān)系數(shù)僅為0.65,質(zhì)量較差。因?yàn)閨r(x2,y)|<0.7,所以這里首先排除掉。
到了這里似乎我們可以順利成章選擇x1作為終Proxy,但是還有一點(diǎn)要考慮,是顯著性。所謂顯著性是在偶然情況下得到此結(jié)果的概率,如果顯著性不足,說明這個(gè)結(jié)果不可靠。顯著性t值的計(jì)算公式如下:
因?yàn)閚=5,這里自由度為3,然后查詢t分布表,得到95%預(yù)測區(qū)間為3.182。因?yàn)橐话泔@著性<0.05則認(rèn)為顯著性較好,所以如果t的值大于3.182,我們則可以接受。不過如果使用工具的話,一般可以用t檢測直接得出顯著性,這里我用Excel得到r(x1,y)的顯著性為0.006,r(x3,y)的顯著性為0.007(如圖2所示),都遠(yuǎn)小于0.05,顯著性均非常好。所以根據(jù)擇優(yōu)錄取原則,我們選擇x1:需求文檔中用例數(shù)量作為預(yù)測Proxy。
圖2
得到x的值
在上文中,我們通過相關(guān)性和顯著性分析,終決定使用需求文檔中的用例數(shù)量作為x。下面是要確定x的值,這個(gè)不必多說,直接從需求文檔中得到相應(yīng)的數(shù)量即可。
確定相關(guān)函數(shù)f
知道了x的值,下面是要確定相關(guān)函數(shù)了。這一步是艱難也是有技術(shù)性的,因?yàn)橄嚓P(guān)函數(shù)不但和數(shù)理因素相關(guān),還與開發(fā)團(tuán)隊(duì)、團(tuán)隊(duì)中的人以及管理方法有關(guān)。如果人員變動(dòng)很大或管理方法做了很大的調(diào)整,歷史數(shù)據(jù)可能不具備參考價(jià)值了。不過如果團(tuán)隊(duì)的開發(fā)水平和管理方法沒有重大變動(dòng),這個(gè)函數(shù)還是相對穩(wěn)定的。
在函數(shù)選型上,一般會(huì)選擇線性函數(shù),當(dāng)然我個(gè)人對此是十分懷疑的,但是這里為了簡單起見,我們姑且照例使用線性函數(shù)作為預(yù)測模型。這樣可以建立一元線性回歸模型如下:
這個(gè)函數(shù)并不是簡單的線性函數(shù),而是包含了一個(gè)隨機(jī)變量ε,這是一個(gè)服從正態(tài)分布的隨機(jī)變量。上述模型的直觀意義可以如下描述:a代表與x即用例數(shù)量無關(guān)的起始時(shí)間,b代表每一個(gè)用例所耗費(fèi)的平均時(shí)間,而ε代表開發(fā)中的不確定性。在不同的團(tuán)隊(duì)中或不同的管理方法下,a,b和ε都是不一樣的,但是當(dāng)團(tuán)隊(duì)和管理方法相對穩(wěn)定,可以認(rèn)為a,b和ε是可通過歷史數(shù)據(jù)估計(jì)的。而因?yàn)?epsilon;的期望為0,所以只要給出a和b的合理估計(jì),可以得到y(tǒng)的一個(gè)無偏估計(jì)。
下面我們估計(jì)a和b的值。估計(jì)方法有很多,如曲線擬合法或小二乘法。這里我們采用小二乘法進(jìn)行估計(jì)。
小二乘法估計(jì)的基本原理如下: