使用蒙特卡羅模擬計算功率,*1部分: 基礎知識

    功率和樣本大小的計算是科學研究計劃的重要組成部分??梢允褂肧tata的power命令來計算許多常用統(tǒng)計測試的功率和樣本大小需求。但對于較復雜的模型是沒有簡單公式的,如多層/縱向模型和結構方程模型(SEMs)。蒙特卡羅模擬是計算復雜模型的功率和樣本大小要求的一種方法,Stata提供了執(zhí)行此操作所需要的所有工具。甚至可以將模擬集成到Stata的power命令中,可以輕松地為一系列參數(shù)值創(chuàng)建自定義表格和圖形。


    比如,下面的自定義程序power simmixed模擬縱向模型的功率,假設參與者的數(shù)量(級別2)為100到500,每次增加100,每個參與者有5到6個觀察值(級別1)。power simmixed還創(chuàng)建了一個表(未顯示)和下圖來顯示模擬的結果。


    我的同事和我寫了一系列文章展示如何做到這一點。在今天的文章中,將介紹使用模擬計算功率和樣本大小要求所需的基本工具。在*二篇文章中,將展示如何將模擬集成到Stata的power命令中。 然后,我們將展示線性回歸,邏輯回歸,多級/縱向模型和結構方程模型的具體示例。

    基本思路

    統(tǒng)計功率是當零假設為假時拒絕零假設的概率。功率的計算是基于一組假設,例如樣本大小,alpha水平和特定的替代假設。例如,我們可能希望計算t檢驗的功率,假設零假設的樣本均值為70,替代假設為75,樣本大小為100,alpha水平為0.05。

    使用蒙特卡羅模擬計算功率的基本步驟是

    1. 生成假設替代假設為真(例如,均值=75)的數(shù)據(jù)集。

    2. 使用數(shù)據(jù)集測試零假設(例如,測試均值= 70)。

    3. 保存測試結果(例如,“拒絕”或“未拒絕”)。

    4. 多次重復步驟1-3(通常為1,000或更多)。

    零假設被拒絕的比例是我們對統(tǒng)計能力的估算。在上面的例子中,我們可能在1000次迭代中觀察到834次“拒絕”,這使我們的估算功率為0.834或83.4%。

    要執(zhí)行這些步驟,需要熟悉Stata的一些編程工具。以下是本文中介紹的主題列表。 如果您熟悉其中一些主題,可以單擊下面的鏈接跳到不熟悉的主題。

    主題列表

    標量和局部宏

    創(chuàng)建偽隨機數(shù)據(jù)集

    存儲模型輸出

    如何使用程序創(chuàng)建簡單程序

    如何使用程序創(chuàng)建有用的程序

    如何使用模擬多次運行程序

    用power onemean來檢查結果

    標量和局部宏

    標量和本地宏是模擬的重要工具,因為它們允許將數(shù)字臨時存儲在內(nèi)存中。例如,可以通過輸入將數(shù)字1存儲到名為i的標量中


    稍后通過輸入來引用此標量



    如果對標量和變量使用相同的名稱,Stata將會變得混亂。可以通過為標量使用一的名稱來避免這種混淆,或者可以使用scalar()函數(shù)來引用標量。


    還可以使用本地宏存儲數(shù)字。 例如,可以通過輸入將數(shù)字1存儲到名為i的本地宏。



    然后,可以通過在其**引用左單引號(通常位于“1”鍵左側的鍵盤上)并使用右單引號(通常位于Enter鍵左側)來引用本地宏。)。


    本地宏通常用于定義模擬的輸入?yún)?shù),許多Stata命令的結果存儲為標量。

    創(chuàng)建偽隨機數(shù)據(jù)集

    您還需要生成隨機數(shù)來進行模擬。在這里,將展示一些常用的隨機數(shù)函數(shù),并參考Stata Functions Reference Manual以獲取完整列表。首先清除Stata的內(nèi)存,將隨機數(shù)種子設置為15,然后使用set obs告訴Stata我們想要創(chuàng)建一個包含200個觀察值的數(shù)據(jù)集。


    可以使用runiform()函數(shù)在區(qū)間(0,1)內(nèi)生成均勻分布的隨機數(shù)。


    可以使用類似的runiformint(a,b)函數(shù)在區(qū)間[a,b]上生成均勻分布的隨機整數(shù)變量。例如,可以輸入以下命令,在區(qū)間[18,65]內(nèi)生成一個人的年齡的隨機值:


    可以使用rbinomial(n,p)函數(shù)生成二項式(n,p)隨機變量,其中n是試驗次數(shù),p是成功概率。例如,可以通過輸入以下命令為女性生成隨機指示器:



    還可以使用rnormal(m,s)函數(shù)從正常密度生成隨機值,其中均值等于m,標準差等于s。 例如,可以使用以下命令生成重量和高度的變量。在這里,*了72千克的平均值和15的標準偏差,以及170厘米的平均值和10的標準偏差。


    在這個例子中,我們獨立地生成了weight和height。但是像weight和height這樣的變量很可能是相關的,可以使用drawnorm來生成相關的變量。

    在下面的示例中,平均值存儲在矩陣m中,標準偏差存儲在矩陣s中,矩陣C中存儲變量之間的相關性。然后,可以將這些矩陣作為參數(shù)包含在drawingorm選項中以創(chuàng)建相關變量height和weight.。



    上述均值和標準差的估算值與我們的輸入?yún)?shù)相似,下面的估算相關系數(shù)為0.5049,接近我們在上面的相關矩陣中*的0.5的值。


    存儲模型輸出

    許多Stata命令將其結果存儲為標量,宏和矩陣。運行命令后,可以通過輸入return list查看存儲結果的列表。還可以在估算命令(如regress)后輸入ereturn list。

    在下面的例子中,我使用ttest命令來測試平均權重等于70的零假設。



    輸入return list顯示Stata存儲在內(nèi)存中的標量列表。


    上述均值和標準差的估算值與我們的輸入?yún)?shù)相似,下面的估算相關系數(shù)為0.5049,接近我們在上面的相關矩陣中*的0.5的值。



    存儲輸出模型

    許多Stata命令將其結果存儲為標量,宏和矩陣。運行命令后,可以通過輸入return list查看存儲結果的列表。還可以在估算命令(如regress)后鍵入ereturn list。

    在下面的示例中,我使用ttest命令來測試平均權重等于70的零假設。


    輸入return list會顯示Stata存儲在內(nèi)存中的標量列表。



    可以將這些標量中的任意一個存儲到另一個標量中。例如,可以通過輸入將存儲在r(p)中的雙面p值存儲到名為pvalue的標量中


    如何使用程序創(chuàng)建一個簡單的程序

    您將運行生成隨機數(shù)據(jù)的命令,并在運行模擬時多次測試零假設。還需要為模擬定義輸入?yún)?shù)并返回假設檢驗的結果。有效地完成這些任務的一種方法是使用program定義自己的Stata程序。下面的代碼塊定義了一個名為myprogram的程序,它接受輸入?yún)?shù)n(),顯示n的值,并返回n的值。


    讓我們逐行考慮這個代碼塊。

    **行是capture program drop myprogram。定義程序后,必須先使用program drop將程序從內(nèi)存中刪除,然后才能修改和重新定義程序。因為很可能在完成之前會多次修改此程序,所以在重新定義程序之前,它將節(jié)省運行program drop的時間。**次運行此代碼塊時不會定義程序,所以program drop將返回一個錯誤。在program drop之前輸入capture將捕獲此錯誤并允許代碼塊繼續(xù)運行。

    *二行是程序program myprogram, rclass。 開始定義程序myprogram。 定義程序后,可以輸入myprogram,Stata將在program和end之間運行所有命令。選項rclass告訴Stata我們想要使用return返回程序中的值。

    *三行,15.1版本告訴Stata希望使用Stata 15.1中編寫的功能來運行程序。 可以在Stata Programming Reference Manual中了解有關Stata版本控制的更多信息。

    *四行是syntax, n(integer)。 定義了程序的語法。該程序要求用戶輸入逗號,后跟n()的整數(shù)。n()的值存儲在名為n的本地宏中,可以將此本地宏稱為“n”。

    *五行顯示本地宏n的值。

    *六行是return scalar N = `n’。此行指示程序以名為N的標量形式返回n的值。
    最后一行是end。這告訴Stata你已經(jīng)完成了程序myprogram的定義。

    讓我們運行myprogram,看看它做了什么。


    為n()輸入值50,Stata顯示結果n = 50。
    可以輸入return list,并看到myprogram以標量r(N)的形式返回n的值。


    非常有用!

    如何使用程序創(chuàng)建有用的程序

    讓我們定義一個名為simttest的程序,它根據(jù)輸入?yún)?shù)生成一個隨機數(shù)據(jù)集,測試零假設,并返回我們的假設檢驗結果。 下面的代碼塊僅使用注釋來定義程序。


    現(xiàn)在,讓我們在下面的代碼塊中填寫詳細信息。


    syntax的定義包括一個必需參數(shù),n()和四個可選參數(shù),alpha(),m0(),ma(),和sd()。 可選參數(shù)包含在方括號中。所有輸入?yún)?shù)都包含對輸入值的限制。例如,n()必須是整數(shù),可選參數(shù)必須是實數(shù)。可選參數(shù)還包括一個默認值,如果用戶在輸入程序名稱時未*輸入?yún)?shù),則使用該值。例如,除非用戶*不同的值,否則將為m0分配值0。

    注意,在此示例中,n()是樣本大小,alpha()是alpha級別,m0()是假設零假設的平均值,ma()是假設備選假設的平均值,sd()是標準偏差。

    然后drawnorm使用輸入?yún)?shù)從均值為`ma’、標準差為`sd’的正態(tài)分布中生成一個觀測值為`n’的樣本。接下來,ttest測試樣本均值等于`m0′的原假設。

    可以通過輸入return scalar reject =(r(p)<`alpha')來返回假設檢驗的結果。 回想一下ttest將雙邊p值存儲在標量r(p)中。 當r(p)小于`alpha’*的alpha級別時,我們的程序使用標量拒絕返回值1,否則返回0。

    現(xiàn)在,可以輸入simttest和輸入?yún)?shù)來運行模擬。



    通過輸入return list,可以看到模擬的結果。



    如何使用模擬多次運行程序

    simttest程序將執(zhí)行模擬的一次迭代所需的所有操作。 接下來,需要一種方法來多次運行simttest并收集結果。下面的代碼塊顯示了如何使用simulate來完成這兩項任務。


    參數(shù)reject=r(reject)告訴simulate將r(reject)中返回的結果保存到名為reject的變量中。 選項reps(100)指示模擬運行程序100次。 選項seed(12345)設置隨機數(shù)種子,以便我們的結果可以重現(xiàn)。

    冒號之后是simttest以及我們模擬的輸入?yún)?shù)。 某些模擬需要很長時間才能運行,并且simulate會在結果窗口中顯示一個點,以便知道它仍在運行。下面的輸出顯示了我們的模擬結果。



    simulate將結果保存到變量reject,如果零假設的測試被拒絕則包含1,否則為0。


    可以使用summarize來計算reject的平均值,該平均值等于100次迭代中拒絕原假設的次數(shù)所占的比例。根據(jù)輸入?yún)?shù),該比例是對統(tǒng)計功效的估算!



    在這個例子中,比例等于0.91,這意味著當檢驗樣本平均值等于75的替代假設時,如果樣本平均值等于70,假設標準偏差為15且樣本量為100,可以期望91%的功率。

    用Power OneMean檢查結果

    可以使用power onemean檢查蒙特卡羅模擬的結果。 以下示例包含與我們的模擬相同的輸入?yún)?shù)。


    power onemean計算的功率為0.9100,這與我們的模擬估算的功率相同。因為模擬是隨機的,所有結果并不總是**的。改變隨機數(shù)種子或迭代次數(shù)可以稍微改變估算的功率。但結果應該很接近。

    總結

    在本文中,介紹了使用蒙特卡羅模擬計算統(tǒng)計功率和樣本大小需求所需的工具。 下一次,將向您展示如何使用Stata的power命令來運行模擬,以便可以輕松地為一系列輸入?yún)?shù)創(chuàng)建表格和圖形。




    北京天演融智軟件有限公司專注于pscad,gams,spsspro,stata,matlab,mathematica,nvivo等, 歡迎致電 18510103847

  • 詞條

    詞條說明

  • 平谷spss標準

    平谷SPSS標準在當今信息爆炸的時代,數(shù)據(jù)已經(jīng)成為各行各業(yè)決策和發(fā)展的重要依據(jù)。而在處理和分析這些數(shù)據(jù)時,SPSS(Statistical Package for the Social Sciences)作為一款的統(tǒng)計分析軟件,扮演著至關重要的角色。作為平谷SPSS標準的宣傳,我們將為您介紹SPSS的功能和特點,以及我們提供的服務與支持。SPSS是一款被廣泛應用于社會科學、醫(yī)學、商業(yè)等領域的統(tǒng)計軟

  • PRSIM數(shù)據(jù)格式轉換軟件介紹

    使用PSCAD仿真大型電力系統(tǒng)的情況產(chǎn)生了將第三方軟件數(shù)據(jù)導入PSCAD的需求。因此我們開發(fā)了PRSIM(Power System Importer),一個簡單易用的工具,花較少的時間和精力,將標準網(wǎng)絡數(shù)據(jù)導入PSCAD中。?通過自定義實現(xiàn)靈活性PRSIM嚴重依賴PSCAD的開放式架構理念,PRSIM界面使**用戶能夠靈活地設計適合他們需求的自定義模型庫。PSCAD的V4.6和V5主庫中

  • AlleleID 物種識別和分類鑒別的綜合軟件

    細菌鑒定的實驗設計AlleleID是一款旨在解決細菌鑒定、病原體檢測或物種鑒定的綜合性桌面工具。以CulsSTW多序列比對為**,AlleleID可以設計用于物種識別/交叉物種鑒定的基因芯片探針以及用于實時PCR的SYBR Green, TaqMan MGB, TaqMan探針, Molecular?Beacons以及實時PCR引物。AlleleID還提供了支持可變剪切片段檢測的微陣列實

  • ATLAS.ti 定性分析軟件

    ATLAS.ti是一個強大的用于定性分析文本、圖形、音頻和視頻數(shù)據(jù)的平臺。**的工具幫您安排、重新裝配和管理您的素材,到目前為止,還沒有一個系統(tǒng)的方法可以這么做。ATLAS.ti讓您專注于素材本身。不管您的領域是人類學、經(jīng)濟學、犯罪學還是醫(yī)學,ATLAS.ti都可以滿足您定性分析的需求。多種媒體類型ATLAS.ti提供**的媒體類型供您使用,無論是編碼數(shù)百個文件、音頻剪輯或照片,ATLAS.t

聯(lián)系方式 聯(lián)系我時,請告知來自八方資源網(wǎng)!

公司名: 北京天演融智軟件有限公司

聯(lián)系人: 王經(jīng)理

電 話: 4008104001

手 機: 18510103847

微 信: 18510103847

地 址: 北京海淀北京市海淀區(qū)上地東路35號院1號樓3層1-312-318、1-312-319

郵 編:

網(wǎng) 址: turntech8843.b2b168.com

八方資源網(wǎng)提醒您:
1、本信息由八方資源網(wǎng)用戶發(fā)布,八方資源網(wǎng)不介入任何交易過程,請自行甄別其真實性及合法性;
2、跟進信息之前,請仔細核驗對方資質(zhì),所有預付定金或付款至個人賬戶的行為,均存在詐騙風險,請?zhí)岣呔瑁?
    聯(lián)系方式

公司名: 北京天演融智軟件有限公司

聯(lián)系人: 王經(jīng)理

手 機: 18510103847

電 話: 4008104001

地 址: 北京海淀北京市海淀區(qū)上地東路35號院1號樓3層1-312-318、1-312-319

郵 編:

網(wǎng) 址: turntech8843.b2b168.com

    相關企業(yè)
    商家產(chǎn)品系列
  • 產(chǎn)品推薦
  • 資訊推薦
關于八方 | 八方幣 | 招商合作 | 網(wǎng)站地圖 | 免費注冊 | 一元廣告 | 友情鏈接 | 聯(lián)系我們 | 八方業(yè)務| 匯款方式 | 商務洽談室 | 投訴舉報
粵ICP備10089450號-8 - 經(jīng)營許可證編號:粵B2-20130562 軟件企業(yè)認定:深R-2013-2017 軟件產(chǎn)品登記:深DGY-2013-3594
著作權登記:2013SR134025
Copyright ? 2004 - 2025 b2b168.com All Rights Reserved