功率和樣本大小的計算是科學研究計劃的重要組成部分??梢允褂肧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)建表格和圖形。
詞條
詞條說明
平谷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)計軟
使用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是一款旨在解決細菌鑒定、病原體檢測或物種鑒定的綜合性桌面工具。以CulsSTW多序列比對為**,AlleleID可以設計用于物種識別/交叉物種鑒定的基因芯片探針以及用于實時PCR的SYBR Green, TaqMan MGB, TaqMan探針, Molecular?Beacons以及實時PCR引物。AlleleID還提供了支持可變剪切片段檢測的微陣列實
ATLAS.ti是一個強大的用于定性分析文本、圖形、音頻和視頻數(shù)據(jù)的平臺。**的工具幫您安排、重新裝配和管理您的素材,到目前為止,還沒有一個系統(tǒng)的方法可以這么做。ATLAS.ti讓您專注于素材本身。不管您的領域是人類學、經(jīng)濟學、犯罪學還是醫(yī)學,ATLAS.ti都可以滿足您定性分析的需求。多種媒體類型ATLAS.ti提供**的媒體類型供您使用,無論是編碼數(shù)百個文件、音頻剪輯或照片,ATLAS.t
公司名: 北京天演融智軟件有限公司
聯(lián)系人: 王經(jīng)理
電 話: 4008104001
手 機: 18510103847
微 信: 18510103847
地 址: 北京海淀北京市海淀區(qū)上地東路35號院1號樓3層1-312-318、1-312-319
郵 編:
網(wǎng) 址: turntech8843.b2b168.com
公司名: 北京天演融智軟件有限公司
聯(lián)系人: 王經(jīng)理
手 機: 18510103847
電 話: 4008104001
地 址: 北京海淀北京市海淀區(qū)上地東路35號院1號樓3層1-312-318、1-312-319
郵 編:
網(wǎng) 址: turntech8843.b2b168.com