List of usage examples for org.apache.commons.math3.linear ArrayRealVector getDimension
@Override public int getDimension()
From source file:gamlss.distributions.SST.java
/** Calculate and set initial value of sigma. * @param y - vector of values of response variable * @return vector of initial values of sigma *///from w ww. j a v a2 s . c o m private ArrayRealVector setSigmaInitial(final ArrayRealVector y) { //sigma.initial = expression(sigma<- rep(sd(y), length(y))), tempV = new ArrayRealVector(y.getDimension()); final double out = new StandardDeviation().evaluate(y.getDataRef()); tempV.set(out); return tempV; }
From source file:gamlss.distributions.TF2.java
/** Set sigma1 array. * @param y - response variable//from w w w. j a v a 2 s . c o m */ private void setInterimArrays(final ArrayRealVector y) { muV = distributionParameters.get(DistributionSettings.MU); sigmaV = distributionParameters.get(DistributionSettings.SIGMA); nuV = distributionParameters.get(DistributionSettings.NU); size = y.getDimension(); double[] temp = new double[size]; for (int i = 0; i < size; i++) { //sigma1 <- (sqrt((nu-2)/nu))*sigma temp[i] = (FastMath.sqrt((nuV.getEntry(i) - 2.0) / nuV.getEntry(i))) * sigmaV.getEntry(i); } sigma1 = new ArrayRealVector(temp, false); }
From source file:gamlss.distributions.ST3.java
/** Calculates initial value of tau. * @param y - vector of values of response variable * @return vector of initial values of tau *//*from ww w.j ava2 s . co m*/ private ArrayRealVector setTauInitial(final ArrayRealVector y) { //tau.initial = expression(tau <-rep(10, length(y))) tempV = new ArrayRealVector(y.getDimension()); tempV.set(10.0); return tempV; }
From source file:gamlss.distributions.PE.java
/** Calculate and set initial value of sigma. * @param y - vector of values of response variable * @return vector of initial values of sigma *//*from w w w.jav a 2 s .co m*/ private ArrayRealVector setSigmaInitial(final ArrayRealVector y) { //sigma.initial = expression( sigma <- (abs(y-mean(y))+sd(y))/2 ) final double mean = new Mean().evaluate(y.getDataRef()); final double sd = new StandardDeviation().evaluate(y.getDataRef()); size = y.getDimension(); double[] out = new double[size]; for (int i = 0; i < size; i++) { out[i] = (FastMath.abs(y.getEntry(i) - mean) + sd) / 2; } return new ArrayRealVector(out, false); }
From source file:gamlss.distributions.PE.java
/** Set logC, c, z arrays. * @param y - response variable//w w w.j a va 2 s. co m */ private void setInterimArrays(final ArrayRealVector y) { muV = distributionParameters.get(DistributionSettings.MU); sigmaV = distributionParameters.get(DistributionSettings.SIGMA); nuV = distributionParameters.get(DistributionSettings.NU); size = y.getDimension(); logC = new double[size]; c = new double[size]; z = new double[size]; for (int i = 0; i < size; i++) { //log.c <- 0.5*(-(2/nu)*log(2)+lgamma(1/nu)-lgamma(3/nu)) logC[i] = 0.5 * (-(2 / nuV.getEntry(i)) * FastMath.log(2) + Gamma.logGamma(1 / nuV.getEntry(i)) - Gamma.logGamma(3 / nuV.getEntry(i))); //c <- exp(log.c) c[i] = FastMath.exp(logC[i]); //z <- (y-mu)/sigma z[i] = (y.getEntry(i) - muV.getEntry(i)) / sigmaV.getEntry(i); } }
From source file:gamlss.distributions.SST.java
/** Computes the global Deviance Increament. * @param y - vector of response variable values * @return vector of global Deviance Increament values */// w ww. ja va2 s . co m public final ArrayRealVector globalDevianceIncreament(final ArrayRealVector y) { //G.dev.incr = function(y,mu,sigma,nu,tau,...) //-2*dST3(y,mu,sigma,nu,tau,log=TRUE), size = y.getDimension(); double[] out = new double[size]; double[] muArr = distributionParameters.get(DistributionSettings.MU).getDataRef(); double[] sigmaArr = distributionParameters.get(DistributionSettings.SIGMA).getDataRef(); double[] nuArr = distributionParameters.get(DistributionSettings.NU).getDataRef(); double[] tauArr = distributionParameters.get(DistributionSettings.TAU).getDataRef(); for (int i = 0; i < size; i++) { out[i] = (-2) * dSST(y.getEntry(i), muArr[i], sigmaArr[i], nuArr[i], tauArr[i], Controls.LOG_LIKELIHOOD); } return new ArrayRealVector(out, false); }
From source file:gamlss.distributions.ST3.java
/** Computes the global Deviance Increament. * @param y - vector of response variable values * @return vector of global Deviance Increament values *//*from w w w .j ava 2s.c o m*/ public final ArrayRealVector globalDevianceIncreament(final ArrayRealVector y) { //G.dev.incr = function(y,mu,sigma,nu,tau,...) //-2*dST3(y,mu,sigma,nu,tau,log=TRUE), size = y.getDimension(); double[] out = new double[size]; double[] muArr = distributionParameters.get(DistributionSettings.MU).getDataRef(); double[] sigmaArr = distributionParameters.get(DistributionSettings.SIGMA).getDataRef(); double[] nuArr = distributionParameters.get(DistributionSettings.NU).getDataRef(); double[] tauArr = distributionParameters.get(DistributionSettings.TAU).getDataRef(); for (int i = 0; i < size; i++) { out[i] = (-2) * dST3(y.getEntry(i), muArr[i], sigmaArr[i], nuArr[i], tauArr[i], Controls.LOG_LIKELIHOOD); } return new ArrayRealVector(out, false); }
From source file:gamlss.algorithm.TEST.java
private void twoParTest() { String fileName = "Data/distTest.csv"; CSVFileReader readData = new CSVFileReader(fileName); readData.readFile();//w w w . j av a 2 s . c o m ArrayList<String> data = readData.storeValues; ArrayRealVector y = new ArrayRealVector(data.size()); ArrayRealVector mu = new ArrayRealVector(data.size()); ArrayRealVector sigma = new ArrayRealVector(data.size()); ArrayRealVector nu = new ArrayRealVector(data.size()); ArrayRealVector tau = new ArrayRealVector(data.size()); for (int i = 0; i < data.size(); i++) { String[] line = data.get(i).split(","); y.setEntry(i, Double.parseDouble(line[0])); mu.setEntry(i, Double.parseDouble(line[1])); sigma.setEntry(i, Double.parseDouble(line[2])); nu.setEntry(i, Double.parseDouble(line[3])); tau.setEntry(i, Double.parseDouble(line[4])); } double[] outA = new double[y.getDimension()]; String folder = "C:\\Users\\Daniil\\Desktop\\Gamlss_exp/outDistG.csv"; ArrayRealVector out = null; GA dist = new GA(); dist.setDistributionParameter(DistributionSettings.MU, mu); dist.setDistributionParameter(DistributionSettings.SIGMA, sigma); dist.setDistributionParameter(DistributionSettings.NU, nu); dist.setDistributionParameter(DistributionSettings.TAU, tau); //1 out = dist.firstDerivative(DistributionSettings.MU, y); MatrixFunctions.vectorWriteCSV(folder, out, false); //2 out = dist.secondDerivative(DistributionSettings.MU, y); MatrixFunctions.vectorWriteCSV(folder, out, true); //3 out = dist.firstDerivative(DistributionSettings.SIGMA, y); MatrixFunctions.vectorWriteCSV(folder, out, true); //4 out = dist.secondDerivative(DistributionSettings.SIGMA, y); MatrixFunctions.vectorWriteCSV(folder, out, true); //5 // out = dist.secondCrossDerivative(DistributionSettings.MU, DistributionSettings.SIGMA, y); // MatrixFunctions.vectorWriteCSV(folder, out, true); //6 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.dGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //7 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.dGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //8 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, true); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //9 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, true); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //10 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //11 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //12 for (int i = 0; i < y.getDimension(); i++) { // outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, true); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //13 for (int i = 0; i < y.getDimension(); i++) { // outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, true); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //14 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //15 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //16 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.dGA(y.getEntry(i)); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //17 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i)); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //18 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.qGA(y.getEntry(i)); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); System.out.println("Done !!!"); }
From source file:gamlss.utilities.TestingDistributions.java
private void twoParTest() { String fileName = "Data/distTest.csv"; CSVFileReader readData = new CSVFileReader(fileName); readData.readFile();/*from w w w . j ava 2s .c o m*/ ArrayList<String> data = readData.storeValues; ArrayRealVector y = new ArrayRealVector(data.size()); ArrayRealVector mu = new ArrayRealVector(data.size()); ArrayRealVector sigma = new ArrayRealVector(data.size()); ArrayRealVector nu = new ArrayRealVector(data.size()); ArrayRealVector tau = new ArrayRealVector(data.size()); for (int i = 0; i < data.size(); i++) { String[] line = data.get(i).split(","); y.setEntry(i, Double.parseDouble(line[0])); mu.setEntry(i, Double.parseDouble(line[1])); sigma.setEntry(i, Double.parseDouble(line[2])); nu.setEntry(i, Double.parseDouble(line[3])); tau.setEntry(i, Double.parseDouble(line[4])); } double[] outA = new double[y.getDimension()]; String folder = "C:\\Users\\Daniil\\Desktop\\Gamlss_exp/outDistG.csv"; ArrayRealVector out = null; GA dist = new GA(); dist.setDistributionParameter(DistributionSettings.MU, mu); dist.setDistributionParameter(DistributionSettings.SIGMA, sigma); dist.setDistributionParameter(DistributionSettings.NU, nu); dist.setDistributionParameter(DistributionSettings.TAU, tau); //1 out = dist.firstDerivative(DistributionSettings.MU, y); MatrixFunctions.vectorWriteCSV(folder, out, false); //2 out = dist.secondDerivative(DistributionSettings.MU, y); MatrixFunctions.vectorWriteCSV(folder, out, true); //3 out = dist.firstDerivative(DistributionSettings.SIGMA, y); MatrixFunctions.vectorWriteCSV(folder, out, true); //4 out = dist.secondDerivative(DistributionSettings.SIGMA, y); MatrixFunctions.vectorWriteCSV(folder, out, true); //5 // out = dist.secondCrossDerivative(DistributionSettings.MU, DistributionSettings.SIGMA, y); // MatrixFunctions.vectorWriteCSV(folder, out, true); //6 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.dGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //7 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.dGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //8 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, true); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //9 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, true); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //10 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //11 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //12 for (int i = 0; i < y.getDimension(); i++) { // outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, true); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //13 for (int i = 0; i < y.getDimension(); i++) { // outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, true); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //14 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), true, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //15 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.qGA(y.getEntry(i), mu.getEntry(i), sigma.getEntry(i), false, false); } MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //16 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.dGA(y.getEntry(i)); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //17 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.pGA(y.getEntry(i)); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); //18 for (int i = 0; i < y.getDimension(); i++) { outA[i] = dist.qGA(y.getEntry(i)); } // MatrixFunctions.vectorWriteCSV(folder, new ArrayRealVector(outA, false), true); System.out.println("Done !!!"); }
From source file:gamlss.distributions.JSUo.java
/** * Set z and r arrays./* w ww .j av a 2s . co m*/ * @param y - response variable */ private void setInterimArrays(final ArrayRealVector y) { muV = distributionParameters.get(DistributionSettings.MU); sigmaV = distributionParameters.get(DistributionSettings.SIGMA); nuV = distributionParameters.get(DistributionSettings.NU); tauV = distributionParameters.get(DistributionSettings.TAU); size = y.getDimension(); z = new double[size]; r = new double[size]; for (int i = 0; i < size; i++) { //z <- (y-mu)/sigma z[i] = (y.getEntry(i) - muV.getEntry(i)) / sigmaV.getEntry(i); //r <- nu + tau*asinh(z) r[i] = nuV.getEntry(i) + tauV.getEntry(i) * FastMath.asinh(z[i]); } }