我试图获取某个变量列表的模式。当模式不唯一时,我想返回模式的平均值,以便子查询获取模式(在较大的查询中)不返回两个值。但是,如果模式是唯一的,则由于某种原因,平均查询返回缺失值。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