2010-07-20 69 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,這兩個預測都可能是合理的。 – 2010-07-20 05:01:05

+0

下一個數字不能高於或等於先前的數字。 該算法的應用是幫助估算我遊戲網站上的電子郵件列表的退訂率,並預測未來訂閱率(以及因此的百分比)。第一個到第二個數字是最大的差異,並且在第三或第四天之後退訂率相當大地下降。我在統計中做得不好,所以我在這裏無能爲力:) – reefine 2010-07-20 05:12:04

回答

1

你試圖做的是數學的一大分支interpolation。聲稱一種方式比另一種方式更「統計準確」可能引發宗教戰爭。這完全取決於您嘗試插入的數據類型。

Linear interpolation將是最直接的。

+0

我不認爲php可以處理這種深度數學計算。在這個好日子裏,科學家使用fortran來實現這一點,現在有Mathematica或Matlab。 – marvin 2010-07-20 06:36:34

+1

它在PHP中確實很有可能,因爲它在大多數語言中都是如此。儘管像Matlab或R這樣的語言和工具是專門爲此類活動設計的語言結構,但更普遍的語言(如C或Java或PHP)同樣能夠執行數學。爲了eaxmple,PHPExcel在純PHP中使用了作爲包的一部分的內置特性,以複製Excel的特性。 – 2010-07-20 07:58:12

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