Preciso de códigos genéricos para me auxiliar a construir pequenas aplicações que meu professor de estatistica pediu! Preciso de exemplos de: média, mediana,moda, Variância amostral e populacional, Desvio padrão populacional e amostral, Coeficiente de variação e Diagrama ramos e folhas.
Pois não! Qual a dúvida?
Sua necessidade não é com a linguagem.
Sugestão: https://www.youtube.com/watch?v=a0IxPG3Ihu8&list=PLA0675987914E07BB
Esta generalização é relativa.
Uma linguagem que pode te auxiliar é a linguagem R.
tem que ser mesmo em Java ? Porque realmente, em R a sua vida ficaria muito mais fácil.
Não conheço essa linguagem R.
Sim pode ser em outra linguagem, sim!
Sim pode ser em outra linguagem, esta linguagem R nunca vi
é como construir isto tudo em uma ferramenta só e como cada um.
Fernanda, linguagem R, https://www.youtube.com/watch?v=plJw9QFew5A&list=PL4OAe-tL47sbzCgtBTthtX50T30CLToEZ
R: Fernanda
Desculpe a brincadeira da apresentação.
Ocorre que esta linguagem é pouco conhecida e a maioria da pessoas que fazem utilização dela trabalham justamente com probabilidade e estatística contudo, aparentemente há um trabalho para que ela não seja considerada apenas como uma ferramenta estatística, algo semelhante ocorre com a linguagem Mathematica, entretanto esta é paga e a outra free.
Infelizmente não posso ajudar muito com R, pois comecei a estudar a pouco tempo, por interesse em redes neurais, portanto, é uma linguagem que tenho interesse.
Como falamos de R, eu queria apenas demonstrar que tais tarefas podem ser executadas em java e a facilidade de construção depende de sua experiência e vontade de aprender.
A codificação a seguir é apenas uma amostra e considero a construção simples.
Obs.: não fiz tratamentos de exceção e se você não informar valores quando chamar métodos vai dar erro.
package crisis;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
public class Crisis {
public static void main(String[] args) {
Crisis jav = new Crisis();
System.out.println("Media: " + jav.media(6.0, 7.0, 6.0)
+ "\nModa: " + jav.moda(3.5, 6.0, 7.1, 6.0, 7.1, 7.1)
+ "\nMediana: " + jav.mediana(0.0, 1.0, 2.0, 2.0, 3.0, 3.0, 3.0, 4.0)
);
}
//https://www.youtube.com/watch?v=UfupcG1ax6U&index=4&list=PLA0675987914E07BB
private double media(double... variaveis) {
return Arrays.stream(variaveis).average().getAsDouble();
}
//https://www.youtube.com/watch?v=UfupcG1ax6U&index=4&list=PLA0675987914E07BB
private double moda(double... variaveis) {
Map<Double, Integer> moda = new TreeMap<>();
Arrays.stream(variaveis).forEach(chave -> {
moda.putIfAbsent(chave, 0);
moda.put(chave, moda.get(chave) + 1);
});
int maior = moda.keySet().stream().map(chave -> moda.get(chave)).max(Comparator.comparing((total) -> total)).get();
return moda.keySet().stream().filter(chave -> moda.get(chave) == maior).findFirst().get();
}
//https://www.youtube.com/watch?v=UfupcG1ax6U&index=4&list=PLA0675987914E07BB
private double mediana(double ... variaveis) {
Arrays.sort(variaveis);
//como em java o index inicia em 1 temos que modificar a fórmula informada no vídeo
float p = -1 + (float) (variaveis.length + 1) / 2;
int n = (int) Math.floor(p);
return Math.floor(p) == p ? variaveis[n] : (variaveis[n] + variaveis[++n]) / 2;
}
}
Ao invés de comentar a codificação, preferi indicar vídeos sobre estatística.
A codificação pode parecer difícil, mas é apenas um objeto chamando o outro.
Dessa forma, uma das suas necessidades deve ser com a orientação a objeto.
Eu poderia fazer uma codificação mais didática e comentada, sem muitas chamadas entre objetos, mas na verdade não te ajudaria tanto quanto você assistir vídeos sobre o assunto.
Bons estudos.
Té+.
Obrigada, vou pesquisar e dar uma olhada