BigQuery에는 STDDEV (X) 및 CORR (X, Y)와 같은 통계 집계 함수가 있지만 선형 회귀를 직접 수행하는 함수는 제공하지 않습니다.BigQuery에서 선형 회귀를 수행하는 방법은 무엇입니까?
존재하는 기능을 사용하여 어떻게 선형 회귀를 계산할 수 있습니까?
BigQuery에는 STDDEV (X) 및 CORR (X, Y)와 같은 통계 집계 함수가 있지만 선형 회귀를 직접 수행하는 함수는 제공하지 않습니다.BigQuery에서 선형 회귀를 수행하는 방법은 무엇입니까?
존재하는 기능을 사용하여 어떻게 선형 회귀를 계산할 수 있습니까?
다음 쿼리는 수치 적으로 안정되고 모든 입력 테이블에서 작동하도록 쉽게 수정 된 계산을 사용하여 선형 회귀를 수행합니다. 내장 함수 CORR을 사용하여 모델 Y = SLOPE * X + INTERCEPT와 피어슨 상관 계수에 가장 잘 맞는 기울기와 절편을 만듭니다.
예를 들어, 출생 체중을 상태에 따라 분류 된 임신 기간의 선형 함수로 계산하기 위해 공개 출생 데이터 세트를 사용합니다. 이것을 더 작게 작성할 수 있지만 여러 레이어의 하위 쿼리를 사용하여 조각이 어떻게 함께 움직이는 지 강조 표시합니다. 이것을 다른 데이터 세트에 적용하려면 가장 안쪽의 쿼리 만 바꾸면됩니다. STDDEV_POP 및 CORR 기능을 사용
SELECT Bucket,
SLOPE,
(SUM_OF_Y - SLOPE * SUM_OF_X)/N AS INTERCEPT,
CORRELATION
FROM (
SELECT Bucket,
N,
SUM_OF_X,
SUM_OF_Y,
CORRELATION * STDDEV_OF_Y/STDDEV_OF_X AS SLOPE,
CORRELATION
FROM (
SELECT Bucket,
COUNT(*) AS N,
SUM(X) AS SUM_OF_X,
SUM(Y) AS SUM_OF_Y,
STDDEV_POP(X) AS STDDEV_OF_X,
STDDEV_POP(Y) AS STDDEV_OF_Y,
CORR(X,Y) AS CORRELATION
FROM (SELECT state AS Bucket,
gestation_weeks AS X,
weight_pounds AS Y
FROM [publicdata.samples.natality])
WHERE Bucket IS NOT NULL AND
X IS NOT NULL AND
Y IS NOT NULL
GROUP BY Bucket));
는 X와 Y의 제품을 합산 한 후 차이를 복용하고 분할에 비해이 쿼리의 수치 안정성을 향상,하지만 당신은 잘 행동 데이터 세트에 대한 두 가지 접근 방식을 사용하는 경우, 높은 정확도로 동일한 결과를 산출하는지 확인할 수 있습니다.