Monday, February 26, 2007
Java/자바] 표준 편차 구하기/계산 메서드; Standard Deviation Method
자바에는 표준편차 구하는 메소드(함수)가 없기에 만들어 주어야 합니다. 다음의
public static double standardDeviation(double[] array, int option)
이라는 메서드로 실수 배열의 표준편차를 구할 수 있습니다.
실수 배열명이 foo 일 때,
standardDeviation(foo, 1)
이라고 하면, 엑셀의 STDEV() 함수에 해당하는 "표본의 표준 편차"를 구할 수 있고
standardDeviation(foo, 0)
이라고 하면, 엑셀의 STDEVP() 함수에 해당하는 "모집단 전체의 표준 편차"를 구할 수 있습니다.
소스 파일명: Example.java
▶▶ Java/자바] 한국 남녀 키(신장)의 평균, 표준편차 랜덤 난수 생성; Human Stature Random Number
public static double standardDeviation(double[] array, int option)
이라는 메서드로 실수 배열의 표준편차를 구할 수 있습니다.
실수 배열명이 foo 일 때,
standardDeviation(foo, 1)
이라고 하면, 엑셀의 STDEV() 함수에 해당하는 "표본의 표준 편차"를 구할 수 있고
standardDeviation(foo, 0)
이라고 하면, 엑셀의 STDEVP() 함수에 해당하는 "모집단 전체의 표준 편차"를 구할 수 있습니다.
자바로 표준편차 구하기 예제 소스
소스 파일명: Example.java
public class Example {
public static void main(String[] args) {
double[] foo = { 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 };
// 평균 구하기
System.out.println(mean(foo));
// 출력 결과: 1328.6
// 표본의 표준편차 구하기 (STDEV)
System.out.println(standardDeviation(foo, 1));
// 출력 결과: 27.46391571984349
// 모집단 전체의 표준편차 구하기 (STDEVP)
System.out.println(standardDeviation(foo, 0));
// 출력 결과: 26.054558142482477
}
public static double mean(double[] array) { // 산술 평균 구하기
double sum = 0.0;
for (int i = 0; i < array.length; i++)
sum += array[i];
return sum / array.length;
}
public static double standardDeviation(double[] array, int option) {
if (array.length < 2) return Double.NaN;
double sum = 0.0;
double sd = 0.0;
double diff;
double meanValue = mean(array);
for (int i = 0; i < array.length; i++) {
diff = array[i] - meanValue;
sum += diff * diff;
}
sd = Math.sqrt(sum / (array.length - option));
return sd;
}
}
public static void main(String[] args) {
double[] foo = { 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 };
// 평균 구하기
System.out.println(mean(foo));
// 출력 결과: 1328.6
// 표본의 표준편차 구하기 (STDEV)
System.out.println(standardDeviation(foo, 1));
// 출력 결과: 27.46391571984349
// 모집단 전체의 표준편차 구하기 (STDEVP)
System.out.println(standardDeviation(foo, 0));
// 출력 결과: 26.054558142482477
}
public static double mean(double[] array) { // 산술 평균 구하기
double sum = 0.0;
for (int i = 0; i < array.length; i++)
sum += array[i];
return sum / array.length;
}
public static double standardDeviation(double[] array, int option) {
if (array.length < 2) return Double.NaN;
double sum = 0.0;
double sd = 0.0;
double diff;
double meanValue = mean(array);
for (int i = 0; i < array.length; i++) {
diff = array[i] - meanValue;
sum += diff * diff;
}
sd = Math.sqrt(sum / (array.length - option));
return sd;
}
}
▶▶ Java/자바] 한국 남녀 키(신장)의 평균, 표준편차 랜덤 난수 생성; Human Stature Random Number
tag: java
자바 | Java
<< Home