Python 函数返回β系数B0和B1

Python 函数返回β系数B0和B1,python,function,statistics,Python,Function,Statistics,这就是我要做的。创建一个函数,该函数采用两个系列(x,y),然后计算并返回使SSE最小化的截距和斜率系数 我在下面写了一个函数,它取两个级数,返回线性回归方程的截距(B0)和斜率(B1)。问题这些价值观在我看来是错误的。我知道这是一个粗略的方法来写这个函数。如何改进的提示 import pandas as pd import numpy as np def coeff(Series_y,Series_x): beta_0 = 0 beta_1 = 0 y_list =

这就是我要做的。创建一个函数,该函数采用两个系列(x,y),然后计算并返回使SSE最小化的截距和斜率系数

我在下面写了一个函数,它取两个级数,返回线性回归方程的截距(B0)和斜率(B1)。问题这些价值观在我看来是错误的。我知道这是一个粗略的方法来写这个函数。如何改进的提示

import pandas as pd
import numpy as np

def coeff(Series_y,Series_x):
    beta_0 = 0
    beta_1 = 0
    y_list = Series_y.tolist()
    x_list = Series_x.tolist()
    y_list_array = np.array(y_list)
    x_list_array = np.array(x_list)
    y_list_mean = np.mean(y_list_array)
    x_list_mean = np.mean(x_list_array)
    y_list_stdev = np.std(y_list_array)
    x_list_stdev = np.std(x_list_array)
    r_x_y = np.corrcoef(x_list_array,y_list_array)
    beta_1 = r_x_y * (y_list_stdev/x_list_stdev)
    beta_0 = y_list_mean - (beta_1 * x_list_mean)
    return beta_0
    return beta_1
    print(beta_0, beta_1)
我重写了这个函数。它仍然很笨重

# create the needed variables
beta_0 = 0
beta_1 = 0
r_x_y = 0
y_list = 0
x_list = 0
y_list_array = 0
x_list_array = 0
y_list_mean = 0
x_list_mean = 0
y_list_stdev = 0
x_list_stdev = 0 
def coeff(Series_y,Series_x):
    # create the two needed beta variables
    # calculate needed stats
    y_list = Series_y.tolist()
    x_list = Series_x.tolist()
    y_list_array = np.array(y_list)
    x_list_array = np.array(x_list)
    y_list_mean = np.mean(y_list_array)
    x_list_mean = np.mean(x_list_array)
    y_list_stdev = np.std(y_list_array)
    x_list_stdev = np.std(x_list_array)    
    r_x_y = np.corrcoef(x_list_array,y_list_array)
    return x_list_mean, y_list_mean, x_list_stdev, y_list_stdev, r_x_y
    # calculate the beta coefficients
    beta_1 = r_x_y * (y_list_stdev/x_list_stdev)
    beta_0 = y_list_mean - (beta_1 * x_list_mean)
    return beta_0, beta_1
    # Return line of best fit.
    return beta_0 + beta_1 * x
    print(beta_0 + beta_1 * x)    
我根据比尔的建议重写了它。容易多了

def coeff(Series1, Series2):
    return print(scipy.stats.linregress(Series1, Series2))

因为您正在使用一个现有的库,即
np
,来为您进行一些计算,所以我假设您可能并不反对使用一个可以完成所有计算的库。那你就可以用了。谢谢你,比尔!这方面有很多东西要学。