我試圖獲取某個變量列表的模式。當模式不唯一時,我想返回模式的平均值,以便子查詢獲取模式(在較大的查詢中)不返回兩個值。但是,如果模式是唯一的,則由於某種原因,平均查詢返回缺失值。SAS:單個觀察的AVG()
我有下面的示例數據:
data have;
input betprice;
datalines;
1.05
1.05
1.05
6
run;
PROC PRINT; RUN;
proc sql;
select avg(betprice)
from
(select betprice, count(*) as count_betprice from have group by betprice)
having count_betprice = max(count_betprice);
quit;
如果我添加一些更多的觀測到betprice場,這樣的模式不是唯一的,我得到返回的平均值。
data have;
input betprice;
datalines;
1.05
1.05
1.05
6
6
6
run;
PROC PRINT; RUN;
如何更改此查詢,以便始終返回兩個最常見值的模式或平均值。
感謝您的任何幫助。
爲什麼你想要的平均模式?從統計角度來看,這根本不是一個有趣的術語。 MODE真正有用的唯一原因是看到分配。如果您採用均值模式,則MODE = 4不會告訴您是單項模式爲4的二項分佈,還是3和4和5全部相等的高原,或者實際上是1和7的偏斜。 – Joe
我認爲這很有趣!我想根據他們在前10次或20次投注中選擇的投注分類進行分類。 Betprice不是一個連續變量,只有四個離散值:6,2,1.83和1.05。我如何根據他們的前10次投注對玩家進行排名?如果我取平均值,它不是很好,因爲值6距離值1.05太遠了。如果一名球員在1.05時有7次投注,在6次時有三次投注,我認爲他應該被評爲1.05。如果我拿平均水平,差不多是3:平均水平高於以2的價格進行10次投注的人。 – user2146441
雖然我不認爲模式本身的意思很有趣。如果它是一個平行線,那麼你對它的處理取決於你的分析,但我不明白這個平均值是如何有用的?既然你有四個離散值,我想很明顯他們的「模式均值」是一對特定對的平均值/模式,但是有人投注1.05和6的頻率類似於頻繁投注3.55的人(這是可能的)嗎?看起來不像我。 – Joe