2010-07-20 3 views
0

숫자 배열 ($ 숫자)을 기반으로 숫자 시리즈에서 값 $ x를 계산하려고합니다.PHP 견적 기능

예 :

$numbers = array(1=>1000,2=>600,3=>500,4=>450,5=>425,6=>405,7=>400,8=>396); 
function estimateNumber($x) { 
    // function to estimate number $x in $numbers data set 
} 

은 무엇 통계적으로 가장 정확한 방법이 될 것입니다?

+0

:

이 공정한 근사치를 것입니까? 어떤 종류의 시리즈가 당신의 기능에 전달 될 것인가에 대한 진술을하지 못한다면 할 수있는 일이별로 없습니다. 다음 숫자는 50000이거나 393 일 수 있으며 두 예측 중 하나를 정당화 할 수 있습니다. –

+0

다음 숫자는 이전 숫자보다 크거나 같을 수 없습니다. 이 알고리즘의 응용 프로그램은 내 게임 사이트의 전자 메일 목록에 대한 가입 취소 비율을 예측하고 향후 특정 날짜에 대한 가입 취소 비율 (및 백분율)을 예측하는 데 도움이됩니다. 첫 번째에서 두 번째 숫자가 가장 큰 차이이며, 구독 취소 비율은 3 일 또는 4 일 후에 상당히 많이 내려갑니다. 나는 여기에서 우둔한 통계에 잘하지 않았다. :) – reefine

답변

1

당신이하려는 것은 interpolation라고하는 수학의 큰 부분입니다. 편도를 주장하는 것이 다른 편보다 "통계적으로 정확하다"는 주장은 아마도 종교 전쟁을 일으킬 것입니다. 그것은 모두 당신이 보간하려고하는 데이터의 종류에 달려 있습니다.

Linear interpolation이 가장 간단합니다.

+0

그리고 나는 php가 그 종류의 깊은 수학적 계산을 다룰 수 있다고 생각하지 않는다. 과학자들이 fortran을 사용하여 좋은 평범한 날에는 Mathematica 나 Matlab이 있습니다. – marvin

+1

대부분의 언어 에서처럼 PHP에서는 실제로 가능합니다. Matlab이나 R과 같은 언어와 도구는 이러한 유형의 활동을위한 언어 구조로 특별히 설계되었지만 C 나 java 또는 PHP와 같은보다 일반화 된 언어는 수학을 수행 할 여력이 거의 없습니다. eaxmple을위한 PHPExcel은 순수 PHP로 작성된 패키지의 일부로 내장되어있어 Excel의 기능을 복제합니다. –

0

직선 또는 n 차 다항식에 맞출지를 결정해야합니다. 어쩌면 Excel에서 몇 가지 예제를 통해 필요한 아이디어를 얻을 수 있습니다.

0

"통계적으로 가장 정확한 방법"이 하나도 없습니다. 이전에 관측 된 값뿐만 아니라 추정하는 값에 따라 다릅니다. 기존 값의 집합을 살펴보면 기하 급수적으로 감소하는 것으로 보이며, 7 번째와 8 번째 값에 의해 이미 5와 4만큼만 감소한 지점에 도달했습니다. 이것을 3, 2, 1로 더 줄이면 거의 일정 해지고 소수점 이하는 약간 변할 것입니다. "추정"당신이 시리즈의 다음 수를 예측하는 뜻으로

... 
7 => 400 
8 => 396 
9 => 393 
10 => 391 
11 => 390 
12 and above => 389.xxx