вычисляя r в квадрате, но говорит, что y_orig не определен - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь вычислить R-квадрат, используя интерактивное учебное пособие (я очень медленный новичок!), И натолкнулся на ошибку, сообщающую, что y_orig не определен. Я использую предоставленный код, но ссылаюсь на электронную таблицу, в то время как учебник создал свой собственный np.array, так что я думаю, что это проблема. Я думаю, что я должен создать переменную для y_orig и, возможно, y_line, кто-нибудь, кто хочет помочь? Код ниже.

import statistics
from statistics import mean
import numpy as np
Damodaran = pd.read_c("C://Users//Darren//Desktop//CFA//Strathclyde//Big     Data//Assignment//Latest//revised 2.csv")
xs = Damodaran.Growth
ys = Damodaran.Beta
plt.scatter(xs,ys)
plt.show()
def best_fit_slope (xs,ys): 
    m =( ((mean(xs)*mean(ys))-mean(xs*ys))/
    ((mean(xs)*mean(xs))-mean(xs*xs)) )
return m
m = best_fit_slope(xs,ys)
print(m)

from matplotlib import style
style.use('fivethirtyeight')
def best_fit_slope_and_intercept (xs,ys): 
    m =( ((mean(xs)*mean(ys))-mean(xs*ys))/
    ((mean(xs)*mean(xs))-mean(xs*xs)) )
    b = mean(ys) - m*mean(xs)
return m, b

def squared_error (ys_orig, ys_line):
    return sum((ys_line - ys_orig)**2)

def coeffiecient_of_determination (ys_orig, ys_line):
    y_mean_line= [mean(ys_orig) for ys in y_orig]
    squared_error_regr = squared_error (ys_orig, ys_line)
    squared_error_y_mean = squared_error(ys_orig, y_mean_line)
    return 1 - (squared_error_regr / squared_error_y_mean)

m,b = best_fit_slope_and_intercept(xs,ys)

Спасибо, Кер, зачем менять несколько месяцев спустя ....?

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Я не могу отформатировать код в комментарии, поэтому разместите его здесь.Вот пример Python-графического сборщика полиномов, который также вычисляет среднеквадратическую и среднеквадратичную статистику подгонки.

import numpy, matplotlib
import matplotlib.pyplot as plt

xData = numpy.array([1.1, 2.2, 3.3, 4.4, 5.0, 6.6, 7.7, 0.0])
yData = numpy.array([1.1, 20.2, 30.3, 40.4, 50.0, 60.6, 70.7, 0.1])

polynomialOrder = 2 # example quadratic

# curve fit the test data
fittedParameters = numpy.polyfit(xData, yData, polynomialOrder)
print('Fitted Parameters:', fittedParameters)

modelPredictions = numpy.polyval(fittedParameters, xData)
absError = modelPredictions - yData

SE = numpy.square(absError) # squared errors
MSE = numpy.mean(SE) # mean squared errors
RMSE = numpy.sqrt(MSE) # Root Mean Squared Error, RMSE
Rsquared = 1.0 - (numpy.var(absError) / numpy.var(yData))
print('RMSE:', RMSE)
print('R-squared:', Rsquared)

print()


##########################################################
# graphics output section
def ModelAndScatterPlot(graphWidth, graphHeight):
    f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)
    axes = f.add_subplot(111)

    # first the raw data as a scatter plot
    axes.plot(xData, yData,  'D')

    # create data for the fitted equation plot
    xModel = numpy.linspace(min(xData), max(xData))
    yModel = numpy.polyval(fittedParameters, xModel)

    # now the model as a line plot
    axes.plot(xModel, yModel)

    axes.set_xlabel('X Data') # X axis data label
    axes.set_ylabel('Y Data') # Y axis data label

    plt.show()
    plt.close('all') # clean up after using pyplot

graphWidth = 800
graphHeight = 600
ModelAndScatterPlot(graphWidth, graphHeight)
0 голосов
/ 27 октября 2018

Ошибка говорит о том, что, хотя ys_orig определено, y_orig не является.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...