我想知道是否有人可以帮助我。我正在开发一个程序,该程序从双精度值列表中提取均值和标准差。我使用org.apache.commons.math4.stat.descriptive来执行此操作,该库有一个名为GetStandardDeviation()的方法,该方法为您提供列表的std,但是当我计算此std manually时,却没有得到方法返回我的值相同。这是我的代码:
public class PDC extends AppCompatActivity {
private DescriptiveStatistics stats = new DescriptiveStatistics();
private double media;
private double dvt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdc);
double K = 0.00;
Bundle extras;
extras = getIntent().getExtras();
assert extras != null;
String nombrelista = extras.getString("nombrelista");
ArrayList<String> listDatos = extras.getStringArrayList("listDatos");
assert listDatos != null;
if(listDatos.size()==9){ K = 1.92;}
if(listDatos.size()==10){K = 1.96;}
if(listDatos.size()==11){K = 2.00;}
if(listDatos.size()==12){K = 2.04;}
if(listDatos.size()==13){K = 2.07;}
if(listDatos.size()==14){K = 2.10;}
//This for parses to double the positions from listdatos Arraylist and put it in the DescriptiveStatistics type variable called "stats"
for (int i = 0; i < listDatos.size(); i++) {
stats.addValue(Double.parseDouble(listDatos.get(i)));
}
// so now, when i have my arraylist saved in "stats" i call getStandardDeviation
media = stats.getMean();
dvt = stats.getStandardDeviation();
int numeroMed = listDatos.size();
double imin = media - (K * dvt);
double imax = media + (K * dvt);
//then i pass all the values to another activity where it shows up in a TextView Field
Intent A = new Intent(this, Resultados.class);
A.putExtra("nombreLista", nombrelista);
A.putExtra("NumeroMedidas", numeroMed);
A.putStringArrayListExtra("listDatos", listDatos);
A.putExtra("Media", media);
A.putExtra("dvt", dvt);
A.putExtra("Imin", imin);
A.putExtra("Imax", imax);
A.putExtra("K",K);
startActivity(A);
}
}
不知道为什么它不起作用。也许我在进行活动时会丢失一些信息,因为这些值过去常常是很长的数字。
¿]如果我不使用此库,而是设计自己的方法可以进行标准偏差,那会更好吗?
此外,如果您发现我的代码中有待改进的地方,请告诉我,因为它是新事物,所以我对此感到很不高兴。非常感谢!
我想知道是否有人可以帮助我。我正在开发一个程序,该程序从双精度值列表中提取均值和标准差。我使用org.apache.commons.math4.stat.descriptive来做...
这是Java中精度的损失。