top of page

Search Results

56 results found with an empty search

  • ESG Strategies: Passive and Active Management | Akweidata

    < Back ESG Strategies: Passive and Active Management Do the laws of passive and active strategies also affect sustainability investing? I recently concluded a sustainability data visualization project. The draft of the visualization is below Viewing the plot, I sought to understand the sustainability of stocks on the SIX. Parameters were used to identify sustainability in terms of ESG scores (70 and above) and Economic score (having an expected return above the market return). I developed four sustainable funds based on the ESG findings and market returns. Additionally I used ETHOS fund data found on Swiss Fund Data to develop the sustainable funds. The funds developed were: Negative Screening Best in Class Approach Thematic Approach ESG integration Against the staus quo, ESG integration was the only fund that was not "sustainable." Typcially ESG itegration is hailed as one of the most effective and practical strategies for promoting sustainability. Why is this the case? Unlike the first three strategies which are very basic to implement, when it came to the ESG integration fund, I randomly picked the ETHOS fund and duplicated the stock selectio - an in this case per the basic quantitaive metric developed, said fund was not . However, when I picked another ESG integrated fund its performace was sustainable. It appears that ESG integration has greater levels of subjectivity and the funds constructed across traders are likely to differ much greately than the previous 3 strategies. Thus, one can argue the element of the manager's skill in the active management of an ESG integrated fund plays a greater role in the fund's performance as compared to the other 3 strategies. Could this be the case of "passive" and active management of portfolios? Future works: Compare performace of ESG integrated funds Calculate the average return of ESG integrated funds vs "passive" strategies (Negative screening, Best In Class Approach ~ basic strategies) Do the variations of ESG integration strategies and basic sustainability stratigies vary across market types (Geographic and effeciency wise)? Previous Next

  • Hedonic Valuation Model: Real Estate in Zurich | Akweidata

    < Back Hedonic Valuation Model: Real Estate in Zurich With significant portions of banks portfolios consisting of mortgage loans, it is paramount to develop a strong model for valuating real estate. https://akweix.shinyapps.io/HedonicValuationModel/ Previous Next

  • Sustainability Dimensions of Stocks on the SIX:Render 1 | Akweidata

    < Back Sustainability Dimensions of Stocks on the SIX:Render 1 Quantitatively assessing Brundtland's Dimensions (1987). The case of the SIX Previous Next

  • Dynamic view of Ghana's Forestry | Akweidata

    < Back Dynamic view of Ghana's Forestry Work in progress Previous Next

  • SustainabilityV4 | Akweidata

    Profit is the only Green : Visualization of Swiss Stocks & SRI portfolios Sustainability BY SEAN AKWEI ANUM Abstract Socially Responsible Investing (SRI), which is increasingly popular, emphasizes social and environmental factors in investment decisions to promote sustainability. In theory, SRI outperforms, especially in the long run. While practitioners typically remain skeptical, this unique return-based sustainability assessment of Swiss Stocks demonstrates SRI’s over performance and ability to promote sustainability. Research Question Is SRI a significant means of promoting Sustainability? Sustainability, per the 1987 United Nations Brundtland Commission, means meeting present needs without compromising future generations, involving social, economic, and environmental aspects. In investments, it translates to SRI, blending social and environmental factors into investment decisions. This project seeks to quantitatively depict these sustainability dimensions for stocks and SRI portfolios on the SIX (Swiss Stock Exchange). Methodology Data Proxies The data required deals with the three sustainability parameters for each stock on the Swiss Exchange: Environmental, Social and Economic. Company Name Environmental Score Social Score Economic Score The Quantitative proxies are as follows: 1. Environmental: An ESG rating with a numeric individual score (pillar) for a firm’s environmental impact; 2. Social: An ESG rating with a numeric individual score for a firm’s Social impact; 3. Economic: a risk-adjusted measure of the firm’s expected return: Capital Asset Pricing Model (CAPM) Visualizing Three Parameters A 3D plot was chosen to visualize three quantitative parameters, effectively showing their relationship and intersections. Stocks with high environmental, social, and economic scores are classified as “Sustainable,” while those with low scores are deemed “At Risk.” Stocks with scores between these extremes are categorized as “Acceptable.” The final visualization seeks to visualize the relative distribution of individual stocks & SRI portfolios regarding the three parameters. Hence, a standardized score for each parameter was used. The logic was to ensure that all parameters could be drawn down to a somewhat “equal” scale, thus ensuring an informative visual effect. Constructing SRI Portfolios Using the collected individual stock data, four SRI funds were created: Negative Screening: This SRI fund excludes investments in companies or sectors that do not meet specific ethical, environmental, or social criteria. Best in class: This fund selects companies that outperform their peers in environmental, social, and governance (ESG) criteria within each sector. Thematic Approach: This fund focuses on specific sustainability themes or sectors, such as renewable energy or social justice. ESG integration: This fund incorporates ESG factors into traditional financial analysis to identify risks and opportunities not captured by conventional methods. Data Sources Data was collected for each of the three parameters. Data was attained via the Thompson Reuters financial market portal Refinitiv Eikon. Environmental Pillar Score (ESG rating) Measures a company’s impact on living and non-living natural systems, including the air, land and water, as well as complete ecosystems. Social Pillar Score (ESG Rating) Measures a company’s capacity to generate trust and loyalty with its workforce, customers and society through its use of best management practices. Economic Pillar Score ( Beta) A measure of how much the stock moves for a given move in the market. Note, the Economic score was further computed with the Capital Asset Pricing Model (CAPM), which is CAPM = Risk-free rate+Beta*(Risk Premium), where risk-free rate and risk premium in Switzerland is 1.135% Source: World Government Bonds and 5.5% Source: NYU respectively. Data was collected based on completeness. As such, despite the SIX listing 250 stocks, the project at hand uses 187. One stock, IGEA Pharma NV, was excluded as it was an extremely negative outlier that terribly affected the scale of the entire visualization. Constructing “Sustainable” and “At Risk Criteria” The Sustainability Criterion was defined as Environmental Score ≥ 70 (out of 100), Social ≥ 70 (out of 100); and Economic score ≥ 6.64% (Average Market Return). Consequently, the standardized scores were 1.05, 0.83 and 0, respectively. At Risk Criterion was defined as : Environmental Score ≤ 30 (out of 100); Social ≤ 30; and Economic score ≤ 3.34% (one standard deviation below Market Average Return). Consequently, the standardized scores were -0.30, -0.68 and -1 respectively. Conditions are based on core financial theories. Data for SRI Portfolios Regarding the Negative Screening and Best in Class Approach, using the ESG data collected, I easily constructed said portfolios. However, for the Thematic Approach and ESG integration, I replicated existing funds employing these strategies. They are the “Ethos Swiss Governance Index Large” and the “ETHOS II - Ethos Swiss Sustainable Equities -A” respectively. Final Visualization The graph is interactive. Average-sized points represent a stock on the Swiss Exchange. The bigger Orange points represent SRI portfolios, and the Big Black point represents the Market Average. Results and Conclusion Market’s Performance The sustainability cuboid includes 11% of stocks and three-quarters of SRI strategies, whereas the at-risk quadrant contains 6% of stocks. The general market performance is deemed acceptable, with many stocks nearing the Sustainability cuboid. Despite needing substantial progress, these findings indicate a promising trend towards sustainability in the Swiss Stock Market. SRI Performances To answer the Research Question, SRI funds appear to promote sustainability. This is supported by the visualization showing 3 out of 4 strategies as sustainable. Contrary to expectations, “ESG Integration” is the only strategy classified as non-sustainable. In theory, the best strategy should be “ESG integration”, whereas the other three are seen as simplistic and lacking a nuanced ESG assessment concerning market returns. My paradoxical result likely arises because, unlike simpler strategies, “ESG Integration” involves more subjective and active management, leading to significant performance variations among different managers. Testing this hypothesis with another fund using “ESG Integration” yielded a “Sustainable result”, highlighting the classic debate between active and passive management but now within SRI. Concluding Remarks Ironically, firms with controversial reputations like Nestle, UBS, and Credit Suisse have good non-economic scores, while Cantonal banks unexpectedly show low scores. This raises questions about how these public entities might be causing more social and environmental harm and calls for a deeper examination of the legitimacy of ESG scores.

  • Sustainability Dimensions of Stocks on the SIX:Render 3 | Akweidata

    < Back Sustainability Dimensions of Stocks on the SIX:Render 3 Quantitatively assessing Brundtland's Dimensions (1987). The case of the SIX View Plot here: https://www.akweidata.com/sixsustainabilitydimensions Previous Next

  • Scrapping Data using Python | Akweidata

    < Back Scrapping Data using Python A Python application designed to generate a histogram depicting the frequency of articles published on Google News in 2022 concerning '@celebjets'. Background Created by then teenager Jack Sweeny in 2020, @celebjets (now suspended) was a twitter account that tracked the location of celebrities' jets. The account gained worldwide notoriety through 2021 and 2022 mainly due to Jack Sweeny's altercation with Elon Musk regarding privacy and safety concerns with tracking Elon's Jet. But more importantly the posts from the account brought to light conversations on the 'vanity-filled' lifestyle of celebrities and the significant CO2 footprints they leave with their obnoxious use of private jets. Problem Formulation, Decomposition and Abstraction With the given prompt at hand, we need to exhaustively understand the problem space in order to efficiently and effectively move from the undesired to the desired state of affairs. The problem at hand is not monolithic, thus, we need to break it down before conceptualizing any solutions. Breaking down the problem requires the employment of the Computational Thinking concept known as Decomposition . By separating the problem at hand into sub-problems, the task becomes more approachable as one is quickly able to see how possible conceptual frameworks (in the form of existing python commands) can be employed and knitted to solve the problem. However, before diving into decomposition, we need to understand that the prompt does not encapsulate the entire problem space. Key components of the problem space deal with the nature of the file news-celebjets.txt. How is the data organized? Where are the dates stated? What is the format of the dates? How can we work with this format? Thus, I ran the html code and manually viewed a sample (the first ten) of the articles to attain a brief idea of the nature of the data. My findings were as follows: The data is not primary but secondary data: some analysis has already been made. Data is very well structured: Article Cover Picture; Logo and name of Publisher; Title of Article (Hyperlinked); The Date List of Articles appears to consistently follow the structure stated above. The dates appear to have the same format through out: Month and day; example: Dec 14 Intuitively, from my findings, I have already applied the Computational Thinking concept of Patterns and Generalizations. By identifying the repeated structure of the list of articles, I wondered, can loops or some other iterative command assist me with extracting the dates? With these insights at hand, I attained a greater understanding of the problem space. Consequently, I employed the General to Specific decomposition technique The General to Specific technique involves breaking down a problem from a general perspective and then adding specific and more detailed components . For the given problem, as it is not open-ended and specific requirements were given, I found this technique to be the most appropriate. The results of my decomposition are as follows: General Problem: Analyze news articles and create a histogram representing the number of articles published per week Listed below with the alphabets a, b, c,d and e are the "definitions of the desired characteristics of the solution" = Subproblems . To address these charactersitics/subproblems, we need to get specific. Hence, below each Subproblem , listed in Roman numerals, are the specifications written in pseudocode . Note, that with the exception of subproblem "a" and c" , I relied heavily on Chatgpt to write out the specifics for the other subproblems as I had zero experience with the commands required. a. Read the scrapped data from the text file (news-celebjets.txt). b. Find the publishing dates of the news articles. c. Sort the publishing dates. e. Plot a histogram to represent the number of article count per week Figure 1: Abstraction Algorithmic Solution and the Agile Process An algorithm is a well-defined sequence of instructions that takes one or more input values and produces output values. Per the abstraction above, we have an idea of the desired solution's input, output and sequence of instructions. In the main.py file attached, I have generated a solution - pictured below in Figure 2. Following the decomposition phase's specifics, I have extensively commented throughout the lines of code on my reasoning and methods, which I shall not repeat here. Instead, in this section, I would comment on the role of Chatgpt in my Agile solution creation process. Figure 2: My Final Histogram Previous Next

  • Paradox of Choice and Utility Maximization: Music | Akweidata

    < Back Paradox of Choice and Utility Maximization: Music Traditional Asset Pricing models are conceptually based on utility maximization. However, what about the role of the quantity of choices in utility maximization? When studying utility maximization in finance, we typically look at an investor's efficiency/utility frontier. But what of the dynamic of choices? With financial instritutions offerring a wide host of investment solutions, the Paradox of Choice should certianly play a key role in the frontiers. Paradox of Choice Theory: The Paradox of Choice, a concept popularized by psychologist Barry Schwartz, suggests that while some degree of choice is necessary and beneficial, there comes a point where an excess of choices can lead to decreased utility. Increased Complexity: More choices can increase the complexity of the decision-making process. This can lead to anxiety, stress, and indecision, which can reduce overall utility or satisfaction. Regret and Opportunity Costs: With more options, individuals may experience regret or concern about missing out on unchosen alternatives. The awareness of opportunity costs can diminish the satisfaction derived from the chosen option. Expectation of Perfection: A multitude of choices might lead individuals to expect a perfect decision. When this expectation is not met, it can result in lower satisfaction. A simple illustration of the Paradox of Choice: Music Selection A modern issue at hand is the selection of the right song for a particulair activity. with apps such as Spotify offerring over 20 million songs, one can quickly feel overwhelemed. Thus, resolving to currated playlists, appears to be a utility maximization route - essentially removing choices Paradox of Choice in Music Selection Overwhelming Options: With streaming services offering millions of songs, listeners are faced with an almost infinite array of choices. This abundance can make the decision-making process overwhelming. Decision Fatigue: The effort required to sift through numerous options can lead to decision fatigue, where the listener becomes too tired to make a choice, or defaults to familiar options, thereby missing out on potentially enjoyable new music. Regret and Second-Guessing: Even after choosing a song, listeners might experience regret or second-guess their choice, wondering if there might be a better song they haven't discovered yet. This can diminish the satisfaction derived from the chosen song. High Expectations: With so many options, listeners might develop unrealistically high expectations for each song they choose. If a song doesn't immediately meet these expectations, they might skip it, perpetuating the cycle of searching without finding the "right" song. ... this leads to a decrease in utility To further conceptualize and understand the paradox of choice to test utility, at least within the field of music, I developed a minmalistic music app. It simply allows one to replay a song or change the song - to a random song they have no control over! The app is very basic and uses music from Youtube. A preselected playlist was built into the app. The objective of the app is to simplify the musical experience by reducing choices and observing the effect on the users utility. Try it out here. App was built for Android: https://github.com/akweix/Music_Minimalism Previous Next

  • Photography Tool: Black & White Conversion | Akweidata

    < Back Photography Tool: Black & White Conversion A basic photo editor to convert PNG pictures from color to Black and White Previous Next

  • Value at Risk (VaR) for a portfolio | Akweidata

    < Back Value at Risk (VaR) for a portfolio Simple Tool using a historical simulation to find VaR Previous Next

  • Web scrapping Box Office Sales | Akweidata

    < Back Web scrapping Box Office Sales A python code used to web scrape data from Box Office Mojo's Website. The objective at hand is to attain weekend box office sales in order to test a correlation of Sci -fi movies and Tech stock prices. Thus, a python code was developed to web scrape data from Box Office Mojo's Website in a manner that that shows the Top 10 box office sales for each weekend. Additionally, using OMDb API , the genre for each movie was found. Significant aspects of the code developed was based on a similair project by Jonathan Bown on Kaggle *My actual API key from OMDb API has been removed in the code below import requests from bs4 import BeautifulSoup import pandas as pd from google.colab import files import re def scrape_weekend_box_office(weekend_url): response = requests.get(weekend_url) soup = BeautifulSoup(response.text, 'html.parser') table = soup.find('table') if not table: return [] rows = table.findAll('tr')[1:] movies_data = [] for row in rows[:10]: cols = row.findAll('td') if cols and len(cols) > 3: movie_name = cols[2].get_text(strip=True) weekend_gross = cols[3].get_text(strip=True) movies_data.append((movie_name, weekend_gross)) return movies_data def check_genre(movie_name, api_key): params = {'t': movie_name, 'apikey': api_key} response = requests.get('http://www.omdbapi.com/', params=params) data = response.json() if 'Genre' in data: genres = [genre.strip().lower() for genre in data['Genre'].split(',')] return 1 if any(genre in genres for genre in ['sci-fi', 'fantasy', 'action']) else 0 return 0 def scrape_year_weekends(year, api_key): base_url = f'https://www.boxofficemojo.com/weekend/by-year/{year}/' response = requests.get(base_url) soup = BeautifulSoup(response.text, 'html.parser') links = soup.select('td.a-text-left a') all_data = [] seen_weekends = set() genre_cache = {} for link in links: weekend = link.get_text(strip=True) weekend_link = 'https://www.boxofficemojo.com' + link['href'].split('?')[0] match = re.search(r'(\d{4})W(\d+)', weekend_link) if match and weekend_link not in seen_weekends: seen_weekends.add(weekend_link) weekend_number = match.group(2) top_movies = scrape_weekend_box_office(weekend_link) for rank, (movie_name, weekend_gross) in enumerate(top_movies, start=1): if movie_name not in genre_cache: genre_indicator = check_genre(movie_name, api_key) genre_cache[movie_name] = genre_indicator else: genre_indicator = genre_cache[movie_name] all_data.append({ 'weekend_number': int(weekend_number), 'weekend': weekend, 'rank': rank, 'movie_name': movie_name, 'weekend_gross': weekend_gross, 'is_action_sci_fi_or_fantasy': genre_indicator }) return all_data omdb_api_key = ' ' # Replace with actual OMDb API key year = 2019 data = scrape_year_weekends(year, omdb_api_key) df = pd.DataFrame(data) df.drop_duplicates(subset=['weekend_number', 'rank'], inplace=True) df.sort_values(by=['weekend_number', 'rank'], inplace=True) csv_file = f'weekend_box_office_{year}.csv' df.to_csv(csv_file, index=False) files.download(csv_file) Previous Next

bottom of page