Как рассчитать средний R квадрат данных компании

ВОЗВРАТ АКЦИИ

Я не знаю, как вычислить среднее значение r в квадрате с доходностью отдельных акций и доходностью рынка.

import numpy as np
import pandas as pd
from sklearn import datasets, linear_model
from sklearn.linear_model import LinearRegression
lm = LinearRegression()
df1 = pd.read_csv(r'C:\Users\USER\Desktop\股價資料.csv') 
pd.DataFrame(df1)
model = LinearRegression()
x1 = df1[['NAME OF COMPANY']]
y1 = df1[['INDIVIDUAL COMPANY RETURN']]
y2= df1[['MARKET RETURN']]
z1=  df1[['YEAR']]
# print(x1,z1)
list1=[]
list2=[]
list3=[]
list4=[]
i=0
for i in range(379539): #total number of company's data is 379539
    if x1.values[i]!=x1.values[i+1] or z1.values[i]!=z1.values[i+1]:
         list1.append(x1.index[i+1])
        
    y1.values[list1[i]:list1[i+1]]                  
# lm.fit(list3, list4)
# r_squared = lm.score(list3,list4)
# list2.append(r_squared)
# lm.fit(list3, list4)
# r_squared = lm.score(list3,list4)
# # print(r_squared)

Вот как выглядит мой код сейчас, я попытался разделить данные y1, y2, чтобы запустить квадрат r со значением, добавленным в list1

Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Формула R в квадрате: 1-unexplained_variation/total_variation

Unexplained variation — это сумма разностей для каждой точки данных между прогнозом с использованием линии наилучшего соответствия и фактическими значениями. Вы можете вычислить коэффициенты линии наилучшего соответствия с помощью numpy.polyfit().

Total variation — это сумма разностей для каждой точки данных между средним значением и фактическими значениями.

Обновлено: с фиктивными значениями это будет выглядеть примерно так

import numpy as np

x = [2000, 2001, 2002, 2003, 2004]
y = [50000, 10000, 20000, 30000, 5000]

def get_unexplained_variation(xs, ys):
    a,b = np.polyfit(xs, ys, 1)
    var = 0
    for x,y in zip(xs, ys):
        var += (a*x+b - y)**2
    return var
def get_total_variation(xs, ys):
    avg = np.mean(ys)
    var = 0
    for y in ys:
        var += (y - avg) ** 2
    return var

unexplained_variation = get_unexplained_variation(x, y)
total_variation = get_total_variation(x, y)
print(1 - unexplained_variation/total_variation)

Другие вопросы по теме