예제 #1
0
#Oppgave c
#Quadratic regression
[a, b, c] = quadraticRegression(Tid, T)
yplot = np.dot(a,np.power(xplot,2))+np.dot(b,xplot) + c
plt.plot(xplot, yplot, 'b--')
#Determinant koeffisienten
Sy2 = sum((T-np.mean(T))**2)
SSEQuad = sum((T-(np.dot(a,np.power(Tid,2))+np.dot(b,Tid) + c))**2)
Quadratic = (Sy2-SSEQuad)/Sy2
print('\nKvadratisk regresjon sin determinant koeffisient:')
print(np.sqrt(Quadratic))
#print(np.corrcoef(xplot, yplot)[0][1])

#Cubic regression
[a, b, c, d] = cubicRegression(Tid, T)
yplot = np.dot(a,np.power(xplot,3))+ np.dot(b,np.power(xplot,2))+np.dot(c, xplot) + d
plt.plot(xplot, yplot, 'k')
#Determinant koeffisienten
SSECubic =sum((T-(np.dot(a,np.power(Tid,3))+np.dot(b,np.power(Tid,2))+np.dot(c,Tid) + d))**2)
r2Cubic = (Sy2-SSECubic)/Sy2
print('\nKubisk regresjon sin determinant koeffisient:')
print(np.sqrt(r2Cubic))
#print(np.corrcoef(xplot, yplot)[0][1])

plt.xlabel('Tid (m)')
plt.ylabel('Temperatur')
plt.title('Temperatur over tid')
plt.legend(['LReg','QReg', 'CReg', 'Temp'])
plt.show
#Oppgave d
예제 #2
0
# c)
[a_kva, b_kva, c_kva] = regression.quadraticRegression(X, T)

Sy2_kva = sum((T - np.mean(T))**2)
SSE_kva = sum(
    (T - (np.dot(a_kva, np.power(X, 2)) + np.dot(b_kva, X) + c_kva))**2)
R2_kva = (Sy2_kva - SSE_kva) / Sy2_kva

print("Determinantkoeffisient for kvadratisk", R2_kva)  # -> 0.9126314317675248

yplot = np.dot(a_kva, np.power(xplot, 2)) + np.dot(b_kva, xplot) + c_kva

plt.plot(xplot, yplot)

[a_kub, b_kub, c_kub, d_kub] = regression.cubicRegression(X, T)

Sy2_kub = sum((T - np.mean(T))**2)
SSE_kub = sum(
    (T - (np.dot(a_kub, np.power(X, 3)) + np.dot(b_kub, np.power(X, 2)) +
          np.dot(c_kub, X) + d_kub))**2)

R2_kub = (Sy2_kub - SSE_kub) / Sy2_kub

print("Determinantkoeffisient for kubisk", R2_kub)  # -> 0.9335598634480327

yplot = np.dot(a_kub, np.power(xplot, 3)) + np.dot(b_kub, np.power(
    xplot, 2)) + np.dot(c_kub, xplot) + d_kub

plt.plot(xplot, yplot)
예제 #3
0
r2Linear = (Sy2 - SSELin) / Sy2
print("\n2b)\nr² = ", r2Linear)

# c)

# Kvadratisk tilnærming:
[a, b, c] = reg.quadraticRegression(X, T)  # så kvadratisk
yplot = np.dot(a, np.power(X, 2)) + np.dot(b, X) + c
plot_qua = plt.plot(X, yplot, label="Quadratic")
SSEQuad = sum((T - (np.dot(a, np.power(X, 2)) + np.dot(b, X) + c))**2)
r2Quadratic = (Sy2 - SSEQuad) / Sy2

print("\nc)\nKvadratisk tilnærming r² = ", r2Quadratic)

# Kubisk tilnærming:
[a, b, c, d] = reg.cubicRegression(X, T)
yplot = np.dot(a, np.power(X, 3)) + np.dot(b, np.power(X, 2)) + np.dot(c,
                                                                       X) + d
plot_cubic = plt.plot(X, yplot, label="Cubic")
SSECubic = sum((T - (np.dot(a, np.power(X, 3)) + np.dot(b, np.power(X, 2)) +
                     np.dot(c, X) + d))**2)
r2Cubic = (Sy2 - SSECubic) / Sy2

print("\nKubisk tilnærming r² = ", r2Cubic)

# Svar oppgave 2d:
# Vi kan se ved grafen at den kubiske ser ut til å passe situasjonen best. Dette stemmer også med
# determinasjonskoeffisienten som også er høyest for kubisk.

plt.legend()
plt.show()
예제 #4
0
r2Linear = (Sy2 - SSELin) / Sy2

# Determinasjonskoeffisienten = 0.745

# c)

[a, b, c] = quadraticRegression(tid, temp)
yplot = np.dot(a, np.power(xplot, 2)) + np.dot(b, xplot) + c
plt.plot(xplot, yplot)

SSEQuad = sum((temp - (np.dot(a, np.power(tid, 2)) + np.dot(b, tid) + c))**2)
r2Quadratic = (Sy2 - SSEQuad) / Sy2

# Determinasjonskoeffisienten ved kvadratisk tilnærming = 0.913

[a, b, c, d] = cubicRegression(tid, temp)
yplot = np.dot(a, np.power(xplot, 3)) + np.dot(b, np.power(xplot, 2)) + np.dot(
    c, xplot) + d
plt.plot(xplot, yplot)

SSECubic = sum((temp - (np.dot(a, np.power(tid, 3)) +
                        np.dot(b, np.power(tid, 2)) + np.dot(c, tid) + d))**2)
r2Cubic = (Sy2 - SSECubic) / Sy2
plt.show()

# Determinasjonskoeffisienten ved kvadratisk tilnærming = 0.934

# d) Det er den kubiske tilnærmingen som passer best, både basert på plot og determinasjonskoeffisienten.

# Oppgave 3
예제 #5
0
xplot = np.linspace(-2, 12)
yplot = np.dot(a, xplot) + b
plt.plot(xplot, yplot)
Sy2 = sum((y - np.mean(y))**2)
SSELin = sum((y - np.dot(a, x) - b)**2)
r2Linear = (Sy2 - SSELin) / Sy2

# Quadratic regression
[a, b, c] = regression.quadraticRegression(x, y)
yplot = np.dot(a, np.power(xplot, 2)) + np.dot(b, xplot) + c
plt.plot(xplot, yplot)
SSEQuad = sum((y - (np.dot(a, np.power(x, 2)) + np.dot(b, x) + c))**2)
r2Quadratic = (Sy2 - SSEQuad) / Sy2

# Cubic regression
[a, b, c, d] = regression.cubicRegression(x, y)
yplot = np.dot(a, np.power(xplot, 3)) + np.dot(b, np.power(xplot, 2)) + np.dot(
    c, xplot) + d
plt.plot(xplot, yplot)
SSECubic = sum((y - (np.dot(a, np.power(x, 3)) + np.dot(b, np.power(x, 2)) +
                     np.dot(c, x) + d))**2)
r2Cubic = (Sy2 - SSECubic) / Sy2
omega = 8

# 1b
print('Linear coefficient of determination: ', r2Linear)  # 0.00322
print('Quadratic coefficient of determination: ', r2Quadratic)  # 0.274
print('Cubic coefficient of determination: ', r2Cubic)  # 0.686

# Determinasjonskoeffisienten skal være et tall mellom 0 og 1, og jo nærmere
# den er 1 jo bedre vil modellen stemme med punktene fra input-dataen.