Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何模仿Excel';Python中的LOGEST函数_Python_Excel_Curve Fitting - Fatal编程技术网

如何模仿Excel';Python中的LOGEST函数

如何模仿Excel';Python中的LOGEST函数,python,excel,curve-fitting,Python,Excel,Curve Fitting,我对在Python中模拟Excel的LOGEST函数很感兴趣,但不知道从何处开始。下面是一个使用LOGEST的图形装配工,如中所述 下面是一个使用LOGEST的图形装配工,如中所述 你可以用对数做线性回归,也可以用指数函数拟合。在这里,我分别展示了使用和的两种解决方案 以下是Microsoft Excel中函数LOGEST的示例: 使用linregress的方法: from scipy.stats import linregress import math x = months = [1

我对在Python中模拟Excel的LOGEST函数很感兴趣,但不知道从何处开始。

下面是一个使用LOGEST的图形装配工,如中所述


下面是一个使用LOGEST的图形装配工,如中所述


你可以用对数做线性回归,也可以用指数函数拟合。在这里,我分别展示了使用和的两种解决方案

以下是Microsoft Excel中函数
LOGEST
的示例:

使用
linregress
的方法:

from scipy.stats import linregress
import math

x = months = [11, 12, 13, 14, 15, 16]
y = units = [33100, 47300, 69000, 102000, 150000, 220000]

slope, intercept, r_value, p_value, std_err = linregress(
    x,
    list(map(math.log, y)),
    )
print('m', math.exp(slope))
print('b', math.exp(intercept))
输出:

m 1.4632756281161756
b 495.3047701587278
m 1.4678382448967822
b 473.717820465515
使用
曲线拟合的方法

from scipy.optimize import curve_fit

def f(x, b, m):
    return b * m ** x

popt, pcov = curve_fit(f, x, y)
print('m', popt[1])
print('b', popt[0])
输出:

m 1.4632756281161756
b 495.3047701587278
m 1.4678382448967822
b 473.717820465515

你可以用对数做线性回归,也可以用指数函数拟合。在这里,我分别展示了使用和的两种解决方案

以下是Microsoft Excel中函数
LOGEST
的示例:

使用
linregress
的方法:

from scipy.stats import linregress
import math

x = months = [11, 12, 13, 14, 15, 16]
y = units = [33100, 47300, 69000, 102000, 150000, 220000]

slope, intercept, r_value, p_value, std_err = linregress(
    x,
    list(map(math.log, y)),
    )
print('m', math.exp(slope))
print('b', math.exp(intercept))
输出:

m 1.4632756281161756
b 495.3047701587278
m 1.4678382448967822
b 473.717820465515
使用
曲线拟合的方法

from scipy.optimize import curve_fit

def f(x, b, m):
    return b * m ** x

popt, pcov = curve_fit(f, x, y)
print('m', popt[1])
print('b', popt[0])
输出:

m 1.4632756281161756
b 495.3047701587278
m 1.4678382448967822
b 473.717820465515

查看该函数的excel帮助,然后查看一些数学教科书。@SolarMike我不理解您的评论与Python特定问题之间的关系。请您简要解释一下好吗?@JamesPhillips excel被清楚地提到并标记为comare的标准。顺便问一下,使用相同的数据集,您的结果如何叠加?@SolarMike请与OP讨论。请查看该函数的excel帮助,然后查看一些数学教科书。@SolarMike我不理解您的评论与Python特定问题之间的关系。请您简要解释一下好吗?@JamesPhillips excel被清楚地提到并标记为comare的标准。顺便问一下,使用相同的数据集,您的结果如何叠加?@SolarMike请与OP讨论。