R和Python回归库之间的计算差异

T_T*_*T_T 5 python regression r

我对R和Python都很陌生,并试图比较与回归分析残差相关的计算结果.我想知道什么是"错误的",或者如何"解释"它(即它是否是预期的东西).请注意,R和Python使用相同的数据.

R代码

# data
y <- c(3.099999905, 3.24000001, 3, 6, 5.300000191, 
       8.75, 11.25, 5, 3.599999905, 18.18000031)
x <- c(11, 12, 11, 8, 12, 16, 18, 12, 12, 17)
df <- data.frame(wage = y, educ = x)

# OLS
mod <- lm(wage ~ educ, data=df)
summary(mod)

# residuals
u.hat <- resid(mod)
mean(u.hat)
var(u.hat)
sd(u.hat)
cor(df$educ, u.hat)
Run Code Online (Sandbox Code Playgroud)

Python代码

import numpy as np
import pandas as pd
import statsmodels.formula.api as smf

# data
y = pd.Series([3.099999905, 3.24000001, 3, 6, 5.300000191,
               8.75, 11.25, 5, 3.599999905, 18.18000031])
x = pd.Series([11, 12, 11, 8, 12, 16, 18, 12, 12, 17])
df = pd.DataFrame({'wage': y, 'educ': x})

# OLS
mod = smf.ols(formula='wage ~ educ', data=df)
results = mod.fit()
results.summary()

# residuals
uHat = results.resid.values
np.mean(uHat)
np.var(uHat)
np.std(uHat)
np.corrcoef(df['educ'].values, uHat)[0, 1]
Run Code Online (Sandbox Code Playgroud)

结果

  • 两者的回归结果相同(此处未报告).
  • 与残差有关的计算结果总结在下表中.

在此输入图像描述

问题?

  1. 平均值和相关系数的值不同,但它们足够接近零.这是否意味着我们可以将这些差异视为"预期"?

  2. 方差和标准差的值确实不同.我怎么能想到他们?也许,这不是预期的结果.我错过了什么?

感谢您的帮助.