Trạng thái khởi động

Nếu bạn chỉ muốn khởi động kết quả của một lệnh Stata, tất cả những gì bạn cần là hiểu biết cơ bản về Stata. Tuy nhiên, nếu bạn cần tính toán thứ gì đó khác và sau đó khởi động nó, bạn sẽ cần viết một chương trình Stata chính thức để làm điều đó. Nếu bạn không quen với việc viết các chương trình Stata (không giống với các tệp do), bạn sẽ muốn xem Công cụ lập trình Stata, đặc biệt là

Kết quả Bootstrapping từ các lệnh Stata

Nếu có một lệnh Stata duy nhất tính toán kết quả bạn cần, bạn chỉ cần yêu cầu Stata khởi động lại kết quả của lệnh đó. Ví dụ: tải dữ liệu ô tô đi kèm với Stata và cân nhắc tìm giá trị trung bình của biến mpg . Lệnh summarize ( sum ) sẽ thực hiện chính xác những gì bạn muốn.

hệ thống tự động
tổng mpg

Nhưng làm thế nào để lệnh bootstrap tìm thấy số mà nó cần trong tất cả kết quả đó? .

Vectơ hồi quy

Ngoài kết quả bạn nhìn thấy trên màn hình hoặc trong nhật ký của mình, tất cả các lệnh Stata đều lặng lẽ đưa kết quả của chúng vào một vectơ trả về. Bạn có thể tham khảo vectơ này trong các lệnh tiếp theo hoặc trong trường hợp bootstrap bạn có thể cho nó biết phần nào của vectơ trả về mà bạn quan tâm.

Để xem các bảng hiện tại của vectơ trả về, hãy nhập

danh sách trả lại

Lệnh sum là lệnh cơ bản (ngược lại với lệnh ước lượng) nên vectơ trả về của nó được gọi là r(). Nhìn qua danh sách, bạn sẽ thấy rằng r(mean) là số bạn muốn. Bây giờ bạn đã sẵn sàng để thực sự thực hiện bootstrap.

Cú pháp lệnh bootstrap

Cú pháp cơ bản cho lệnh bootstrap rất đơn giản

bootstrap var =r( kết quả ). lệnh

Đây var chỉ đơn giản là những gì bạn muốn gọi số lượng bạn đang khởi động. Bạn có thể chọn bất kỳ tên nào bạn thích miễn là nó đáp ứng các quy tắc thông thường cho tên biến Stata. Trong trường hợp của chúng tôi, meanMPG sẽ phù hợp.

r( kết quả ) yêu cầu lệnh bootstrap tìm kiếm trong r() vector for the particular result you're interested in. We're interested in r(mean) .

Cuối cùng lệnh nên được thay thế bằng lệnh thực tế tính toán kết quả bạn muốn. Trong trường hợp của chúng tôi, đó là sum mpg .

Kết hợp tất cả những điều này lại với nhau, lệnh để khởi động giá trị trung bình của biến mpg chỉ đơn giản là.

bootstrap meanMPG=r(trung bình). tổng mpg

Khi bạn chạy nó, bạn sẽ nhận được một ghi chú giải thích rằng bootstrap không thể loại trừ các giá trị bị thiếu và như vậy trừ khi bạn đang làm việc với một lệnh ước tính (sớm nói thêm về chúng) nhưng đó sẽ không phải là vấn đề trong trường hợp này. Kết quả bạn muốn sẽ theo sau

Nếu bạn muốn bootstrap hai số lượng khác nhau thì sao?

bootstrap meanMPG=r(mean) maxMPG=r(max). tổng mpg

Các lệnh ước tính khởi động

Các lệnh ước tính hơi khác ở chỗ chúng lưu trữ kết quả của chúng trong vectơ e() thay vì r() vector and must be listed by typing ereturn list rather than return list. To see this, type the following:

reg mpg trọng lượng nước ngoài
danh sách trở lại

Một cảnh báo. bootstrap là một lệnh ước tính, vì vậy sau khi chạy nó, vectơ e() sẽ chứa kết quả của bootstrap, không phải kết quả của lệnh bạn đang khởi động.

Giả sử bạn muốn khởi động thống kê "Trọng lượng trung bình của những chiếc ô tô đó trong phần tư hàng đầu cho mpg. "Tính toán thống kê không khó để làm

Stata có tính năng thuận tiện là có lệnh tiền tố bootstrap có thể được kết hợp liền mạch với các lệnh ước tính (e. g. , hồi quy logistic hoặc hồi quy OLS) và các lệnh không ước tính (e. g. , tóm tắt). Lệnh bootstrap tự động hóa quá trình bootstrap cho thống kê quan tâm và tính toán các biện pháp tóm tắt có liên quan (i. e. , độ lệch và khoảng tin cậy). Tuy nhiên, thuận tiện như lệnh này, có những trường hợp khi số liệu thống kê bạn muốn bootstrap không hoạt động trong lệnh. Đối với những trường hợp như vậy, bạn cần viết chương trình bootstrap của riêng mình

Câu hỏi thường gặp về Stata này cho biết cách viết chương trình bootstrap của riêng bạn. Đối với ví dụ đầu tiên, chúng tôi khớp kết quả từ lệnh bootstrap với kết quả từ việc viết chương trình bootstrap. Lý tưởng nhất là điều này sẽ tiết lộ việc viết chương trình bootstrap của riêng bạn đơn giản như thế nào. Tiếp theo là một ví dụ trong đó số liệu thống kê bạn muốn bootstrap không hoạt động trong lệnh bootstrap và do đó yêu cầu bạn phải viết chương trình bootstrap của riêng mình

ví dụ 1

Ví dụ này chúng tôi sử dụng lệnh bootstrap và sao chép kết quả bằng cách viết chương trình bootstrap của riêng mình. Chúng tôi sử dụng bộ dữ liệu High School and Beyond mà từ đó chúng tôi sẽ hồi quy giới tính (nữ), điểm toán (toán), điểm viết (viết) và tình trạng kinh tế xã hội (ses) về điểm đọc (đọc) và khắc phục ý nghĩa gốc . Đối với bootstrap, chúng tôi thực hiện 100 lần lặp lại và chỉ định hạt giống để chúng tôi có thể sao chép kết quả

use http://statistics.ats.ucla.edu/stat/stata/notes/hsb2, clear
(highschool and beyond (200 cases))

regress read female math write ses

      Source |       SS       df       MS              Number of obs =     200
-------------+------------------------------           F(  4,   195) =   52.58
       Model |  10854.9318     4  2713.73294           Prob > F      =  0.0000
    Residual |  10064.4882   195  51.6127602           R-squared     =  0.5189
-------------+------------------------------           Adj R-squared =  0.5090
       Total |    20919.42   199  105.122714           Root MSE      =  7.1842

------------------------------------------------------------------------------
        read |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      female |  -2.450171   1.101524    -2.22   0.027    -4.622602   -.2777409
        math |   .4565641   .0721114     6.33   0.000     .3143457    .5987825
       write |   .3793564   .0732728     5.18   0.000     .2348475    .5238653
         ses |   1.301982   .7400719     1.76   0.080    -.1575905    2.761555
       _cons |   6.833418   3.279371     2.08   0.038     .3658287    13.30101
------------------------------------------------------------------------------

bootstrap rmse=e(rmse), reps(100) seed(12345): regress read female math write ses
(running regress on estimation sample)

Bootstrap replications (100)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5 
.................................................    50
.................................................   100

Linear regression                               Number of obs      =       200
                                                Replications       =       100

      command:  regress read female math write ses
         rmse:  e(rmse)

------------------------------------------------------------------------------
             |   Observed   Bootstrap                         Normal-based
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        rmse |   7.184202   .2594069    27.69   0.000     6.675774     7.69263
------------------------------------------------------------------------------

estat bootstrap, all

Linear regression                               Number of obs      =       200
                                                Replications       =       100

      command:  regress read female math write ses
         rmse:  e(rmse)

------------------------------------------------------------------------------
             |    Observed               Bootstrap
             |       Coef.       Bias    Std. Err.  [95% Conf. Interval]
-------------+----------------------------------------------------------------
        rmse |   7.1842021  -.1006956   .25940687    6.675774    7.69263   (N)
             |                                       6.559784   7.636096   (P)
             |                                       6.778425   7.741319  (BC)
------------------------------------------------------------------------------
(N)    normal confidence interval
(P)    percentile confidence interval
(BC)   bias-corrected confidence interval

Viết chương trình bootstrap của riêng chúng tôi cần bốn bước

  • Trong bước đầu tiên, chúng tôi có được các ước tính ban đầu và lưu trữ kết quả trong một ma trận, giả sử quan sát. Ngoài ra, chúng ta cũng phải lưu ý số lượng quan sát được sử dụng trong phân tích. Thông tin này sẽ được sử dụng khi chúng tôi tóm tắt kết quả bootstrap
  • Thứ hai, chúng tôi viết một chương trình mà chúng tôi sẽ gọi myboot để lấy mẫu dữ liệu thay thế và trả về thống kê quan tâm. Ở bước này, chúng ta bắt đầu bằng cách bảo toàn dữ liệu bằng lệnhserve, sau đó lấy mẫu bootstrap bằng bsample. bsample lấy mẫu dữ liệu trong bộ nhớ có thay thế, đây là yếu tố thiết yếu của bootstrap. Từ mẫu bootstrap, chúng tôi chạy mô hình hồi quy của mình và đưa ra thống kê quan tâm bằng lệnh return scalar. Lưu ý rằng khi chúng tôi xác định chương trình, chương trình xác định myboot, chúng tôi chỉ định tùy chọn rclass; . myboot kết thúc bằng lệnh khôi phục, trả dữ liệu về trạng thái ban đầu (trước mẫu khởi động)
  • Trong bước thứ ba, chúng tôi sử dụng lệnh mô phỏng tiền tố cùng với myboot, thu thập số liệu thống kê từ mẫu khởi động. Chúng tôi chỉ định hạt giống và số lần lặp lại ở bước này, trùng khớp với những lần lặp lại trong ví dụ trên
  • Cuối cùng, chúng tôi sử dụng lệnh bstat để tóm tắt kết quả. Chúng tôi bao gồm các ước tính ban đầu, được lưu trữ trong quan sát ma trận và kích thước mẫu với các tùy chọn stat( ) và n() tương ứng
use https://stats.idre.ucla.edu/stat/stata/notes3/hsb2, clear
(highschool and beyond (200 cases))

*Step 1
quietly regress read female math write ses
matrix observe = e(rmse)

*Step 2
capture program drop myboot
program define myboot, rclass
 preserve 
  bsample
  regress read female math write ses
  return scalar rmse = e(rmse)
 restore
end

*Step 3
simulate rmse=r(rmse), reps(100) seed(12345): myboot

      command:  myboot
         rmse:  r(rmse)

Simulations (100)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5 
.................................................    50
.................................................   100

*Step 4
bstat, stat(observe) n(200)

Bootstrap results                               Number of obs      =       200
                                                Replications       =       100

------------------------------------------------------------------------------
             |   Observed   Bootstrap                         Normal-based
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        rmse |   7.184202   .2594069    27.69   0.000     6.675774     7.69263
------------------------------------------------------------------------------

estat bootstrap, all

Bootstrap results                               Number of obs      =       200
                                                Replications       =       100

------------------------------------------------------------------------------
             |    Observed               Bootstrap
             |       Coef.       Bias    Std. Err.  [95% Conf. Interval]
-------------+----------------------------------------------------------------
        rmse |   7.1842021  -.1006956   .25940687    6.675774    7.69263   (N)
             |                                       6.559784   7.636096   (P)
             |                                       6.778425   7.741319  (BC)
------------------------------------------------------------------------------
(N)    normal confidence interval
(P)    percentile confidence interval
(BC)   bias-corrected confidence interval

Kết quả từ Bước 4 khớp với kết quả từ lệnh bootstrap trong ví dụ trên

ví dụ 2

Trong ví dụ này, chúng tôi viết một chương trình bootstrap trong đó lệnh bootstrap thông thường không phù hợp với thống kê mà chúng tôi muốn bootstrap. Lý do tại sao lệnh bootstrap không phù hợp với mọi tình huống là vì lệnh bootstrap yêu cầu một thống kê nằm ngoài lệnh “phân tích”. Để xem số liệu thống kê nào được cung cấp, hãy sử dụng lệnh ereturn list hoặc return list sau lệnh “analysis”. Sự khác biệt giữa ereturn list hay return list phụ thuộc vào lệnh “analysis” có phải là lệnh ước lượng hay không

Giả sử chúng ta muốn khởi động hệ số lạm phát phương sai (vif), yêu cầu chúng ta chạy hồi quy và sau đó estat vif. Trong tình huống như vậy, số liệu thống kê của bootstrap rơi ra từ lệnh ước tính bài đăng, lệnh này không thể lấy được từ hồi quy và do đó không được hỗ trợ bởi lệnh bootstrap. Do đó, chúng ta phải viết chương trình bootstrap của riêng mình để có được ước tính bootstrap của vif

Bootstrapping nghĩa là gì trong Stata?

bootstrap thực hiện ước tính bootstrap phi tham số của số liệu thống kê (hoặc biểu thức) đã chỉ định cho lệnh Stata hoặc chương trình do người dùng viết . Thống kê được khởi động bằng cách lấy mẫu lại dữ liệu trong bộ nhớ bằng cách thay thế.

Tại sao lại sử dụng bootstrap trong Stata?

bootstrap cho phép người dùng cung cấp một biểu thức là hàm của kết quả được lưu trữ của các lệnh hiện có hoặc bạn có thể viết chương trình để .

Bootstrapping trong hồi quy là gì?

Hồi quy. người mẫu. Bootstrapping là một cách tiếp cận phi tham số đối với suy luận thống kê thay thế cho tính toán . để biết các giả định phân phối truyền thống hơn và kết quả tiệm cận . 1 ưu đãi Bootstrapping.

Có bao nhiêu bản sao bootstrap là cần thiết cho Stata?

Hướng dẫn sử dụng Stata gợi ý rằng 50-200 lần lặp lại có thể đủ để ước tính sai số chuẩn theo một số giả định nhất định, tuy nhiên, tùy thuộc vào tình huống cụ thể, 1000 hoặc nhiều hơn replicates may be necessary to obtain good bootstrap estimates.