데이터사이언스 분야는 빠르게 발전하고 있으며, 고품질 데이터셋은 학습과 연구에 필수적이다. 그러나 실제 데이터 수집은 비용과 접근성에서 제약이 크다. 이를 해결하고 효과적인 교육을 위해, 딸기의 상품 가치를 나타내는 합성 데이터셋을 생성하였다. 이 데이터셋은 비용 효율적이고 접근이 용이하며, 개인정보 보호 부담이 없다.
두 가지 가상 품종(‘설’, ‘아키’)의 출하월, 성숙일 수, 당도, 과중, 숙성 후 당도 데이터를 12월~4월 기간 동안 총 10,000건 제공한다. 출하월의 기후는 성숙일 수에, 성숙일 수는 당도와 과중에 영향을 미친다. 이를 분석하면 시기별 상품가치의 변화를 직관적으로 이해할 수 있다.
학습자는 본 데이터셋으로 대응표본·독립표본 t검정, 일원분산분석, 상관분석, 단순선형회귀, 교차분석 등 다양한 통계기법을 실습하고 유의확률을 계산할 수 있다. 데이터는 Google Sheets로 제공되어 인터넷만으로 활용 가능하다.
본 연구는 상품가치 평가를 위한 결과변수를 중심으로, 그 원인이 되는 변수를 찾는 능력을 배양하는 실습 루틴 개발을 목적으로 가상 딸기 데이터셋을 생성하였다. 데이터사이언스 학습과 연구에는 고품질 데이터셋이 필수적이나, 실제 데이터 수집은 비용·접근성·개인정보 보호 등 다양한 제약이 따른다[2–4]. 특히 실제 데이터는 잡음과 불규칙성이 커 초보 학습자에게 학습 장벽이 될 수 있다.
이를 해결하기 위해, 본 연구에서는 정규분포 기반의 합성 딸기 상품 가치 데이터를 생성하였다. 확률분포 시뮬레이션을 통해 실제 데이터의 복잡성과 변동성을 유지하면서도 비용 효율적이고 접근이 용이한 학습 자원을 제공하였다[5]. 합성 데이터는 개인정보 문제가 없고, 통제된 환경에서 통계 기법 학습에 집중할 수 있다.
소비자는 과일 선택 시 당도를 중요한 기준으로 삼으며[6], 본 데이터셋은 당도와 그 관련 변수의 관계를 분석할 수 있도록 설계되었다. 학습자는 이를 활용해 대응표본·독립표본 t검정, 일원분산분석, 상관분석, 단순선형회귀, 교차분석 등을 실습하고, 정규·t·F·카이제곱 분포의 이해를 높일 수 있다[7,8].
가상의 두 품종(‘설’, ‘아키’)은 12월~4월 출하 데이터를 포함하며, 출하월별 성숙일 수에 따라 당도와 과중이 변화하도록 설정하였다. 겨울철 딸기의 높은 당도와 단단한 과육 특성을 반영하여, 시기별 상품가치 변화에 대한 직관적 이해를 돕는다[9–11]. 데이터는 Google Sheets를 통해 제공되어, 별도 프로그램 없이 활용 가능하다.
본 데이터셋은 별도 프로그램 설치 없이 브라우저와 인터넷만으로 사용할 수 있도록 Google Sheets(Google LLC, USA)로 생성하였다. 가상의 딸기 품종 ‘설(Seol)’과 ‘아키(Aki)’를 12월부터 4월까지 5개월간 수확하는 것으로 설정하여, 품종별 5,000개씩 총 10,000개의 데이터를 만들었다. 성숙일 수는 당도와 과중의 주요 결정 변수로 하였으며, 평균 36일·표준편차 2일의 정규분포를 이산형으로 근사하여 12월~4월에 각각 40, 38, 36, 34, 32일로 설정하였다.
설의 당도는 성숙일 수×0.3에 평균 0·표준편차 0.25의 정규분포 오차를 더한 값, 과중은 성숙일 수×0.6에 같은 분산 구조의 오차를 더한 값으로 생성하였다. 아키는 당도가 성숙일 수×0.25 + N(0, 0.5²), 과중은 성숙일 수×0.5 + N(0, 0.25²)로 구성하였다. 설의 숙성 후 당도는 기존 당도+0.2+N(0, 0.1²), 아키는 기존 당도+0.1+N(0, 0.1²)로 생성하였다. 모든 오차항은 성숙일 수 또는 기존 당도와 독립적이다.
데이터 생성에 사용한 모델과 매개변수는 Table 1에 제시하였다.
Table 1. Model and parameters of the strawberry synthetic data
Variable | Generative model | Parameters of cultivar ($^1 x$) | |
---|---|---|---|
Seol | Aki | ||
성숙일 $(^2x)$ | $$^2X \sim N(\mu_{^2X}, \sigma_{^2X}^2) $$
여기서, $^2X$는 성숙일: 성숙일은 0과 양의 실수 $\mu_{^2X}$는 성숙일의 모평균 $\sigma_{^2X}^2$은 성숙일의 모분산 $^2X_i$, $i$는 출하연속월수 출하연속월수는 각각 1=12월, 2=다음해 1월, 3=다음해 2월, 4=다음해 3월, 5=다음해 4월 |
${^2X} \sim N(36, 2^2)$ 위의 정규분포를 5개의 구간으로 나누어 각 구간의 누적확률밀도로 수준(level)의 크기를 정하고 각 구간의 중앙값을 수준(level)의 값으로 정함. $P({^2X} = {^2x_i}) = \begin{cases} P(X \leq -1.5) = \displaystyle \int_{-\infty}^{-1.5} \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} \, dx \approx 0.0668 & \text{if } {^2x_1} = 40 \\ P(-1.5 \leq X \leq -0.5) = \displaystyle \int_{-1.5}^{-0.5} \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} \, dx \approx 0.2417 & \text{if } {^2x_2} = 38 \\ P(-0.5 \leq X \leq 0.5) = \displaystyle \int_{-0.5}^{0.5} \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} \, dx \approx 0.3829 & \text{if } {^2x_3} = 36 \\ P(0.5 \leq X \leq 1.5) = \displaystyle \int_{0.5}^{1.5} \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} \, dx \approx 0.2417 & \text{if } {^2x_4} = 34 \\ P(1.5 \leq X) = \displaystyle \int_{1.5}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} \, dx \approx 0.0668 & \text{if } {^2x_5} = 32 \\ \end{cases}$ | |
저온숙성 $(^3x)$ | $${^1y}_{2}={^1y}_{1}+\bar{D}+\epsilon_{D}$$
여기서, ${^1y}_{2}$는 저온숙성 후 개체의 당도 ${^1y}_{1}$은 저온숙성 전 개체의 당도 $D$는 저온숙성 전후 당도차이이며 확률변수: $d={^1y}_{2}-{^1y}_{1}$, $D=\bar{D}+\epsilon_{D}$ $\bar{D}$는 저온숙성으로 인한 당도변화의 평균 $\epsilon_{D}$는 오차항이며 평균이 0이고 분산이 $\sigma_{D}^2$인 정규분포를 나타냄: $\epsilon_{D} \sim N(0, \sigma_{D}^2) $ |
$\bar{_1D}=0.20$ $\epsilon_{_1D} \sim N(0, \sigma_{_1D}^2) $ $\sigma_{_1D}^2=0.10^2$ | $\bar{_2D}=0.10$ $\epsilon_{_2D} \sim N(0, \sigma_{_2D}^2) $ $\sigma_{_2D}^2=0.10^2$ |
당도 $(^1y)$ | $$^1y=\beta_{0,^1Y}+\beta_{1,^1Y}{\cdot} {^2x}+\epsilon_{^1Y}$$
여기서, $^1y$는 당도 $\beta_{0,^1Y}$는 성숙일에 대한 당도의 회귀직선의 절편이며 값이 0 $\beta_{1, ^1Y}$는 성일에 대한 당도의 회귀직선의 기울기 $\epsilon_{^1Y}$은 오차항이며 평균이 0이고 분산이 $\sigma_{^1Y}^2$인 정규분포: $\epsilon_{^1Y} \sim N(0, \sigma_{^1Y}^2)$ |
$\beta_{1, {_1^1Y}}=0.30$ $\epsilon_{_1^1Y} \sim N(0, \sigma_{_1^1Y})$ $\sigma_{_1^1Y}^2=0.25^2$ | $\beta_{1, {_2^1Y}}=0.25$ $\epsilon_{_2^1Y} \sim N(0, \sigma_{_2^1Y})$ $\sigma_{_2^1Y}^2=0.50^2$ |
과중 $(^2y)$ | $$^2y=\beta_{0,^2Y}+\beta_{1,^2Y}{\cdot} {^2x}+\epsilon_{^2Y}$$
여기서, $^2y$는 과중 $\beta_{0,^2Y}$는 성숙일에 대한 과중의 회귀직선의 절편이며 값이 0 $\beta_{1, ^2Y}$는 성숙일에 대한 과중의 회귀직선의 기울기 $\epsilon_{^2Y}$은 오차항이며 평균이 0이고 분산이 $\sigma_{^2Y}^2$인 정규분포: $\epsilon_{^2Y} \sim N(0, \sigma_{^2Y}^2)$ |
$\beta_{1, {_1^2Y}}=0.60$ $\epsilon_{_1^2Y} \sim N(0, \sigma_{_1^2Y})$ $\sigma_{_1^2Y}^2=0.25^2$ | $\beta_{1, {_2^2Y}}=0.50$ $\epsilon_{_2^2Y} \sim N(0, \sigma_{_2^2Y})$ $\sigma_{_2^2Y}^2=0.25^2$ |
이렇게 생성된 설과 아키의 당도, 과중, 저온숙성 후 당도는 각각의 평균과 표준편차를 가지는 정규분포를 이룬다(Table 2).
Table 2. Distribution and parameters of the strawberry synthetic data
Cultivar | Distribution | Sweetness (Brix) | Weight (g) | Sweetness after cold aging (Brix) |
---|---|---|---|---|
Seol | Normal | 10.80 ± 0.65 | 21.60 ± 1.24 | 11.00 ± 0.66 |
Aki | Normal | 9.00 ± 0.71 | 18.00 ± 1.04 | 9.10 ± 0.72 |
Mean ± standard deviation.
The standard deviation has been rounded to the second decimal place.
앞의 모델에 따라 각 5,000개씩의 설과 아키의 당도, 과중, 숙성 후 당도 데이터를 생성하였고, 이의 통계량은 Table 3과 같다.
Table 3. Descriptive statistics of the strawberry synthetic data
Cultivar | N | Sweetness (Brix) | Weight (g) | Sweetness after cold aging (Brix) |
---|---|---|---|---|
Seol | 5,000 | 10.80 ± 0.66 | 21.59 ± 1.24 | 11.00 ± 0.66 |
Aki | 5,000 | 9.00 ± 0.71 | 17.99 ± 1.03 | 9.10 ± 0.72 |
Mean ± standard deviation.
The mean has been rounded to the second decimal place and the standard deviation has been rounded to the second decimal place.
정규분포 ${^2X} \sim N(36, 2^2)$를 5개의 구간으로 나누어 각 구간의 누적확률밀도로 수준의 크기를 정하고, 각 구간의 중앙값을 수준의 값으로 정하였다. 설과 아키의 과중과 당도는 이 수준의 값, 즉 성숙일에 기울기를 곱하고 오차를 추가하여 선형관계를 가지도록 하였다. 숙성 후 당도는 당도에 두 품종 각각의 차이를 더하고 오차를 추가하였다. 각 데이터 생성은 Google Sheets (Google LLC, USA)가 제공하는 함수를 사용하였다(Table 4).
Table 4. Data generation procedure and functions
Variable | Procedure | Function | |
---|---|---|---|
Seol | Aki | ||
성숙일 $(^2x)$ | ${^2X} \sim N(36, 2^2)$ 위의 정규분포를 5개의 구간으로 나누어 각 구간의 누적확률밀도로 수준(level)의 크기를 정하고 각 구간의 중앙값을 수준(level)의 값, 즉 성숙일로 정함. | 첫번째 구간의 누적확률밀도 = NORMSDIST(–1.5)-NORMSDIST(–9.99999E+307) 두번째 구간의 누적확률밀도 = NORMSDIST(-0.5)-NORMSDIST(-1.5) 세번째 구간의 누적확률밀도 = NORMSDIST(0.5)-NORMSDIST(-0.5) 네번째 구간의 누적확률밀도 = NORMSDIST(1.5)-NORMSDIST(0.5) 다섯번째 구간의 누적확률밀도 = NORMSDIST(9.99999E+307)-NORMSDIST(1.5) | |
저온숙성 $(^3x)$ | 모델에 따라 저온숙성 당도 차이를 더하고 오차를 추가하여 저온숙성 후 당도를 생성 | 설의 숙성 후 당도($_1^2Y_2$): = $_1^2Y_1 + {_1\bar {D}}$ + (NORMINV(RAND(), 0, 0.1)) | 아키의 숙성 후 당도($_2^2Y_2$): = $_2^2Y_1 + {_2\bar {D}}$ + (NORMINV(RAND(), 0, 0.1)) |
당도 $(^1y)$ | 생성 모델에 따라 성숙일에 기울기를 곱하고 오차를 추가하여 당도를 생성 | 설의 당도($_1^2Y$): = $0.3\times {_1^2X}$ + (NORMINV(RAND(), 0, 0.25)) | 아키의 당도($_2^2Y$): = $0.25\times {_2^2X}$ + (NORMINV(RAND(), 0, 0.5)) |
과중 $(^2y)$ | 생성 모델에 따라 성숙일에 기울기를 곱하고 오차를 추가하여 과중을 생성 | 설의 과중($_1^1Y$): = $0.6\times {_1^2X}$ + (NORMINV(RAND(), 0, 0.25)) | 아키의 과중($_2^1Y$): = $0.5\times {_2^2X}$ + (NORMINV(RAND(), 0, 0.25)) |
Table 5에서 합성데이터를 생성한 모델의 매개변수와 생성된 데이터의 통계량을 비교하였다. 당도와 과중의 평균과 표준편차에 있어서 매개변수와 생성된 데이터의 통계량 사이의 차이는 각각 0.01 Brix, 0.01 g 이하이다.
Table 5. Comparison of parameters used for synthetic data generation and statistics of the generated data
Cultivar | Comparison | Sweetness (Brix) | Weight (g) | Sweetness after cold aging (Brix) |
---|---|---|---|---|
Seol | Parameter | 10.80 ± 0.65 | 21.60 ± 1.24 | 11.00 ± 0.66 |
Statistic | 10.80 ± 0.66 | 21.59 ± 1.24 | 11.00 ± 0.66 | |
Aki | Parameter | 9.00 ± 0.71 | 18.00 ± 1.04 | 9.10 ± 0.72 |
Statistic | 9.00 ± 0.71 | 17.99 ± 1.03 | 9.10 ± 0.72 |
Mean ± standard deviation.
The mean has been rounded to the second decimal place and the standard deviation has been rounded to the second decimal place.
Figure 1에서는 생성모델에서 정한 확률분포와 실제 생성된 데이터의 히스토그램을 함께 표시하여, 설과 아키의 당도, 과중, 저온숙성 후 당도의 분포를 비교할 수 있도록 하였다.
Figure 1. Normal distribution of the generative model and histograms of the generated data. A, Seols’ weiight (g); B, Seols’ sweetness (Brix); C, Seols’ sweetness after cold aging (Brix); D, Akis’ weiight (g); E, Akis’ sweetness (Brix); F, Akis’ sweetness after cold aging (Brix).
본 데이터셋은 CC BY-NC-ND 4.0 (저작자표시-비영리-변경금지) 라이선스로 배포됩니다.
생성모델에 따른 합성 데이터 생성에는 구글시트를 사용하였으며, 생성된 데이터와 생성모델의 정규분포 모델의 시각적 비교는 구글코랩을 사용하였다. 각각의 코드는 아래의 URL에서 접근할 수 있다.
구글시: https://docs.google.com/spreadsheets/d/1965P4ni1xCcmDz7KU7s97kanlYdAp3qn7OQHCyB1nZc/
구글코랩: https://colab.research.google.com/drive/1t_9pgyzkljh4tcjnyFSJH7pkCzNBUy8x
데이터는 아래의 URL에서 접근할 수 있다.
구글시트: https://docs.google.com/spreadsheets/d/1965P4ni1xCcmDz7KU7s97kanlYdAp3qn7OQHCyB1nZc/
“데이터 작성 -> 데이터 검증 -> 데이터 공유” 루틴을 반복하여 유용한 결과를 도출하고 데이터 논문을 작성합니다.
생성 기획
데이터 처리 및 정제
데이터셋의 프레임
통계적 검증 및 측정 기법
활용을 위한 분석 방법
공유 방법
데이터 접근 방법
논문
가상 데이터 생성
개체와 개체의 속성 정리
회귀
상관계수
회귀
DOI
URL
데이터 논문