【发布时间】:2020-06-14 21:33:05
【问题描述】:
我是 python 的新用户,我的问题是计算列 residual 的标准差。 这样做:
- 我必须计算每组的平均残差
- 我需要每个组的 ID 大小
我碰巧做了一些计算,这是我的代码:
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as sm
from statistics import stdev
import statistics
from math import *
#Enumerate the data 1,2,3.. for each variable
A['Rec'] = A.groupby(['code ']).cumcount().add(1)
## Defining companies by their IDs
A['ID']=A.groupby('code ').ngroup().add(1)
### FINDING RESIDUALS
results = sm.ols(formula='Y ~ X', data=A).fit()
Y_pred = results.predict(A[["X"]])
Y_pred
A['residual'] = A["Y"].values-Y_pred
###SIZE
A['size']=A.groupby(['ID']).size()
###SD of residuals
for i in A['ID']:
A['Std'] = sqrt((A['residual']-A['MEAN'])**2)/(A['size']-1)))
这是我的数据框enter image description here
组现在被称为 ID (1,2,3,4,5);在每个组中都有行。在每一行并按组,我想有一个列残差的 SD。
【问题讨论】:
标签: python pandas group-by statistics standard-deviation