python - 返回 beta 系数 B0 和 B1 的函数
问题描述
这是我想要做的。创建一个采用两个系列 (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))
解决方案
推荐阅读
- ruby-on-rails - 如何验证模型中的条件?
- jquery - 允许 SVG 对象中的动画开始 onScroll
- java - java ldap - 获取信息是对 AD 的更改
- shell - 在新的 tcsh shell 中获取文件并让别名工作
- .htaccess - 使用参数重写子域
- html - 如果我使用 push 填充我的数组,ng-repeat 不起作用
- swift - 在对象数组中搜索值(映射)的更好方法
- c# - Json 反序列化和 ADO 持久性期间的字符串截断
- python - 无法 pip install xlrd,连接超时
- python-3.x - Gtk3 与 Python。Xds 协议:如何实现?