最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?分位點(分位值)計算方式

 更新時間:2021年12月15日 10:03:32   作者:Think-Yang  
這篇文章主要介紹了Java?分位點(分位值)計算方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java 分位點(分位值)計算

有一個需求

給出一段時間的PB(平均市凈率),然后選擇這段時間的某一天,計算這天的分位值.

很簡單的一個數(shù)理統(tǒng)計學科的問題,對于畢業(yè)多年的學渣還是有必要記錄以下相關問題的計算方法.

例如:

取最近1.1-1.10號的pb分別是(1,1,2,2,3,3,4,4,5,5),我傳入1.1號

那么返回我值是:0%,如果傳入1.10號返回100%

那么怎么建立數(shù)學模型呢?

注:分位值說明:

Pn為n分位值。表示被調查群體中有n%的數(shù)據小于此數(shù)值。n的大小反應市場的不同水平,通常使用P10、P25、P50、P75、P90來表示市場的不同水平。

  • 10分位值:表示有10%的數(shù)據小于此數(shù)值,反映市場的低端水平。
  • 25分位值:表示有25%的數(shù)據小于此數(shù)值,反映市場的較低端水平。
  • 50分位值:表示有50%的數(shù)據小于此數(shù)值,反映市場的中等水平。
  • 75分位值:表示有75%的數(shù)據小于此數(shù)值,反映市場的較高端水平。
  • 90分位值:表示有90%的數(shù)據小于此數(shù)值,反映市場的高端水平。

例:求下例一組數(shù)據的25分位,50分位,75分位值:
A=【65 23 55 78 98 54 88 90 33 48 91 84】

解:

方法一:

1、先把上面12個數(shù)按從小到大排序

1 23
2 33
3 48
4 54
5 55
6 65
7 78
8 84
9 88
10 90
11 91
12 98

2、12個數(shù)有11個間隔,每個四分位間11/4=2.75個數(shù)

3、

① 計算25分位:

第1個四分位數(shù)為上面12個數(shù)中的第1+2.75=3.75個數(shù)

指第3個數(shù)對應的值48及第3個數(shù)與第4個數(shù)之間的0.75位置處,即:48+(0.75)*(54-48)=52.5 (52.5為25分位值)。

② 計算50分位:

第2個四分位數(shù)為上面12個數(shù)中的第1+2.752=6.5個數(shù)

指第6個數(shù)對應的值65及第6個數(shù)與第7個數(shù)之間的0.5位置處,即:65+(0.5)(78-65)=71.5 (71.5為50分位值)。

【中位值也可以用一種很簡單的方法計算,按從小到大排列后:

若數(shù)組中數(shù)的個數(shù)為奇數(shù),則最中間那個數(shù)對應的值則為中位值;

若數(shù)組中數(shù)的個數(shù)為偶數(shù),則取中間兩個數(shù)值的平均值則為中位值,如上78+65)/2=71.5】

③ 計算75分位:

第3個四分位數(shù)為上面12個數(shù)中的第1+2.753=9.

指第9個數(shù)對應的值88及第9個數(shù)與第10個數(shù)之間的0.25位置處,即:88+(0.25)(90-88)=88.5 (88.5為75分位值)。

【將1到100分為10等分,則有10個10分位,用以上的方法可計算10分位值和90分位值。(以上實例的P10=34.5,P90=90.9)】

下面用Java 代碼實現(xiàn)

相關方法

private static double getPercentile(List<Double> dataList, double p) {
        int n = dataList.size();
        dataList.sort(new Comparator<Double>() {
            //從小到大排序
            @Override
            public int compare(Double o1, Double o2) {
                if(o1 == null || o2== null){
                return 0;
                }
                return o1.compareTo(o2);
            }
        });
        double px =  p*(n-1);
        int i = (int)java.lang.Math.floor(px);
        double g = px - i;
        if(g==0){
            return dataList.get(i);
        }else{
            return (1-g)*dataList.get(i)+g*dataList.get(i+1);
        }
    }

測試接口

    @RequestMapping("CalcPercentile")
    @ResponseBody
    public R CalcPercentile(@Param("per") double per){
        double[] arrs = {2,4,5,1,3,3,4,1,2,5};
        List<Double> doubleList = new ArrayList<>();
        for (double currArr : arrs) {
            doubleList.add(currArr);
        }
        double percentile = getPercentile(doubleList, per);
        return R.ok().message("查詢服務數(shù)據");
    }

正常輸出

輸入1也就是100%,正常輸出5.0,輸入0.5,輸出3.0

在這里插入圖片描述

完成需求

上面的分析是,知道百分位,求百分位對應的數(shù)值? 而我們的需求是利用樣本時間里面的某個值,求對應的百分位是多少?經過查閱很多資料沒有找到相關公式,當然有大佬知道可以提示一下.總歸問題還是要解決的. 這邊使用的解決方案是,把樣本數(shù)據分成100個點,求每個百分位對應的數(shù)值,然后與樣本中的目標數(shù)據一 一對比,求其最接近的那個數(shù).就間接取到了目標數(shù)據的百分位值

核心代碼

在這里插入圖片描述

Java 求百分位數(shù)

說明一下

百分位數(shù),統(tǒng)計學術語,如果將一組數(shù)據從小到大排序,并計算相應的累計百分位,則某一百分位所對應數(shù)據的值就稱為這一百分位的百分位數(shù)。可表示為:一組n個觀測值按數(shù)值大小排列。如,處于p%位置的值稱第p百分位數(shù)。

java代碼

 public static double percentile(double[] data,double p){
  int n = data.length;
  Arrays.sort(data);
  double px =  p*(n-1);
  int i = (int)java.lang.Math.floor(px);
  double g = px - i;
  if(g==0){
   return data[i];
  }else{
   return (1-g)*data[i]+g*data[i+1];
  }
 }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式

    Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式

    這篇文章主要介紹了Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式,本文通過實例圖文相結合給大家介紹的非常詳細,需要的朋友可以參考下
    2021-07-07
  • Hadoop Combiner使用方法詳解

    Hadoop Combiner使用方法詳解

    這篇文章主要介紹了 Hadoop Combiner使用方法詳解的相關資料,希望通過本文能幫助到大家讓大家理解掌握這部分內容,需要的朋友可以參考下
    2017-10-10
  • 淺析java中asList的使用詳解

    淺析java中asList的使用詳解

    Java中的asList方法是數(shù)組工具類 Arrays中的一個靜態(tài)方法,asList()方法把數(shù)組轉換成集合時,不能使用其修改集合相關的方法,本文通過示例代碼給大家介紹java asList使用,感興趣的朋友一起看看吧
    2021-10-10
  • SpringMVC文件上傳的配置實例詳解

    SpringMVC文件上傳的配置實例詳解

    本文通過實例代碼給大家介紹SpringMVC文件上傳的配置相關內容,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-05-05
  • Spring中@Autowired注解的原理詳解

    Spring中@Autowired注解的原理詳解

    這篇文章主要介紹了Spring中@Autowired注解的原理詳解,對于spring配置一個bean時,如果需要給該bean提供一些初始化參數(shù),則需要通過依賴注入方式,所謂的依賴注入就是通過spring將bean所需要的一些參數(shù)傳遞到bean實例對象的過程,需要的朋友可以參考下
    2023-11-11
  • 虛擬機linux中jdk安裝配置方法

    虛擬機linux中jdk安裝配置方法

    這篇文章主要為大家詳細介紹了虛擬機linux中jdk安裝配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • java導出大批量(百萬以上)數(shù)據的excel文件

    java導出大批量(百萬以上)數(shù)據的excel文件

    這篇文章主要為大家詳細 介紹了java導出大批量即百萬以上數(shù)據的excel文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • java時間 java.util.Calendar深入分析

    java時間 java.util.Calendar深入分析

    這篇文章主要介紹了java時間 java.util.Calendar深入分析的相關資料,需要的朋友可以參考下
    2017-02-02
  • 通過字節(jié)碼看java中this的隱式傳參詳解

    通過字節(jié)碼看java中this的隱式傳參詳解

    這篇文章主要給大家介紹了關于如何通過字節(jié)碼看java中this的隱式傳參的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Mybatis學習筆記之動態(tài)SQL揭秘

    Mybatis學習筆記之動態(tài)SQL揭秘

    這篇文章主要給大家介紹了關于Mybatis學習筆記之動態(tài)SQL的相關資料,小編覺得挺不錯的,對大家學習或者使用Mybatis會有一定的幫助,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11

最新評論

五寨县| 岳阳县| 金川县| 阿巴嘎旗| 辽中县| 简阳市| 乌兰察布市| 奉化市| 白朗县| 江都市| 顺义区| 临泉县| 修水县| 武夷山市| 宁蒗| 玉田县| 密山市| 洞头县| 海林市| 瑞金市| 靖安县| 家居| 景谷| 麟游县| 正宁县| 雷州市| 凌云县| 宜兰县| 东阿县| 诸城市| 环江| 高阳县| 信阳市| 栖霞市| 徐水县| 漾濞| 瑞安市| 长岛县| 黄冈市| 马鞍山市| 越西县|