精华内容
下载资源
问答
  • 什么是预测区间和置信区间 万次阅读 多人点赞
    2020-02-07 18:10:14

    什么是预测区间和置信区间

    最近需要画带有置信区间的拟合图,其中在matlab的doc中搜索“Confidence and Prediction Bounds”,出现了两种置信区间。
    原博客:https://www.cnblogs.com/100thMountain/p/5539024.html

    置信区间估计

    (confidence interval estimate):利用估计的回归方程,对于自变量 x 的一个给定值 x0 ,求出因变量 y 的平均值的估计区间。

    预测区间估计

    (prediction interval estimate):利用估计的回归方程,对于自变量 x 的一个给定值 x0 ,求出因变量 y 的一个个别值的估计区间。

    预测区间的范围总是要比置信区间的范围要大的。就是说,给定一个X,估计对应Y的平均值平均值比估计一个个别值更精确一点。其实也好理解,估计平均值比估计个别值貌似更简单一点嘛。个别值更容易受一些外界因素影响而有差异性,而平均值则相对稳定些。

    例1:

    当根据样本建立了回归方程后,假设需要预测以下2个问题:

    1. 今年最大积雪深度为7米,预测今年灌溉面积
    2. 对于那些积雪深度为7米的年份,预测灌溉面积

    第一个问题就是一个预测个别值的例子,而第2个问题就是预测一个平均值的例子。

    例2:

    转自:https://www.6sq.net/question/496481
    预测区间:95%的预测区间,意味着,在此总体中随机抽取100个样本,其中大概有95个的个别值会落在这个区间
    置信区间:95%的置信区间,意味着,从总体中随机抽取若干样本,其平均值会落在这个范围
    所以,从实际意义来说,置信区间比较有意义,预测区间是个别值,仅供参考,布局代表性

    置信区间是以样本去估算总体,就是说 95% 的置信区间是指总体的区间,总体均值有95%在这个区间,而不是假如每100 有95个在区间内。
    预测区间是指 个体的区间,就是说100个有95个在这个区间。
    预测区间更广,置信区间更严谨更窄

    总结

    置信区间是以样本去估算总体,就是说 95% 的置信区间是指总体的区间,而不是假如每100 有95个在区间内,是指 总体均值有95%在这个区间,那么 预测区间是指 个体的区间,就是说100个有95个在这个区间。预测区间更广,置信区间更严谨更窄
    总之,一般比较关注置信区间。
    本文主要是粗糙的理解预测区间和置信区间,在matlab的帮助文档中搜索“Confidence and Prediction Bounds”会有更详细的解释(https://ww2.mathworks.cn/help/curvefit/confidence-and-prediction-bounds.html?searchHighlight=Confidence%20and%20Prediction%20Bounds&s_tid=doc_srchtitle

    更多相关内容
  • Java实现 LeetCode 327 区间和的个数

    万次阅读 多人点赞 2020-03-06 23:03:31
    327. 区间和的个数 给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。 区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。 说明: 最直观的...

    327. 区间和的个数

    给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。
    区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。

    说明:
    最直观的算法复杂度是 O(n2) ,请在此基础上优化你的算法。

    示例:

    输入: nums = [-2,5,-1], lower = -2, upper = 2,
    输出: 3
    解释: 3个区间分别是: [0,0], [2,2], [0,2],它们表示的和分别为: -2, -1, 2。

    class Solution {
       public int countRangeSum(int[] nums, long lower, long upper) {
            long sums[] = new long[nums.length];
            for (int i=0; i<nums.length; i++) {
                sums[i] = ((i-1 >= 0) ? sums[i-1] : 0) + nums[i];
            }
            //System.out.println(Arrays.toString(sums));
            int result = divideAndConquer(sums, 0, sums.length-1, upper, lower);
    
            return result;
        }
    
        private int divideAndConquer(long sums[], int start, int end, long upper, long lower) {
            if (start > end) return 0;
            if (start == end) return (sums[start] <= upper && sums[start] >= lower) ? 1 : 0;
            int mid = (start+end)/2;
            int counts = 0;
            counts += divideAndConquer(sums, start, mid, upper, lower);
            counts += divideAndConquer(sums, mid+1, end, upper, lower);
    
            int ls = start, le=mid;
            while (le >= start && sums[mid+1] - sums[le] <= upper) le--;
            for (int r=mid+1; r<=end; r++) {
                while (ls <= mid && sums[r] - sums[ls] >= lower) ls++;
                while (le+1 <= mid && sums[r] - sums[le+1] > upper ) le++;
                if (ls - le -1 < 0) continue;
                counts += (ls-le-1);
            }
            ls = start;
            int i = 0, r= mid+1;
            long merged[] = new long[end-start+1];
            while (ls <= mid || r <= end) {
                if (ls > mid || (r<=end && sums[r] < sums[ls])) {
                    merged[i++] = sums[r++];
                } else {
                    merged[i++] = sums[ls++];
                }
            }
            for (i=0; i<merged.length; i++) {
                sums[start+i] = merged[i];
            }
            //System.out.println(Arrays.toString(sums) + " "  + counts + "," + start + "-" + end);
            return counts;
        }
    }
    
    展开全文
  • 最大连续区间和算法详解+代码

    千次阅读 2018-06-07 14:06:58
    本篇主要记录了最大连续区间和的暴力算法和dp算法(三种写法) 以及讲解了求最大区间和的区间左右下标的方法 ----------------------------------------------------------------------------------- 问题概述 ...

    写在前边

    本篇主要记录了最大连续区间和的暴力算法和dp算法(三种写法)

    以及讲解了求最大区间和的区间左右下标的方法

    -----------------------------------------------------------------------------------

    问题概述

    这是一个经典的问题。

    给定一个长度为n的序列a[1],a[2]...a[n-1],a[n]

    求一个连续的子序列 a[i],a[i+1]...a[j-1],a[j],使得a[i]+a[i+1]...a[j-1]+a[j]最大。

    暴力枚举法  O(n^2)

    我们要求最大的连续区间和,

    首先我们知道预处理出前缀和数组可以方便的求出区间和

    那么我们再暴力枚举区间左右边界  找出最大的那个区间和就好了

    这个暴力的做法很好想

            int n;
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++){
                scanf("%d",&a[i]);
    	}
    	for(int i=1;i<=n;i++){//预处理前缀和数组
                sum[i]=sum[i-1]+a[i];
    	}
    	int flag,ans=0;
    	for(int i=1;i<=n;i++){//暴力枚举左右边界
                for(int j=i;j<=n;j++){
                    ans=ans>(sum[j]-sum[i-1])?ans:(sum[j]-sum[i-1]);//记录最大值
                }
    	}
    	printf("%d",ans);

    显然 这个n^2的方法不够优秀  难以解决数量较大的数据

    所以我们需要进一步优化

    动态规划解法  复杂度O(n)     ---------- (三种写法)

    我们让dp[ i ]等于 以a[ i ]为结束的 最大连续子段和

    因为是以a[ i ]为结束且是连续子段  那么

    dp[ i ] 要么就是  a[ i ]本身

              要么 就是a[ i ] + 以a[ i-1 ]为结束的最大连续字段和  也就是 a[ i ] + dp[ i - 1 ]

    所以 状态转移方程出来了      dp[i] = max( A[i], dp[i-1]+A[i] )

    代码

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    typedef long long ll;
    const int maxn=1e5+7;
    ll a[maxn];
    ll dp[maxn];
    const ll INF=8e18;
    ll n,num,x;
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)scanf("%lld",&a[i]);//输入
        dp[0]=0;
        for(int i=1;i<=n;i++){//状态转移方程
            dp[i]=max(a[i],dp[i-1]+a[i]);
        }
        ll maxn=0;
        for(int i=1;i<=n;i++){//遍历找最大值
            maxn=max(dp[i],maxn);
        }
        printf("%lld\n",maxn);
    }
    

    优化常数

    这个O(n)的算法  其实仔细算的话(加上输入)  是O(3n)

    我们其实可以优化一下常数

    输入和记录dp数组以及记录最大值都可以在一遍内完成

    这个dp数组  也可以发现  扫描一遍 保留最大值就好了  那么数组也省了  一个变量就够了

    最终这个写法也是求解最大连续区间和的标准解法  代码如下

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    typedef long long ll;
    const int maxn=1e5+7;
    ll a[maxn];
    ll n,ans,dp;
    int main(){
        scanf("%lld",&n);
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
            dp=max(a[i],dp+a[i]);
            ans=max(dp,ans);
        }
        printf("%lld\n",ans);
    }
    

     还有另一种写法 也是dp的思想   复杂度O(n)

    我们预处理出前缀和数组  那么sum[j]-sum[i]就是一段区间的和了

    那么我们很容易得到  ans = max {  sum[ j ] - min {  sum[ i ]  }  }  ( j > i )

    我们只要用一个变量 动态维护一个最小前缀和就好了 

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    typedef long long ll;
    const int maxn=1e5+7;
    ll a[maxn],sum[maxn];
    ll n,ans,minn;
    int main(){
        scanf("%lld",&n);
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
            sum[i]=sum[i-1]+a[i];//统计前缀和数组
            ans=max(sum[i]-minn,ans);//动态维护最大区间和
            minn=min(minn,sum[i]);//动态维护最小前缀和
        }
        printf("%lld\n",ans);
    }

    打印最大区间和的左右下标

    例题:hdu1003

    链接   传送门

    这个题呢   求最大连续区间和  并且打印出来那个区间的左右边界下标

    其实呢  很好写  把前边求最大区间和的算法 稍作改动就好了

    优化过常数之后的动态规划解法是这样写的

    核心的两句就是

      dp=max(a[i],dp+a[i]);
      ans=max(dp,ans);

    这两句其实可以用if else语句来写

    if(dp>0) dp=dp+a[i];
    else dp=a[i];
    
    if(ans>dp)ans=dp
    else  ans=ans;

    那么这下就很好看出了

    那么我们在适当的地方记录下下标就好了

    s e  //s为区间左端点  e为区间右端点
    t    //t为中间变量  用来存储改变后的区间左端点
    
    int ans=-INF,dp=0,t=1,s=1,e=1;
    if(dp>0){
        dp=dp+a[i];
    } 
    else{
        dp=a[i];t=i;
    } 
    if(ans>dp){
        ans=dp;
        s=t;e=i
    }

     

    hdu1003   AC代码

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    const int INF=0x3f3f3f3f;
    int n,T,num,x;
    int main(){
        scanf("%d",&T);
        while(T--){
            num++;
            scanf("%d",&n);
            int ans=-INF,dp=0,t=1,e=1,s=1;
            for(int i=1;i<=n;i++){
                scanf("%d",&x);
                if(dp>=0) dp+=x;
                else dp=x,t=i;
                if(dp>ans){
                    ans=dp;s=t;e=i;
                }
            }
            cout<<"Case "<<num<<":"<<endl;
            cout<<ans<<" "<<s<<" "<<e<<endl;
            if(T!=0)cout<<endl;
        }
    }
    

     

     

     

     

     

     

    展开全文
  • 基于犹豫模糊熵的概念,提出了区间犹豫模糊熵相似度的概念,同时研究了它们之间的相互关系。给出了区间犹豫模糊熵的公理化定义,在此基础上构造了两种形式的熵测度公式,并且证明了它们满足区间犹豫模糊熵的四条...
  • 数组的区间和

    千次阅读 2018-04-12 11:20:43
    数组的区间和 输入一个无序的数组nums,然后可以在O(1)的时间复杂度给出区间iii到jjj之间的元素和。 例如: 数组nums = [1,2,3,4,2,3,1],查询区间下标为1到3之间的元素的和,则返回sum = 2+3+4 = 9。 如果排序...

    数组的区间和

    输入一个无序的数组nums,然后可以在O(1)的时间复杂度给出区间 i i j之间的元素和。

    例如:

    数组nums = [1,2,3,4,2,3,1],查询区间下标为1到3之间的元素的和,则返回sum = 2+3+4 = 9

    如果排序的话,原来的下标之间的相对关系就变了,维护这个相对关系也是十分复杂的,因此排序是不能排序了。

    看到O(1)时间复杂度,想到的应该是类似HashMap子类的数据结构。

    数组区间和的问题可以通过记录整个数组元素的前缀和,然后通过两个前缀和相减即可得到区间和。

    流程:

    • 预处理,sumMap[i]表示0到i之间的元素的和;
    • 计算i到j之间的区间和,利用sumMap[j] - sumMap[i-1]即可在O(1)的时间复杂度得到;
    
    
    public class IntervalSum {
    
        private long[] sumMap = null;
    
        public IntervalSum(int[] num) {
            // TODO Auto-generated constructor stub
            this.sumMap = new long[num.length];
            sumMap[0] = num[0];
            for (int i = 1;i < num.length; i++) {
                sumMap[i] = num[i] + sumMap[i-1];
            }
            System.out.println(Arrays.toString(sumMap));
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int[] num = new int[]{1,2,3,4,5,6,7,8,9};
            IntervalSum demo = new IntervalSum(num);
            System.out.println(demo.querySum(0, 7));
        }
    
        public long querySum(int i, int j) {
            if (i > j || i < 0 || j >= sumMap.length) return Long.MIN_VALUE;
            return sumMap[j] - (i == 0 ? 0 : sumMap[i-1]);
        }
    
    }
    

    扩展:

    如果某个元素的值被修改,那么sumMap也相应的需要被修改,但是修改时间复杂度为O(n),那么能不能在O(logn)的时间复杂度达到更新sumMap的目的呢?答案是:线段树,线段树常常用来解决单点更新,区间查询的问题。

    关于线段树的内容,后面继续学习总结。


    关于线段树的总结:https://blog.csdn.net/u014532901/article/details/79937786

    展开全文
  • 最大连续区间和的算法总结

    千次阅读 2018-02-22 11:15:26
    点击打开链接最大连续区间和是一个经典的问题。给定一个长度为n的序列a[1],a[2]...a[n-1],a[n],求一个连续的子序列a[i],a[i+1]...a[j-1],a[j],使得a[i]+a[i+1]...a[j-1]+a[j]最大。①最简单最容易想到的就是根据...
  • 第四篇:置信区间和假设检验 第五篇:多元线性回归和残差分析 第六篇:现代投资组合理论 第七篇:市场风险 第八篇:Fama-French 多因子模型 介绍 在上一章中,我们讨论了随机变量和随机分布。现在我们将使用...
  • 数学闭区间和开区间的区别是什么

    千次阅读 2016-11-04 09:32:09
    表示为 [ a,b ],叫做闭区间; 2)满足 a 的实数 x 的集合, 表示为 ( a,b ),叫做开区间; 3)满足 a ≤ x ,a ≤ b 的实数 x 的集合, 分别表示为 [ a,b ),( a,b ],叫做半开区间. 这里实数 a,b 叫做区间的端点.
  • //=========================================== //segment tree ...//本模板为转载模板,后面的注释主函数的验证为Alei添加 #include #include #include //线段树 using namespace s
  • poj2796 区间和乘最小值之最大值

    千次阅读 2018-08-21 22:05:45
    给出正整数的数组,让你求出此数组某一个区间乘以区间内的最小值的最大值。 例 3 1 6 4 5 2 在第3到第5个数的区间内,为15最小值为4乘积60最大。   wa代码 #include &lt;cstdio&gt; #include &...
  • 根据样本可以推断总体均值,总体比例,总体方差等的置信区间,并对假设进行检验。其中,样本按照来源可以分为单样本两样本,按照样本容量大小可以分为大样本容量下样本容量,根据中心极限定理,大样本容量下的...
  • 区间和闭区间

    千次阅读 2015-01-16 16:13:13
    区间指不包含端点的区间,而闭区间包含端点,在数学符号上,开区间用小括号{}表示,闭区间用中括号[]表示
  • 小M给你一串含有c个正整数的数组,想让你帮忙求出有多少个下标的连续区间,它们的大于等于x。 输入描述: 第一行两个整数c x(0 < c <= 1000000, 0 <= x <= 100000000) 第二行有c个正整数(每个正...
  • 区间和邻域

    千次阅读 2020-01-11 18:05:24
    区间按照是否包含端点值,分为开区间,半开区间和闭区间,假设实数a<b: 开区间 :(a,b)={x|x,a<x<b} 例如(3,8),(-,+) 半开区间:[a,b)={x|x,ax<b} (a,b]={x|x,a<xb} 例如[3,8),[3,+) 闭区间:[a,b...
  • 见下文)的数据子集绘制一条功能上任意的非线性回归线(加上置信度预测区间)。在为自变量x生成的x跨越20个不同的值:x=(20-np.arange(20))**2,并为每个条件复制{}。数据显示x之间的强非线性,如下所示:import ...
  • 前缀和:区间和

    千次阅读 2016-03-12 11:29:20
    区间和 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 76 Accepted Submission(s) : 29 Font: Times New Roman | Verdana | Georgia Font Size: ...
  • 图中还显示平均值平均值的95%置信区间。 Also shown are the mean, and 95% confidence intervals for the mean. 这种绘图样式设计用于参数检验,如方差分析t检验。 This plotting style is designed to ...
  • 理解置信区间和置信水平

    千次阅读 2016-06-04 15:10:26
    置信区间是一个有可能含有未知总体参数的值的范围。如果随机采样许多次,一个特定比例的置信区间将含有总体均值,这个比例叫做置信水平。注意:置信水平并不是一个特定的置信区间含有总体参数的概率。一个95%的置信...
  • 求最大连续区间和的几种方法

    千次阅读 2015-07-11 21:00:54
    今天做bestcoder想到的,几种做最大连续区间和的方法。 定义最大连续区间和:给定一个长度为n的序列a[1],a[2]...a[n],求一个连续的子序列a[i],a[i+1]...a[j-1],a[j]使得a[i]+a[i+1]...+a[j-1]+a[j]最大。 ...
  • LiveGBS国标GB/T28181视频平台如何配置流媒体服务收流端口区间包括TCP端口区间和UDP端口区间1、基础配置1.1、流媒体服务配置1.2、显示更多配置1.3、配置端口区间1.4、收流端口区间可以配置多少2、搭建GB28181视频...
  • 统计学之误差思维置信区间

    千次阅读 2021-04-30 15:26:51
    二、置信区间和置信水平 置信区间: 在统计学中,一个概率样本的置信区间(英语:Confidence interval,CI),是对产生这个样本的总体的参数分布(Parametric Distribution)中的某一个未知参数值,以区间形式给出的...
  • 1.左闭右开区间,如有相同元素返回查找到的第一个元素。 PS:主循环判断条件都是一样的(left < right),注意这里不能取等号!有相同元素时,如果要返回第一个查找到的元素,则区间包含相同元素时应该从右向左...
  • 根据总体分布(T分布或者Z分布)规定的置信度计算总体均值在指定置信度下的置信区间,然后将实验值置信区间比较,若在置信区间之外(小概率事件发生)则表示实验统计量总体统计量存在显著差异 1.1 总体方差...
  • 区间估计——置信区间

    千次阅读 2020-06-09 19:28:43
    1. 区间估计 1.1 区间估计 总体参数估计的一个区间,确信该区间将参数值纳入其中。 区间估计的形式:点估计±边际误差 1.2 置信区间 区间估计中,由样本估计量构造出的总体参数在一定置信水平下的估计区间。 ...
  • 题目:7-5就区间正整数内所有素数之 (20分)【描述】求m-n以内所有素数之并输出。‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪...
  • 区间最大子段(线段树)

    千次阅读 2019-04-23 13:28:30
    意思就是给你n个数,q次...线段树维护四个东西,区间和,区间最大子段和,紧靠区间左端点的最大子段和,紧靠区间右端点的最大子段和。 sum[],lmax[].rmax[],dat[],分别表示上述四种东西。 sum不用说吧。 对于lm...
  • 目录参考 参考 AUC的CI google paper NCSS chapter AUC的比较 Medcalc的De Long方法 cnblog 整理的文献

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 828,096
精华内容 331,238
关键字:

区间和