Skip to content

Instantly share code, notes, and snippets.

@Bolinha1
Last active July 8, 2021 19:59
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Bolinha1/5112789 to your computer and use it in GitHub Desktop.
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
<?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;
}
}
<?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());
@jeanfprado
Copy link

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; }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment