(* gnuplot
    f(x)=a+b*x
    fit f(x)'Weinbau2.dat' using 3:2:($4) via a,b
    plot[78:128] f(x) ls 1 notitle,'Weinbau2.dat' using 3:2:4 with errorbar notitle *)

SetDirectory[NotebookDirectory[]]

data0=Import["Weinbau2.dat"]

data={#[[3]],#[[2]]}&/@data0
weights=1/((#[[4]])^2)&/@data0

lmf=LinearModelFit[data,x,x,Weights->weights]

lmf["Properties"]

lmf["ParameterTable"]
lmf["ANOVATable"]

A={1,#[[3]]}&/@data0
y={#[[2]]}&/@data0
W=DiagonalMatrix[weights]/1.35018

Va=Inverse[(Transpose[A].W.A)]
a=Va.Transpose[A].W.y

Print[a[[1,1]]," +/- ",(Sqrt[Va[[1,1]]])]
Print[a[[2,1]]," +/- ",(Sqrt[Va[[2,2]]])]
lmf["ParameterTable"]

lmf2=LinearModelFit[data,x,x,VarianceEstimatorFunction->(1&),Weights->weights]

lmf2["ParameterTable"]

lpt=ListPlot[{#[[3]],Around[#[[2]],#[[4]]]}&/@data0];
plt=Plot[lmf2[x],{x,80,130}];
Show[lpt,plt]