특정 변수 목록의 모드를 얻으려고합니다. 모드가 고유하지 않은 경우 모드의 평균을 반환하여 (더 큰 쿼리에서) 모드를 가져 오는 하위 쿼리가 두 값을 반환하지 않도록하고 싶습니다. 그러나 모드가 고유 한 경우 평균 쿼리는 어떤 이유로 든 누락 된 값을 반환합니다.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의 선택에 따라 선수들을 분류하고 싶다. Betprice는 연속 변수가 아니며 4 개의 이산 값, 즉 6, 2, 1.83 및 1.05 만 있습니다. 처음 10 베팅에 따라 플레이어를 어떻게 순위 매 깁니까? 평균을 취하면 값 6이 값 1.05에서 너무 멀기 때문에 좋지 않습니다. 플레이어가 1.05에서 7 개의 베팅을하고 6에서 3 개의 베팅을한다면 그는 1.05 명의 플레이어로 평가되어야한다고 말하고 싶습니다. 평균을 취하면 거의 3입니다. 2의 가격으로 10 베팅을하는 사람보다 평균이 더 높습니다. – user2146441
모드 자체의 평균은 재미 있다고 생각하지 않습니다. 그것이 넥타이라면, 당신이하는 일은 당신의 분석에 달려 있지만, 그 의미가 얼마나 유용한 지 이해할 수 없습니까? 4 개의 이산 값이 있기 때문에 "모드 평균"은 특정 쌍의 평균/모드이지만, 3.55를 자주 베팅 한 사람과 비슷하게 1.05와 6을 베팅하는 사람입니다 (가능 했습니까?). 나 한테는 그렇게 보이지 않아. – Joe