<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요,
다음과 같은 데이터 세트가 있습니다.
x = 시간
y = 평균 나무 물 사용 [데이터 손실로 인한 3, 2 또는 1 값]
이 주기는 시간[하루 24시간]에서 몇 달 동안 반복되며 매일 "y"는 다른 패턴을 갖습니다. 다음은 3일 샘플 데이터입니다.

시간을 합산하는 것은 쉬운 방법이지만 물 사용량이 전체 시간 동안 동일하다고 가정합니다[잘못된 가정].
"y"의 해상도가 1시간이 되지 않도록 각 곡선 아래 영역을 통합하는 더 좋은 방법이 있습니까?
이미 모델 라이브러리에서 다양한 비선형 모델을 피팅해 보았지만 어느 것도 좋은 결과를 얻지 못했고 "y" 곡선 모양의 일일 변화에 적응할 수 없었습니다.
다음으로 가우시안 프로세스를 시도하여 해상도를 높일 수 있는지 확인하겠습니다.
감사합니다,
-JGL
다음은 새로운 영역 열을 제공하는 함수입니다.지금은 보고서가 열려 있는 동안 실행할 수 있을 만큼 똑똑하지 않으므로 창을 정렬할 수 있는지 확인하십시오.
함수를 실행한 다음 riemann_sum()을 호출하기만 하면 됩니다.
리만_합 = 기능 (
{dt = 현재 데이터 테이블 (), 엑스콜 = "선택하다" , 이콜 = "선택하다" , 비콜 = "선택하다" },
{기본 로컬},
현재 데이터 테이블 ( dt );
만약에 ( xcol == "선택하다" ,
NC = N 열 ( dt );
파운드폭 = 130 ;
nw = 새창 ( "레이만 썸" ,
<< 모달 ,
테두리 상자 ( 왼쪽 ( 삼 ), 맨 위( 2 ),
V 목록 상자 (
텍스트 상자 ( "곡선 아래 영역 가져오기" ),
H 목록 상자 (
V 목록 상자 (
패널 박스 ( "열 선택" ,
콜리스트데이터 = 열 목록 상자 ( 전체, 너비( lbWidth ), nLines( 분 ( 체크 안함, 10 ) ) )
),
),
패널 박스 ( "선택한 열을 역할로 캐스트" ,
라인업 박스 ( N 열 ( 2 ), 간격( 삼 ),
버튼 박스 ( "Y, 열" , 콜리스트Y << 추가 ( 콜리스트 데이터 << GetSelected ) ),
콜리스트Y = 열 목록 상자 (
너비(lbWidth),
n라인( 1 ),
최대 선택( 1 ),
최소 항목( 1 ),
"숫자"
),
버튼 박스 ( "엑스" , 콜리스트X << 추가 ( 콜리스트 데이터 << GetSelected ) ),
콜리스트X = 열 목록 상자 (
너비(lbWidth),
n라인( 1 ),
최대 선택( 1 ),
최소 항목( 1 ),
"숫자"
),
버튼 박스 ( "에 의해" , 콜리스트B << 추가 ( 콜리스트 데이터 << GetSelected ) ),
콜리스트B = 열 목록 상자 ( 폭( lbWidth ), nLines( 1 ), 최대 선택( 1 ) )
)
),
패널 박스 ( "행동" ,
라인업 상자 ( N 열 ( 1 ),
버튼 박스 ( "좋아요" ,
이콜 = 열 ((colListY << 항목 가져오기 )[ 1 ]);
엑스콜 = 열 ((colListX << 항목 가져오기 )[ 1 ]);
nby = 나이트 (colListB << 항목 가져오기 );
만약에 (nby,
바이콜 = 열 ((colListB << 항목 가져오기 )[ 1 ]),
바이콜 = 새 열 ( "페이크비" , 공식( 숯 ( 1 )));
);
),
버튼 박스 ( "취소" , nw << 창 닫기 ),
텍스트 상자 ( " " ),
버튼 박스 ( "제거하다" ,
콜리스트Y << 선택된 것을 지우다 ;
콜리스트X << 선택된 것을 지우다 ;
콜리스트B << 선택된 것을 지우다 ;
),
)
)
)
)
)
);
);
요약하다 ( list_by = By( bycol ) );
dt << 종류 ( //x의 순서가 맞는지 확인하기 위해 정렬
By( bycol, xcol ),
순서(오름차순, 오름차순),
테이블 바꾸기
);
list_valuesx = xcol << 값을 얻다 ;
list_valuesy = ycol << 값을 얻다 ;
기다리다 ( 0.1 );
아아 = 연관 배열 ();
을 위한 ( 나는 = 1 , 나는 <= N개 항목 ( list_by ), i++,
dt << 선택 지우기 ;
list_rows = dt << 행 가져오기 ( bycol[ 열 ()] == list_by );
//dif_x 및 sum_y는 마법이 일어나는 곳입니다.
dif_x = 목록_값x[목록_행[ 2 :: ( N행 ( list_rows ))]] - list_valuesx[list_rows[ 1 :: (
N행 ( list_rows ) - 1 )]];
합계_y = .5 * (목록_값[목록_행[ 2 :: ( N행 ( list_rows ))]] + list_valuesy[list_rows[ 1 :: (
N행 ( list_rows ) - 1 )]]);
aa[list_by ] = 합집합 ( dif_x
합계_y );
);
dt << 새 열 ( "완전한" , 숫자, 연속, 수식( aa[bycol[ 열 ()]] ) );
열 (dt, "완전한" ) << 수식 삭제 ; //만든 다음 죽여서 aa가 로컬에 머물 수 있도록 합니다.
만약에 (!nby, dt<< 열 삭제 ({bycol}));
);
이를 수행하는 가장 좋은 방법은 리만 합입니다.모든 x 간격이 동일하면 합계를 수행하고 간격을 곱할 수 있습니다.
따라서 오늘의 모든 포인트를 더하고 이 경우 1을 곱하십시오.