기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
$covarianceSamp
버전 8.0.2에서 새로 추가되었습니다.
Amazon DocumentDB의 $covarianceSamp 연산자는 두 숫자 표현식의 샘플 공분산을 반환합니다. $setWindowFields 단계에서만 사용되는 창 연산자이며 $group 또는 $bucket 단계에서는 유효하지 않습니다. 단계의 output 필드 아래에 연산자를 지정하고 선택적으로 window 문서로 창 경계를 정의합니다.
파라미터
-
$covarianceSamp는 2개 요소 배열을 사용합니다.[ <expression1>, <expression2> ]여기서 각 요소는 숫자 표현식("$x", 표현식 또는 상수와 같은 필드 경로)입니다. 창의 문서에 걸쳐 두 표현식의 샘플 공분산을 반환합니다.
예제(MongoDB 쉘)
다음 예제에서는를 기준으로 문서를 분할하고series,를 기준으로 각 파티션을 정렬하고t, 전체 파티션에 y 대한 x 및의 샘플 공분산을 계산합니다.
샘플 문서 생성
db.measurements.insertMany([ { _id: 1, series: "A", t: 1, x: 1, y: 2 }, { _id: 2, series: "A", t: 2, x: 2, y: 5 }, { _id: 3, series: "A", t: 3, x: 3, y: 8 }, { _id: 4, series: "B", t: 1, x: 1, y: 8 }, { _id: 5, series: "B", t: 2, x: 2, y: 5 }, { _id: 6, series: "B", t: 3, x: 3, y: 2 } ]);
쿼리 예제
db.measurements.aggregate([ { $setWindowFields: { partitionBy: "$series", sortBy: { t: 1 }, output: { covariance: { $covarianceSamp: [ "$x", "$y" ], window: { documents: ["unbounded", "unbounded"] } } } } } ]);
출력
[
{ "_id": 1, "series": "A", "t": 1, "x": 1, "y": 2, "covariance": 3 },
{ "_id": 2, "series": "A", "t": 2, "x": 2, "y": 5, "covariance": 3 },
{ "_id": 3, "series": "A", "t": 3, "x": 3, "y": 8, "covariance": 3 },
{ "_id": 4, "series": "B", "t": 1, "x": 1, "y": 8, "covariance": -3 },
{ "_id": 5, "series": "B", "t": 2, "x": 2, "y": 5, "covariance": -3 },
{ "_id": 6, "series": "B", "t": 3, "x": 3, "y": 2, "covariance": -3 }
]
파티션의 모든 문서는 시리즈(x x 및 y가 함께 증가) 및 3 시리즈A(x가 증가하면 By가 감소)와 같이 동일한 covariance, 즉 해당 파티션의 y 모든 문서에 -3 대한 및의 샘플 공분산을 수신합니다. 샘플 공분산은 n - 1 대신 로 나뉘n므로 동일한 데이터의 모집단 공분산보다 크기가 더 큽니다.
코드 예제
$setWindowFields 단계에서 $covarianceSamp 연산자를 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.