Basically I have some datapoints on the form $(x\_i,y\_i)$

```
data = {{1, -12.3989}, {2, -13.3147}, {3, -14.528}, {4, -15.2962}, {5,
-16.3706}, {6, -16.9926}, {7, -17.7229}, {8, -18.603}, {9, -18.8811},
{10, -19.6465}, {11, -20.5828}, {12, -20.9566}, {13, -20.8691}, {14,
-21.695}, {15, -22.5606}, {16, -22.1918}, {17, -22.8421}, {18,
-23.3825}, {19, -23.6358}, {20, -23.8957}}

```

I also have the variances of $y\_i$ in a vector

```
var = {0.30746, 3.76794, 11.1175, 15.7907, 21.2136, 23.0218, 25.8991,
26.9632, 28.9219, 29.369, 34.2043, 36.2889, 33.9908, 36.3291,
39.5869, 31.1223, 32.9673, 34.1042, 38.1544, 39.4407}

```

I expect the relationship between $x\_i$ and $y\_i$ to be linear. To find the line of best fit I write

```
nlm = NonlinearModelFit[data, a x + b, {a, b}, {x}, 
Weights -> 1/error^2]

```

I can get the standard error in the slope by writing

```
nlm[{"BestFit", "ParameterTable"}]

```

and obtain that the standard error in the slope is is 

```
0.0261997

```

However, this error seems a bit small to me. Is there a better way to estimate the error in the slope that is easily implemented in mathematica? For instance is there a simple way to find the maximum and minimum possible lines and say that the error is the difference divided by two?