2017-04-07 51 views
0

我有一個數據集(在Excel)火車和測試集。我有一個隨機分裂我的Excel數據集的方法(使用=RAND()函數),但有沒有一種方法(在分裂階段),以確保樣本的分佈是均勻的(除了保持隨機分裂並測試分佈,直到它變得可以接受)?Excel中 - 如何將數據分割成我要導入SAS進行一些模擬的是平均分佈

否則,如果這是最好的SAS執行,什麼是檢驗樣本的隨機性最有效的方法?

數據集包含35個變量,二進制,連續變量和分類變量的混合物。

+2

更多信息請參閱?數據?例子?在29個問題上,你已經在這裏足夠長的時間知道我們需要更多的努力在我們的努力即將到來之前 – CallumDA

+1

我建議閱讀'proc surveyselect',然後回到這裏,如果得到具體問題一個問題 – Longfish

回答

2

在SAS,你可以使用proc surveyselect做到這一點。

proc surveyselect data=sashelp.cars out=cars_out outall samprate=0.7; 
run; 

data train test; 
    set cars_out; 
    if selected then output test; 
    else output train; 
run; 

如果有一個特定的變量[S]要確保訓練和測試集上的平衡,你可以使用這取決於你在談論什麼樣的事情stratacontrolcontrol將簡單地通過控制變量對控制變量進行近似嘗試(它通過控制變量進行排序,然後每隔3秒或者其他值進行抽取,這樣就可以得到一種近似的平衡;如果你有2個控制變量, Asc。然後在內部進行描述等,但是這降低了隨機性)。

如果使用strata,它保證你的地層內的採樣率 - 所以,如果你這樣做:

proc sort data=sashelp.cars out=cars; 
    by origin; 
run; 


proc surveyselect data=cars out=cars_out outall samprate=0.7; 
strata origin; 
run; 

(和最終分割數據的步驟是一樣的),那麼你會得到70%每個單獨的原點被拉下來(當然,這最終會佔總數的70%)。

你要做什麼取決於你在乎的是什麼。你做這件事情越多,它的平衡性就越差else,所以要謹慎;它可能是一個簡單的隨機樣本是最好的,尤其是如果你有足夠好的N.

如果你沒有足夠的N,那麼你可以使用引導技術,這意味着你從70%的樣本中抽取一個樣本進行替換,並且可能會有100個樣本,每個樣本的N值都比原來的要高。然後,你做了你的測試或者每個樣品選擇的任何東西,這些結果的變化告訴你你是如何做的,即使你的N不足以一次完成。

+0

非常感謝這一點,真的很感謝詳細的解釋,我會玩兩種方法,看看這會如何影響結果。我在完整的數據集中只有不到30萬條記錄,所以不需要擔心引導。 – Jon295087

1

這個答案無關使用Excel,但抽樣策略。

首先,我們必須建立一個標準樣品的測量的是「足夠接近」完整的數據集。

說,我們感興趣的平均值和標準偏差和完整的​​人口在列A

  1. 我們計算的均值和完整的數據集的標準偏差一組10,000個值的。
  2. 設計一個「足夠接近」的標準爲每個度量
  3. 拾取,比方說,500個樣品
  4. 計算樣品的措施。
  5. 如果措施是「足夠接近」我們都做了,否則選擇另一個500

我們需要小心的是,標準是不是太緊;否則我們可能永遠循環。

相關問題