sas로 단일품목 판매 프로그램 짜기

 
  저는 통계를 부전공으로 하고 있습니다. 그래서 통계 프로그램을 다루는 기회가 꽤 생기죠. 그래서 저는 일단 통계 패키지를 이용해서 처음으로 프로그램을 짜게 되었습니다. 물론 sas를 이용해서 이죠. 바로 단일품목 판매 프로그램인데요. 그것이 뭔지 지금부터 차근차근 짜 보도록 하겠습니다.

SAS 단일 품목 판매


  상황은 이렇습니다. 신문팔이 소년이 신문 한부를 150원에 사서 300원에 팔고 못 판 것은 1 부당 100원씩 환불받습니다. 그런데 매일 몇 부를 팔아야 최대 이익을 얻을지 고민합니다. 그래서 100일 동안 매일의 판매 부수를 조사했습니다. 그것을 확률분포표로 나타내었죠. 어떻게 조사했냐 하면 1000일 동안 신문을 팔아 봤더니 판매부수에 따른 확률을 구했습니다. 여기서 판매부수 10 부수가 0.04라는 말은 1000일 중에 40일을 10부를 팔았다는 것이죠.

단일 품목 판매 전체적인 틀

 

전체적인 틀입니다. 이렇게 짜고 달리는 그림 런을 누르면 되졍..ㅎㅎ proc print 밑에칸에 VAR BUY SUM_PROFIT; 엔터치고 RUN;이 빠졌네요.. 어쩠던 그것만 쳐 주시면 됩니다. ㅎㅎ 빠뜨려서 죄송합니다. 집엔 sas가 없어서.. 이긍 밑에 집어넣으려고 해도 안되네요.. 그럼 하나하나 배워보도록 하죠..

난수 생성


  처음부터 가겠습니다. DATA는 이 데이터의 이름이죠 newspaper라고 지었습니다. call streaminit(12345)는 바로 임의의 난수를 생성하라는 것인데요. 이게 없으면 실행을 할 때마다 다른 값이 나옵니다. 그다음에 do는 하라는 거죠. 사는 것 위에서 10부부터 90부까지 10부씩이니까요. 그다음에 SUM_PROFIT은 솔직히 잘 모르겠네요. ㅠㅠ 이거 나중에 아시는 분은 답글 좀 달아주세요..ㅎㅎ 그다음에 날짜를 1부터 1000까지 1씩 하라는 것이고. 확률분포는 uniform 즉 균일하게 하라는 뜻인데요.

if 문


  이제 if 문을 쓰셔야 할 차례입니다. U <0.04일 때 산 것이 10부보다 크면 150*10에다가 50*(BUY-10)인데요. 그니까 150부를 10개를 팔았으니 1500원이고 환불을 100원 받으니 결국 50원 손해여서 산 것에다가 10부를 빼면 되잖아요. 그렇게 해서 100부까지 다 이렇게 짜시면 됩니다. 저도 교수님한테 듣는걸 그냥 고대로 적는 것이라서 자세히 알려 드릴 수가 없네요..ㅠㅠ 죄송해요..ㅠ

마무리


  그다음에 end;는 끝내는 것이고 output을 만들지 않으면 제일 마지막 것만 즉 90에서 100까지만 나오는 거예요..ㅎㅎ 그리고 run;치고 변수를 출력하려면 proc print를 해야 된다네요.. 에구 어려워라..ㅎㅎ var은 variance의 약자 변수를 buy sum_profit;라네요. 이윤을 더하라는 것 같습니다. 그리고 밑에 VAR BUY SUM_PROFIT; 엔터치고 RUN; 을 쳐주면 됩니다.

결론 매일 60부씩 팔 때 최대이윤


자 런을 해 봤습니다. 그러면 newspaper라는 것이 있어요 그걸 클릭하면 위에 분석표가 나옵니다. sum_profit을 보시면 매일 60부씩 팔 때 이윤이 최대로 많네요.ㅎㅎ

  이궁 하나하나 하기가 솔직히 너무 힘듭니다. 저도 이제 막 sas를 배우는 사람이라서 솔직히 너무 어렵네요. 그래도 열심히 해서 통계를 꼭 마스터하고 싶습니다. 꼭 해서 기업에 들어갈 때는 정말 잘 다루었으면 좋겠네요. 제 복습노트 정리용이라 좀 어려울 수 있겠지만.. 잘 이해하시길 바라면서 오늘은 여기서 마치도록 하겠습니다.

댓글

Designed by JB FACTORY