响应变量中存在预定义误差的线性拟合

时间:2018-07-16 11:57:41

标签: python r statistics linear-regression data-fitting

我有以下数据集(重复):

ordinal_var    fraction    error_on_fraction
1              1.2         0.1
2              0.87        0.23
4              1.12        0.11
5              0.75        0.06
5              0.66        0.15
6              0.98        0.08
7              1.34        0.05
7              2.86        0.12

现在,我想对公式中的每个点在y中传递误差,因此我想进行线性回归分析(最好在R中使用python也可以)。因此,在R中,它类似于(为了更好地理解问题):

lm(fraction +-error_on_fraction ~ ordinal_var, data = dataset)

我当然首先尝试自己找到方法,但找不到答案。 对于以前在x和y上有错误的分析,我只是scipy.odr库,但我找不到仅在y(response)变量中有错误的方法。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我们可以使用简单的加权最小二乘模型。

样本数据

让我们读入示例数据。

df <- read.table(text =
    "ordinal_var    fraction    error_on_fraction
1              1.2         0.1
2              0.87        0.23
4              1.12        0.11
5              0.75        0.06
5              0.66        0.15
6              0.98        0.08
7              1.34        0.05
7              2.86        0.12", header = T)

加权最小二乘模型

我们拟合了fraction ~ ordered(ordinal_var)形式的加权线性模型,其中weights1 / error_on_fraction给出。

fit <- lm(
    fraction ~ ordered(ordinal_var),
    weights = 1 / error_on_fraction,
    data = df)
summary(fit)
#    
#Call:
#lm(formula = fraction ~ ordered(ordinal_var), data = df, weights = 1/error_on_fraction)
#
#Weighted Residuals:
#         1          2          3          4          5          6          7
# 2.220e-16 -1.851e-16 -1.753e-17  1.050e-01 -1.660e-01  1.810e-17 -1.999e+00
#         8
# 3.097e+00
#
#Coefficients:
#                       Estimate Std. Error t value Pr(>|t|)
#(Intercept)              1.1136     0.3365   3.309   0.0804 .
#ordered(ordinal_var).L   0.3430     0.7847   0.437   0.7047
#ordered(ordinal_var).Q   0.6228     0.7057   0.883   0.4706
#ordered(ordinal_var).C   0.2794     0.8920   0.313   0.7838
#ordered(ordinal_var)^4   0.2127     0.9278   0.229   0.8400
#ordered(ordinal_var)^5  -0.2469     0.7916  -0.312   0.7846
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#Residual standard error: 2.61 on 2 degrees of freedom
#Multiple R-squared:  0.5427,   Adjusted R-squared:  -0.6004
#F-statistic: 0.4748 on 5 and 2 DF,  p-value: 0.783