본문 바로가기
스터디 열기

Gemini로 가격과 수요 분석하기

1. Gemini로 가격과 수요 분석하기

5장 2절 끝에 예측을 하나 적어 두었습니다. "가격이 비싼 상품일수록 덜 팔릴까?" 여기서는 orders.csv로 그 예측이 맞았는지 직접 확인합니다. 상품별 가격과 판매량을 점으로 찍어 보고, 관계의 세기를 숫자로 재고, 마지막에는 그 숫자를 한 번 더 의심해 봅니다.

1.1 가격과 판매량을 점으로 찍어 보기

Colab에 orders.csv를 올리고 Gemini에게 요청합니다.

상품별 단가와 총 판매수량을 산점도로 그려줘. 가격이 높을수록 덜 팔리는지 보고 싶어

가로축이 단가, 세로축이 총 판매수량인 그래프에 상품 열여섯 개가 점으로 찍힙니다. 왼쪽 위에 머그컵(12,000원, 644개)이, 오른쪽 아래에 스마트워치(200,000원, 114개)가 자리 잡고, 나머지 점들은 그 사이에서 오른쪽으로 갈수록 내려가는 모양을 그립니다. 점들이 우하향하면 "비쌀수록 덜 팔린다"는 관계가 보이는 것입니다.

그래프 뒤에 있는 숫자를 표로 보면 이렇습니다.

상품명단가(원)총 판매수량(개)카테고리
머그컵12,000644홈리빙
티셔츠15,000491패션
커피원두18,000463식품
립스틱20,000423뷰티
차세트22,000448식품
견과류세트25,000372식품
디퓨저28,000381홈리빙
보조배터리30,000325디지털
담요35,000329홈리빙
청바지45,000229패션
무선이어폰50,000216디지털
원피스55,000217패션
스킨케어세트60,000204뷰티
운동화80,000186패션
향수90,000203뷰티
스마트워치200,000114디지털

여기서 쓴 그래프가 산점도(scatter plot)입니다. 두 숫자 변수의 관계를 점으로 찍어 보는 그래프로, 두 변수가 관련이 있는지 눈으로 확인하는 가장 기본적인 도구입니다. 읽는 법은 두 가지만 알면 됩니다.

  • 우하향: 하나가 크면 다른 하나는 작습니다. 반비례 관계이고, 우리 데이터가 이 모양입니다.
  • 우상향: 같이 커집니다. 정비례 관계입니다.

1.2 상관계수로 관계를 숫자로 재기

눈으로 본 관계를 숫자로 바꿔 봅니다.

단가와 판매수량의 상관계수를 계산해줘

약 -0.74가 나옵니다. 상관계수는 두 변수가 함께 움직이는 방향과 세기를 -1부터 +1 사이의 숫자로 나타낸 값입니다.

상관계수해석
-1에 가까움강한 반비례, 하나가 오르면 다른 하나는 확실히 내림
0에 가까움관계 없음
+1에 가까움강한 정비례, 같이 오르고 같이 내림

우리 데이터의 -0.74는 "비쌀수록 덜 팔린다"는 꽤 강한 반비례입니다. 앞에서 적어 둔 예측이 데이터로 확인되었습니다.

1.3 탄력성 추정하기

앞에서 배운 탄력성도 AI에게 시킬 수 있습니다.

log(수량)을 log(단가)로 회귀해서 가격 탄력성을 추정하고, 탄력적인지 비탄력적인지 해석해줘

탄력성 추정치가 약 -0.61로 나옵니다. 절댓값이 1보다 작으니 비탄력적으로 나옵니다. 여기서 회귀란 한 변수로 다른 변수를 설명하거나 예측하는 분석이고, 로그를 씌워 회귀하면 기울기가 곧 탄력성이 됩니다.

이 문장이 어렵게 들려도 회귀의 수학까지 알 필요는 없습니다. AI가 계산해 준 결과 숫자를 앞에서 본 기준(절댓값 1과 비교)으로 해석하면 됩니다. 이것이 바이브 분석입니다. 사람이 맡는 것은 계산이 아니라 해석입니다.

16개 상품의 단가와 판매수량을 로그 눈금에 찍으면 비쌀수록 덜 팔리는 우하향이 뚜렷하다.

1.1의 산점도를 두 축 모두 로그 눈금으로 다시 그리고, 1.3의 회귀 직선을 점선으로 얹은 그림입니다. 로그 눈금은 1만 → 2만 → 5만 → 10만처럼 몇 배로 늘어나는지를 같은 간격으로 보여 주는 눈금입니다. 보통 눈금으로 그리면 스마트워치 하나만 오른쪽 끝에 멀리 떨어지고 나머지 열다섯 개가 왼쪽에 몰려 모양을 읽기 어렵습니다. 로그 눈금에서는 점들이 점선 하나를 따라 고르게 늘어서고, 그 점선의 기울기 -0.61이 곧 탄력성 추정치입니다. "가격이 1% 오르면 판매량이 약 0.61% 줄어드는 경향"으로 읽습니다. 점선에서 위로 떨어진 향수와 차세트는 같은 가격대보다 더 팔렸고, 아래로 가장 많이 떨어진 청바지와 무선이어폰은 덜 팔렸습니다. 다만 이 그림은 머그컵과 스마트워치처럼 서로 다른 상품을 한 줄에 세운 것입니다. 그 한계는 바로 이어서 다룹니다.

1.4 이 숫자의 한계

여기서 멈추면 반쪽짜리 분석입니다. 5장 2절 끝에서 배운 대로, 숫자가 나왔을 때 한 번 더 의심해야 합니다. 우리가 방금 한 일을 돌아보겠습니다. 우리는 서로 다른 상품을 나란히 놓고 비교했습니다.

구분머그컵스마트워치
가격12,000원200,000원
종류생활용품전자기기
구매 빈도자주가끔

스마트워치가 머그컵보다 덜 팔리는 것이 "비싸서"만일까요? 스마트워치는 원래 자주 사는 물건이 아닙니다. 머그컵은 몇 개씩 사도 이상하지 않지만 스마트워치를 1년에 여섯 개 사는 사람은 없습니다. 가격 말고도 상품의 종류, 구매 빈도, 필요성 같은 여러 요인이 한꺼번에 섞여 있습니다.

진짜 가격 탄력성은 한 상품의 가격을 바꿔 보고 그 상품의 수요가 어떻게 변하는지 보는 것입니다. 다른 조건은 그대로 두고 가격만 움직여야 가격의 효과가 분리됩니다. 우리 데이터에는 같은 상품의 가격을 바꾼 기록이 없으니, -0.61이라는 숫자는 "비싼 상품군이 덜 팔리는 경향"이지 "이 상품의 가격을 내리면 이만큼 더 팔린다"는 보장이 아닙니다. 앞에서 본 상관 ≠ 인과가 그대로 적용되는 장면입니다.

이 의심을 AI에게 직접 물어보는 것도 좋은 습관입니다.

이 분석은 서로 다른 상품을 비교한 거지? 가격 외에 다른 요인은 없을까?

Gemini는 상품 종류, 구매 주기, 카테고리 차이 같은 교란 요인을 지적해 줄 것입니다. 좋은 분석가는 숫자가 나와도 한 번 더 의심하고, AI에게 "이 분석의 한계가 뭐야?"라고 묻는 것을 부끄러워하지 않습니다.

숫자가 나왔다고 분석이 끝난 것이 아닙니다. 상관계수 -0.74와 탄력성 -0.61은 사실이지만, 그것이 "가격이 원인"이라는 뜻은 아닙니다. 7장의 의사결정에서 이 한계가 그대로 리스크가 됩니다.

1.5 직접 해보기

  1. 카테고리별 평균 단가와 총 판매수량의 관계도 산점도로 그려 달라고 요청하고, 상품별 산점도와 모양이 같은지 비교해 봅니다.
  2. Gemini에게 "이 관계가 진짜 가격 때문인지 확인하려면 어떤 데이터가 더 필요한지 알려줘"라고 물어보고, 답을 자기 말로 정리해 봅니다.
  3. 5장 2절에서 적어 둔 탄력적/비탄력적 상품 예측과 실제 판매량 표를 비교해 봅니다. 예상과 다른 상품이 있다면 이유를 생각해 봅니다.
  4. 산점도에서 점들이 우하향이면 두 변수는 어떤 관계인지, 상관계수 -0.74가 의미하는 바는 무엇인지 한 문장씩 설명해 봅니다.
  5. 이 분석을 '진짜 가격 탄력성'이라 부르기 어려운 이유를 머그컵과 스마트워치의 예로 설명해 봅니다.

마지막 수정