<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 用Excel中的VBA編寫卡方測算相關(guān)程序

          用Excel中的VBA編寫卡方測算相關(guān)程序

          作者: 時間:2012-11-22 來源:網(wǎng)絡(luò) 收藏

           在生命科學(xué)及社會科學(xué)研究中,卡方(χ2)檢驗是最常用的統(tǒng)計分析方法之一[1-8]??ǚ剑?chi;2)檢驗是次數(shù)資料的顯著性檢驗方法,包括適合性檢驗和獨立性檢驗兩類[9]。適合性檢驗用于檢驗?zāi)承誀钣^察次數(shù)與該性狀的理論比率是否符合,如在遺傳分析中研究兩對性狀雜種后代的分離現(xiàn)象是否符合某一特定比率;而獨立性檢驗是用于判斷兩類因子是彼此相關(guān)還是相互獨立的,如:采用某種措施與預(yù)防某種災(zāi)害的關(guān)系。
          卡平方的計算很復(fù)雜,但隨著計算機(jī)與統(tǒng)計軟件的普及,應(yīng)用計算機(jī)計算卡平方成為最準(zhǔn)確可靠的方法,各種大型統(tǒng)計軟件如SAS、SPSS、DPS等均應(yīng)用于卡平方的[10-12],一些研究者也研發(fā)了在上編制運算表來實現(xiàn)卡平方的方法[13]。
           使用如SAS、SPSS、DPS等大型統(tǒng)計軟件需要有較高花費;采用R統(tǒng)計軟件來編程進(jìn)行卡平方要求研究者有較強(qiáng)學(xué)術(shù)底蘊和計算機(jī)編程能力。這在客觀上限制了SAS、SPSS、DPS、R等統(tǒng)計軟件的普及應(yīng)用。作為 Microsoft Office 家族成員,由于多數(shù)學(xué)生和科研人員都具有基礎(chǔ)知識,采用Excel軟件計算卡平方無需考慮運行環(huán)境而受到歡迎。然而,采用編制運算表的方法還是讓人感到有些繁鎖,不易學(xué)習(xí)使用。鑒于此,本文采用一種基于Excel的編程方法[14-15],了“卡平方測算”相關(guān)程序,可在所有配備Office 2000以上版本的計算機(jī)上使用。“卡平方測算”在程序運算時只需輸入最原始的數(shù)據(jù),應(yīng)用步驟實行最直觀的人機(jī)對話,任何初學(xué)者都可以即學(xué)即用輕松地掌握程序的使用方法;完的程序成為工作模板后,可以任意復(fù)制或通過e-mail郵寄等方式進(jìn)行傳播、拷貝,因此這種方法受到使用者的一致好評。
          本文介紹了該程序的源代碼及使用方法,讓所有不方便使用大型統(tǒng)計軟件的同行都可分享這些程序帶來的所有便利。
          1 程序源代碼
          1.1 用于適合性檢驗的卡平方計算程序

          Private Sub CommandButton1_Click()
          Dim n As Integer
          n=InputBox(請輸入數(shù)據(jù)組數(shù)n=?)
          Cells(1,2).Value=(數(shù)據(jù)組數(shù)n)
          Cells(2,2).Value=n
          Dim a0(0 To 99)As Single
          Dim al(0 To 99)As Single
          Dim x2 As Integer
          Cells(1,3).Value=實測值a0
          Cells(1,4).Value=理論值al
          Cells(1,5).Value=卡平方值x2
          For i=1 To n
          a0(i)=InputBox(請輸入實測值的第 i 個樣本值)
          Cells(1+i,3).Value=a0(i)
          Next i
          For i=1 To n
          al(i)=InputBox(請輸入理論值的第 i 個樣本值)
          Cells(1+i,4).Value=al(i)
          Next i
          x=0
          For i=1 To n
          x=x+((a0(i)-al(i))^2)/al(i)
          Next i
          Cells(2,5).Value=x
          End Sub
          1.2 用于獨立性檢驗的卡平方計算程序
          1.2.1 2×2表的獨立性測驗

          Private Sub CommandButton1_Click()
          Dim a As Integer :Dim b As Integer:Dim a0 As Integer:Dim b0 As Integer
          Dim n As Integer
          Dim a1 As Single:Dim b1 As Single:Dim a01 As Single:Dim b01 As Single
          Dim E11 As Single:Dim E12 As Single:Dim E21 As Single:Dim E22 As Single
          Dim c1 As Single:Dim c2 As Single:Dim c3 As Single:Dim c4 As Single
          Dim x As Single
          a=InputBox(請輸入A事件效果1數(shù)字a=?)
          Cells(1,1).Value=A事件效果1數(shù)a
          Cells(2,1).Value=a
          b=InputBox(請輸入B事件效果1數(shù)字b=?)
          Cells(1,2).Value=B事件效果1數(shù)字b
          Cells(2,2).Value=b
          a0=InputBox(請輸入A事件效果2數(shù)字a0=?)
          Cells(1,3).Value=A事件效果2數(shù)a0
          Cells(2,3).Value=a0
          b0=InputBox(請輸入B事件效果2數(shù)字b0=?)
          Cells(1,4).Value=B事件效果2數(shù)字b0
          Cells(2,4).Value=b0
          n=a0+b0+a+b
          aa0=a+a0:bb0=b+b0:ab=a+b:a0b0=a0+b0
          E11=aa0*ab/n:E12=aa0*a0b0/n
          E21=bb0*ab/n:E22=bb0*a0b0/n
          c1=Abs(a-E11):c2=Abs(a0-E12):c3=Abs(b-E21):c4=Abs(b0-E22)
          x=((c1-0.5)^2)/E11+((c2-0.5)^2)/E12+((c3-0.5) ^2)/E21+((c4-0.5)^2)/E22
          Cells(1,5).Value=卡平方值x2
          Cells(2,5).Value=x
          End Sub
          1.2.2 2×c表的獨立性測驗
          Private Sub CommandButton1_Click()
          Dim C As Integer :Dim R As Single :Dim d As Single:Dim h As Single
          Dim x As Single
          Dim a0(0 To 99) As Single :Dim b0(0 To 99) As Single:Dim g(0 To 99) As Single
          C=InputBox(請輸入數(shù)據(jù)組數(shù)C=?)
          Cells(1,2).Value=(數(shù)據(jù)組數(shù)C)
          Cells(2,2).Value=C
          Cells(1,3).Value=A事件數(shù)值a0
          Cells(1,4).Value=B事件數(shù)值b0
          Cells(1,5).Value=a(i)+b(i)
          R1=0]:R2=0
          For i=1 To C
          a0(i)=InputBox(請輸入A事件數(shù)值的第( i ) 個樣本a0( i )=?)
          Cells(1+i,3).Value=a0(i)
          b0(i)=InputBox(請輸入B事件數(shù)值的第( i ) 個樣本b0( i )=?)
          Cells(1+i,4).Value=b0(i)
          g(i)=a0(i)+b0(i)
          Cells(1+i,5).Value=g(i)
          R1=R1+a0(i):R2=R2+b0(i)
          Next i
          R=R1+R2
          Cells(1,6).Value=A事件數(shù)值之和,R1
          Cells(1,7).Value=B事件數(shù)值之和,R2
          Cells(1,8).Value=AB事件所有數(shù)值之和,R
          Cells(2,6).Value=R1:Cells(2,7).Value=R2:Cells (2,8).Value=R
          h=0
          For i=1 To C
          h=h+a0(i)^2/g(i)
          Next i
          x=(h - R1 ^ 2 / R) * R ^ 2 / R1 / R2
          Cells(1,9).Value= 卡平方值x2
          Cells(2,9).Value=x
          End Sub


          上一頁 1 2 下一頁

          關(guān)鍵詞: Excel VBA 編寫 測算

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();