精华内容
下载资源
问答
  • C语言实现线性回归斜率

    千次阅读 2020-11-01 14:17:01
    /* *****注意数据类型 *参数 count 数据个数 数组行(列)的个数 数组的行列数目...*返回值 k 斜率 *使用注意 需要重定义数据类型 *typedef unsigned char uint8; *typedef unsigned int uint16; *typedef unsigne...

    在这里插入图片描述
    在这里插入图片描述

    2020/11/22 修改

    在这里插入图片描述

    /*线性回归求斜率
    *****注意数据类型
    *参数   count         数据个数 数组行(列)的个数 数组的行列数目相等
    *参数   dataCol_X[]   数据的列数据
    *参数   dataRow_Y[]   数据的行数据
    *返回值 k             斜率 范围(-∞,∞)
    *本算法定义斜率为 ∞ 的情况 k = 0;
    *使用注意 需要重定义数据类型
    *typedef unsigned char  uint8;
    *typedef unsigned int   uint16;
    *typedef unsigned long  uint32;
    */
    float get_K(uint8 count , uint8 dataCol_X[] , uint8 dataRow_Y[])
    {
    	float k = 0;//斜率
    	float aveCol_X = 0;//列的平均值x
    	float aveRow_Y = 0;//行的平均值y
    	uint16 sum_XY = 0;//行列的总和xy
    	uint16 sumRow_Y = 0;//行的总和y
    	uint16 sumCol_X = 0;//列的总和x
    	uint32 sumCol_X2 = 0;//列的总和x^2
    
    	for(uint16 i = 0 ; i < count ; i++)
    	{
    		sumCol_X += dataCol_X[i];//求列x的总和
    		sumRow_Y += dataRow_Y[i];//求行y的总和
    		sumCol_X2 += dataCol_X[i] * dataCol_X[i];//求x^2的总和
    		sum_XY += (dataCol_X[i] * dataRow_Y[i]);//求xy的总和
    	}
    
    	aveCol_X = (float)sumCol_X / count;//求平均值
    	aveRow_Y = (float)sumRow_Y / count;
    
    	if(sumCol_X2 - aveCol_X * aveCol_X * count)
        {
            k = (sum_XY - aveCol_X * aveRow_Y * count) / //根据公式求斜率
    			(sumCol_X2 - aveCol_X * aveCol_X * count);
        }
        //斜率为∞的情况 定义斜率等于0
        else
            k = 0;
    
    	return k;
    }
    

    上面的源码已经处理斜率为∞情况
    下面的源码没有处理斜率为∞情况
    在这里插入图片描述

    /*
    *****注意数据类型
    *参数   count              数据个数 数组行(列)的个数 数组的行列数目相等
    *参数   dataCol_X[count]   数据的列数据
    *参数   dataRow_Y[count]   数据的行数据
    *返回值 k                  斜率 
    
    *使用注意 需要重定义数据类型
    *typedef unsigned char  uint8;
    *typedef unsigned int   uint16;
    *typedef unsigned long  uint32;
    */
    float get_K(uint8 count , uint8 dataCol_X[count] , uint8 dataRow_Y[count])
    {
    	float k = 0;//斜率
    	float aveCol_X = 0;//列的平均值x
    	float aveRow_Y = 0;//行的平均值y
    	uint16 sum_XY = 0;//行列的总和xy
    	uint16 sumRow_Y = 0;//行的总和y
    	uint16 sumCol_X = 0;//列的总和x
    	uint32 sumCol_X2 = 0;//列的总和x^2	
    	
    	for(uint16 i = 0 ; i < count ; i++)
    	{
    		sumCol_X += dataCol_X[i];//求列x的总和
    		sumRow_Y += dataRow_Y[i];//求行y的总和
    		sumCol_X2 += dataCol_X[i] * dataCol_X[i];//求x^2的总和
    		sum_XY += (dataCol_X[i] * dataRow_Y[i]);//求xy的总和
    	}
    	
    	aveCol_X = 1.0 * sumCol_X / count;//求平均值
    	aveRow_Y = 1.0 * sumRow_Y / count;
    	
    	k = (sum_XY - aveCol_X * aveRow_Y * count) / //根据公式求斜率
    		(sumCol_X2 - aveCol_X * aveCol_X * count);
    	
    	return k;
    }
    
    
    展开全文
  • 线性回归模型拟合到该关系。 根据拟合模型,体重70公斤的预计代谢率是多少? 给出直线斜率的95%置信区间。rmr数据集位于“ ISwR”包中。 看起来像这样:> rmrbody.weight metabolic.rate1 49.9 10792 50.8 .....

    这是R的入门统计练习:

    使用rmr数据集,绘制代谢率与体重的关系图。 将线性回归模型拟合到该关系。 根据拟合模型,体重70公斤的预计代谢率是多少? 给出直线斜率的95%置信区间。

    rmr数据集位于“ ISwR”包中。 看起来像这样:

    > rmr

    body.weight metabolic.rate

    1 49.9 1079

    2 50.8 1146

    3 51.8 1115

    4 52.6 1161

    5 57.6 1325

    6 61.4 1351

    7 62.3 1402

    8 64.9 1365

    9 43.1 870

    10 48.1 1372

    11 52.2 1132

    12 53.5 1172

    13 55.0 1034

    14 55.0 1155

    15 56.0 1392

    16 57.8 1090

    17 59.0 982

    18 59.0 1178

    19 59.2 1342

    20 59.5 1027

    21 60.0 1316

    22 62.1 1574

    23 64.9 1526

    24 66.0 1268

    25 66.4 1205

    26 72.8 1382

    27 74.8 1273

    28 77.1 1439

    29 82.0 1536

    30 82.0 1151

    31 83.4 1248

    32 86.2 1466

    33 88.6 1323

    34 89.3 1300

    35 91.6 1519

    36 99.8 1639

    37 103.0 1382

    38 104.5 1414

    39 107.7 1473

    40 110.2 2074

    41 122.0 1777

    42 123.1 1640

    43 125.2 1630

    44 143.3 1708

    我知道如何计算给定x的预测y,但是如何计算斜率的置信区间?

    展开全文
  • 计算具有 X 和 Y 误差的数据线性回归斜率和截距。 误差可以指定为点到点变化,X 和 Y 误差的相关性也可以。 斜率和截距的不确定性也被估计。 这遵循 D. York, N. Evensen, M. Martinez, J. Delgado “最佳直线的...
  • We have following linear regression: y ~ b0 + b1 * x1 + b2 * x2. I know that regress function in Matlab does calculate it, but numpy's linalg.lstsq doesn't ...

    We have following linear regression: y ~ b0 + b1 * x1 + b2 * x2. I know that regress function in Matlab does calculate it, but numpy's linalg.lstsq doesn't (https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html).

    解决方案

    StatsModels' RegressionResults has a conf_int() method. Here an example using it (minimally modified version of their Ordinary Least Squares example):

    import numpy as np, statsmodels.api as sm

    nsample = 100

    x = np.linspace(0, 10, nsample)

    X = np.column_stack((x, x**2))

    beta = np.array([1, 0.1, 10])

    e = np.random.normal(size=nsample)

    X = sm.add_constant(X)

    y = np.dot(X, beta) + e

    mod = sm.OLS(y, X)

    res = mod.fit()

    print res.conf_int(0.01) # 99% confidence interval

    展开全文
  • python求线性回归斜率

    千次阅读 2016-01-31 12:13:00
    线性回归斜率, 就是说 有这么一组(x, y)的对应值——样本。如果有四组,就说样本量是4.根据这些样本,做“线性回归”,最终求出一条直线(即y = kx + b的k值和b值),使得样本里的各个点(x, y) “尽可能的”落到...

    一、 先说我对这个题目的理解

    直线的x,y方程是这样的:y = kx+b, k就是斜率.

    求线性回归斜率, 就是说
    有这么一组(x, y)的对应值——样本。如果有四组,就说样本量是4.
    根据这些样本,做“线性回归”,最终求出一条直线(即y = kx + b的k值和b值),使得样本里的各个点(x, y) “尽可能的”落到直线(或者直线附近)上。

    二、 python解题需要安装的包

    实际解题主要用到的python库是pandas. 解题算法是“最小二乘法”,这用到了pandas的ols函数。

    我的系统是ubuntu14.04.

    实际实验过程如下:

    $ sudo pip install numpy
    $ sudo pip install pandas

    安装pandas的依赖包(使用pandas.ols函数就必须安装这个依赖包):
    $ sudo pip install statsmodels

    如果发现安装失败,则需要安装系统依赖库先:
    在http://www.netlib.org/lapack/ 下载lapack-3.6.0的包,然后:
    $ cd lapack-3.6.0
    $ mv make.inc.example make.inc
    $ sudo apt-get install gfortran
    把makefile文件中的:
    lib: lapacklib tmglib
    改为:
    lib: blaslib variants lapacklib tmglib
    $ sudo make
    $ sudo cp lib*.a /usr/lib
    以上依然不行,然而,'可能'只需要下面两个命令:
    $ sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran
    $ sudo pip install statsmodels (安装时间有点长...)
    过了.


    三、 python解题

    $ ipython
    > import numpy as np
    import pandas as pd
    x = np.array([2,3,4,6])
    xx = pd.DataFrame({"k": x})
    yy = pd.Series([22,33,44,66])   # 口算都知道斜率是11,最终方程是y=11x
    res = pd.ols(y=yy, x=xx)           
    res

    -------------------------Summary of Regression Analysis-------------------------

    Formula: Y ~ <k> + <intercept>

    Number of Observations: 4
    Number of Degrees of Freedom: 2

    R-squared: 1.0000
    Adj R-squared: 1.0000

    Rmse: 0.0000

    F-stat (1, 2): inf, p-value: 0.0000

    Degrees of Freedom: model 1, resid 2

    -----------------------Summary of Estimated Coefficients------------------------
    Variable Coef Std Err t-stat p-value CI 2.5% CI 97.5%
    --------------------------------------------------------------------------------
    k 11.0000 0.0000 1404889085527666.75 0.0000 11.0000 11.0000
    intercept -0.0000 0.0000 -0.68 0.5691 -0.0000 0.0000
    ---------------------------------End of Summary---------------------------------

    可以看出,直线方程就是这样的:y = 11x - 0  (就是最左边的一列值作为k和b)

    可以直接读取beta,关注每个系数:
    res.beta

    k 1.100000e+01
    intercept -2.131628e-14
    dtype: float64

    res.beta[0]       # <--------- 斜率

    (试试把上面样本里x最后一个改为7,即x = np.array([2,3,4,7]))

    四、 end

     参考资料:
    http://www.cnblogs.com/fangwenyu/p/4284523.html

    展开全文
  • 线性回归方法计算直线斜率

    万次阅读 2011-12-07 15:09:54
    //Y坐标值表示设备历史负载 $y = array(52.09, 52.4, 53.29, 54.22, 55.15, 55.83, 56.89, 56.98, 57.55, 57.8); //X坐标值表示顺序天数 $x = array(1, 2, 3, 4...//计算X和Y均值 $ax = array_sum($x)/count($x); $ay
  • 请注意,回归图像由三个单独的图像构成:一个常量图像和代表来自同一 Landsat 8 图像的 SWIR1 和 SWIR2 波段的图像。请记住,你可以组合任何一组波段来构造输入图像以减少区域ee.Reducer.linearRegression,它们不必...
  • c#求slope线性回归斜率

    2015-05-31 16:42:00
    #region 计算slope /// <summary> /// Calculates slope() /// </summary> /// <param name="input">Input y_signal</param> /// <param name="period">Number of periods</param> /// <returns>Object ...
  • ML之SLR:简单线性回归;根据多组数据(x,y)模拟得到一次线性方程(斜率和截距),然后输入新的x来智能预测y值 目录 输出结果 代码设计 输出结果 代码设计 import numpy as np def fitSLR(x...
  • 返回根据 known_y's 和 known_x's 中的数据点拟合的线性回归直线的斜率斜率为直线上任意两点的重直距离与水平距离的比值,也就是回归直线的变化率。 语法 SLOPE(known_y's, known_x's) Known_y's必需。数字型...
  • 线性回归线性回归TŤLinear Regression is famously known for being a simple algorithm and a good baseline to compare more complex models to. In this article, we explore the algorithm, understand the ...
  • 本文主要介绍:Excel数据分析工具库—回归线性回归和非线性回归简单线性回归和多重线性回归逻辑斯蒂回归一、什么是回归分析(Regression)1、定义确定两种或两种以上变量间相关关系的一种统计分析方法。通过数据间...
  • 本节知识点:Excel数据分析工具库—回归线性回归和非线性回归简单线性回归和多重线性回归逻辑斯蒂回归一、什么是回归分析(Regression)1、定义确定两种或两种以上变量间相关关系的一种统计分析方法。通过数据间...
  • 书目:《线性回归分析基础》链接: https://pan.baidu.com/s/15UXfS3IiEL30FRNWFkj91w 提取码: kaxq更多:线性回归…1 线性回归模型简介线性回归,就是能够用一个直线较为精确地描述数据之间的关系。这样当出现新的...
  • 1、问题引入在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。一个带有一个自变量的...
  • python机器学习手写算法系列——线性回归

    万次阅读 多人点赞 2019-05-06 19:51:29
    本文致力于手把手教你实现一个最简单的机器学习模型--一元线性回归模型。短短的14行代码,就实现了。希望读完以后,你也能自己实现它。并对线性回归有更好的了解,或者从不了解到了解。
  • 在ee.Image对象的上下文中,reduce.fit()可以与区域中的像素一起使用reduceRegion...在这里,计算了这种关系的线性回归系数。返回包含属性'offset'(y-intercept) 和'scale'(slope)的字典。 代码: //本次的研究...
  • c语言线性回归计算器

    2013-11-17 18:44:36
    c语言线性回归计算器,可以输入多点运用线性回归计算直线斜率等参数
  • 本节知识点:Excel数据分析工具库—回归线性回归和非线性回归简单线性回归和多重线性回归逻辑斯蒂回归一、什么是回归分析(Regression)1、定义确定两种或两种以上变量间相关关系的一种统计分析方法。通过数据间相关性...
  • 文章目录一元线性回归代价函数(cost Function)相关系数决定系数梯度下降法一元线性回归实战梯度下降算法(传统不调用库的方法)调用sklean库的方法多元线性回归 一元线性回归 回归分析(regression analysis)用来...
  • 通俗得说线性回归算法(一)线性回归初步介绍 一.sklearn线性回归详解 1.1 线性回归参数 介绍完线性回归,那么我们来看看如何运用sklearn来调用线性回归模型,进行训练和预测。 def LinearRegression(fit_intercept=...
  • 线性回归

    2019-11-19 09:23:37
    线性回归 线性回归, 是回归分析中的一种, 其表示自变量 x 与因变量 y 之间存在线性关系. 回归分析是从数据出发, 考察变量之间的数量关系, 并通过一定的数学关系式将这种关系描述出来, 再通过关系式来估计某个变量的...
  • 线性回归(一) 线性回归是分析因变量与自变量呈现线性关系的一种方法,来确定一个因变量如何依赖一个或多个自变量的变化而变化,运用十分广泛。 在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条...
  • I'm trying to find the slope of a dataset that has DATETIME as the x axis, and a number on the y axis.I've tried the a number of approaches, and nothing will match the slope of the line when I plug th...
  • 本文介绍回归模型的原理知识,包括线性回归、多项式回归和逻辑回归,并详细介绍Python Sklearn机器学习库的LinearRegression和LogisticRegression算法及回归分析实例。进入基础文章,希望对您有所帮助。
  • 线性回归最终回归出来的值是连续的,比如说用线性回归预测股票的时候回归出来的就应该是连续值,逻辑回归与预测结果是离散值,一般用来做分类,回归的结果用来表示某一个事物的类别。下面用一个简单的例子来介绍一下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,980
精华内容 3,192
关键字:

线性回归计算斜率