如何在python中加权站到最小二乘?

如何在python中加权站到最小二乘?,第1张

概述我有10个关于降水的气候站数据,它是DEM. 我做了一个线性回归跟随: DEM = [200, 300, 400, 500, 600, 300, 200, 100, 50, 200]Prep = [50, 95, 50, 59, 99, 50, 23, 10, 10, 60]X = DEM #independent variableY = Prep #dependent variabl 我有10个关于降水的气候站数据,它是DEM.

我做了一个线性回归跟随:

DEM = [200,300,400,500,600,200,100,50,200]Prep = [50,95,59,99,23,10,60]X = DEM   #independent variableY = Prep  #dependent variableslope,intercept,r_value,p_value,std_err = stats.linregress(x,y)

但现在我想为这些电台增加重量,例如:

Weight = [0.3,0.1,0.2,0.05,0.05]

该图表就像http://ppt.cc/XXrEv

我找到了加权最小二乘法,但我想知道它是如何工作的,为什么它是错误的.

import numpy as npimport statsmodels.API as smY = [1,3,4,5,2,4]X = range(1,8)X = sm.add_constant(X)wls_model = sm.WLS(Y,X,weights=range(1,8))results = wls_model.fit()results.params
解决方法 回答:

import numpy as npimport statsmodels.API as smstart_time = time.time()aList=[2,6]DEM=[200,600]PRE=[20,19,18,20,21,22,30,23]A_DEM=[]A_PRE=[]W=[]for a in aList:    A_DEM.append(DEM[a-1])    A_PRE.append(PRE[a-1])    W.append(1)X = sm.add_constant(A_DEM)Y = A_PREwls_model = sm.WLS(Y,weights=W).fit()print wls_model.params[0] #  interceptprint wls_model.params[1] #  slopeprint wls_model.rsquared  #rsquaredprint wls_model.summary()

我发现WLS会自动标准化.所以你可以直接增加重量.

总结

以上是内存溢出为你收集整理的如何在python中加权站到最小二乘?全部内容,希望文章能够帮你解决如何在python中加权站到最小二乘?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存