Last active
July 8, 2021 19:59
-
-
Save Bolinha1/5112789 to your computer and use it in GitHub Desktop.
Calcula o desvio padrão de uma amostra, tanto desvio padrão amostral, quanto desvio padrão populacional
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class DesvioPadrao | |
{ | |
private $amostra; | |
public function __construct($amostra) | |
{ | |
$this->amostra = explode(',', $amostra); | |
} | |
public function media() | |
{ | |
$media = array_sum($this->amostra) / count($this->amostra); | |
return $media; | |
} | |
public function somaQuadradoDesvio() | |
{ | |
foreach ($this->amostra as $soma=>$value) | |
{ | |
$desvio = $value - $this->media(); | |
$quadradoDesvio = pow($desvio, 2); | |
$somaQuadradoDesvio += $quadradoDesvio; | |
} | |
return $somaQuadradoDesvio; | |
} | |
public function desvioPadraoPopulacional() | |
{ | |
$varianciaPopulacional = $this->somaQuadradoDesvio() / count($this->amostra); | |
$desvioPadraoPopulacional = sqrt($varianciaPopulacional); | |
return $desvioPadraoPopulacional; | |
} | |
public function desvioPadraoAmostral() | |
{ | |
$varianciaAmostral = $this->somaQuadradoDesvio() / (count($this->amostra) - 1); | |
$desvioPadraoAmostral = sqrt($varianciaAmostral); | |
return $desvioPadraoAmostral; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include_once 'DesvioPadrao.class.php'; | |
/* | |
* O resultado para essa amostra 22,32,28,34 deve ser aproximadamente | |
* POPULACIONAL 4.5825756949558 | |
* AMOSTRAL 5.2915026221292 | |
* MEDIA 29 | |
*/ | |
$desvio = new DesvioPadrao('22,32,28,34'); | |
var_dump($desvio->media()); | |
var_dump($desvio->desvioPadraoPopulacional()); | |
var_dump($desvio->desvioPadraoAmostral()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Muito grato pelo compartilhamento do calculo, me ajudou muito.
Só um detalhe na função a baixou, você não iniciou a variável $somaQuadradoDesvio antes do foreach.
public function somaQuadradoDesvio() { $somaQuadradoDesvio = 0; foreach ($this->amostra as $soma=>$value) { $desvio = $value - $this->media(); $quadradoDesvio = pow($desvio, 2); $somaQuadradoDesvio += $quadradoDesvio; } return $somaQuadradoDesvio; }